Grafica Comptaionale Sottosistema geometrico: trasformaioni Fabio Ganoelli fabio.ganoelli@gmail.com a.a. 26-27
Otline Nella prima parte della pipeline ttte le primitie geometriche engono trasformate dal sistema di riferimento in ci sono definite (object coordinates) allo spaio dello schermo (window coordinates). In qesta leione edremo come ciò aiene 3D Transform & Lighting 2D Rasteriation
Il processo di trasformaione 2 object Coordinates ) transformaione di modellaione ) transformaione di ista 2) transformaione di proieione 3) transformaione di iewport 2 screen Space 3 2 world Coordinates - 2 iew Coordinates (a.k.a. ee Coordinates) 2 2 - - - Normalied Deice Coordinates 2
Spaio Vettoriale De entità: Scalari (a, b, c, ) Vettori (T, U, V, ). Operaioni: Somma e moltiplicaione di scalari; Somma ettore-ettore; Moltiplicaione scalare-ettore.
Spaio affine Tre entità: Scalari (a, b, c, ) Vettori (T, U, V, ) Pnti (P, Q, R, ) Operaioni: Le operaioni di no spaio ettoriale, Somma pnto-ettore (restitisce n pnto), Sottraione pnto-pnto (restitisce n ettore).
Coordinate omogenee Pnti 2 p 3 Vettori δ δ 2 a δ 3
Trasformaioni affini Fnioni che mappano pnti s pnti e ettori s ettori Preserano la collinearità ttti i pnti iniialmente s na linea giacciono ancora s di na linea dopo la trasformaione i rapporti tra le distane il pnto di meo di n segmento rimane il pnto di meo di n segmento anche dopo la trasformaione. Si definiscono come na fnione lineare: f ( p + β q) f ( p) + β f ( q)
Trasformaione di Traslaione Traslare na primitia geometrica nel piano significa moere ogni so pnto P(,) di d nità lngo l asse e di d nità lngo l asse fino a raggingere la noa posiione P'(', ') doe: In notaione matriciale: + d, + d Con T ettore traslaione
Trasformaione di Traslaione Esempio di traslaione con ettore di traslaione T(, 3) (6,9) (4,5) (8,5) (, 3) (7,6) (5,2) (9,2)
Trasformaione di Scalatra Scelto n pnto C (pnto fisso) di riferimento, scalare na primitia geometrica significa riposiionare rispetto a C ttti i soi pnti in accordo ai fattori di scala s (lngo l asse ) e s (lngo l asse ) scelti. Se il pnto fisso è l origine O degli assi, la trasformaione di P in P si ottiene con: s, s
Trasformaione di Scalatra In notaione matriciale: doe S pre-moltiplica P in qanto P è definito come ettore colonna
Trasformaione di Scalatra Esempio di scalatra di ½ lngo l asse e di ¼ lngo l asse (6,8) 2 4 (4,4) (8,4) (3,2) (2,) (4,)
Trasformaione di Scalatra Osseraioni: Fattori di scala inferiori a aicinano l oggetto al pnto fisso di riferimento (origine); Fattori di scala maggiori di lo allontanano; Se s s le proporioni dell oggetto non sono mantente e si parla di scalatra non niforme; Se s s le proporioni sono mantente e si ha na scalatra niforme;
Trasformaione di Rotaione Fissato n pnto C (piot) di riferimento ed n erso di rotaione (orario, antiorario), rotare na primitia geometrica attorno a C significa moere ttti i soi pnti nel erso assegnato in maniera che si conseri, per ognno di essi, la distana da C; Una rotaione di θ attorno all origine O degli assi è definita come: cosθ senθ, senθ + cosθ
Trasformaione di Rotaione La relaione tra P e P si ricaa trigonometricamente; Le coordinate di P possono essere espresse in coordinate polari: P(,) ϕ r r cosϕ
Trasformaione di Rotaione P (, ) r P(,) θ ϕ r r cos(θ + ϕ) r cosϕ
Trasformaione di Rotaione P (, ) r P(,) θ ϕ r r cos(θ + ϕ) r cosϕ
Trasformaione di Rotaione In notaione matriciale abbiamo: doe:
Trasformaione di Rotaione Esempio di rotaione di π/2 attorno all origine (,8) (6,4) - (-4,6) (,4) (4,) (8,)
Trasformaione di Rotaione Osseraioni: Gli angoli sono considerati positii qando misrati in senso antiorario; Per le rotaioni di angoli negatii (senso orario) si ricorre alle identità:
Coordinate omogenee Le trasformaioni geometriche possono essere applicate in seqena; la presena di na somma di ettori (traslaione): e di moltiplicaioni (scalatra e rotaione): rende impraticabile la concatenaione di trasformaioni.
Coordinate omogenee Il pnto P di coordinate (,) è rappresentato in coordinate omogenee come ( h, h,w), doe: De pnti di coordinate (,, w) e (,, w ) rappresentano lo stesso pnto del piano se e solo se le coordinate di no sono mltiple delle corrispondenti coordinate dell altro; Almeno no dei alori,, o w dee essere dierso da ; Qando w (forma canonica) coordinate cartesiane ed omogenee coincidono. Con (,, w ) si rappresentano pnti, con (,, ) si rappresentanoettori.
Trasformaioni affini Si esprimono nella forma matriciale sempre 3 2 34 33 32 3 24 23 22 2 4 3 2 3 2 γ γ γ γ γ γ f coordinate omogenee pnto di partena 3 2 δ δ δ coordinate omogenee pnto di arrio
Trasformaioni affini Nel caso dei ettori conta solo qesto sempre 3 2 34 33 32 3 24 23 22 2 4 3 2 3 2 γ γ γ γ γ γ f coordinate omogenee ettore di partena 3 2 δ δ δ coordinate omogenee ettore di arrio...
Trasformaioni e coordinate omogenee Nella notaione in coordinate omogenee possiamo riscriere le trasformaioni geometriche di base come: Trasformaione di traslaione: Concatenaione di de traslaioni
Trasformaioni e coordinate omogenee Trasformaione di scalatra: Trasformaione di rotaione:
Altre trasformaioni: riflessione Riflessione rispetto all asse : Riflessione rispetto all asse : Riflessione rispetto all origine degli assi:
Altre trasformaioni: deformaione (shear) Deformaione rispetto all asse : Deformaione rispetto all asse : Riflessione rispetto entrambi gli assi:
Trasformaione di deformaione (shear) Dalle relaioni: rislta eidente come la deformaione lngo l asse sia linearmente dipendente dalla coordinata e la deformaione in sia strettamente correlata all ascissa del pnto.
Trasformaione di deformaione (shear) Esempio di deformaione con: a½ e b (4,6) (½,) (7,6) (2,2) (6,2) (3,2) (7,2)
Composiione di trasformaioni La rappresentaione in coordinate omogenee permette la concatenaione di trasformaioni; L ordina di concatenaione è importante perché le trasformaioni geometriche sono associatie ma non sono (di solito) commtatie; La corretta seqena delle trasformaioni T, T 2, T 3 e T 4 si ottiene componendo T come: T T 4 T 3 T 2 T
Composiione di trasformaioni Non commtatiità della composiione di trasformaioni: traslaione segita da rotaione attorno all origine (sinistra) e rotaione intorno all origine segita da traslaione (destra).
Composiione di trasformaioni Rotaione oraria di n angolo θ attorno ad n pnto P generico: Traslaione che moe P nell origine degli assi; Rotaione attorno all origine; Traslaione opposta alla precedente che riporta P nella sa posiione originale. P P cos cos P P g sen sen θ θ θ θ R
Composiione di trasformaioni Rotaione θ attorno ad n pnto P. Passo : Traslaione di P nell origine degli assi P
Composiione di trasformaioni Rotaione θ attorno ad n pnto P. Passo 2: Rotaione attorno all origine (θ π/6)
Composiione di trasformaioni Rotaione θ attorno ad n pnto P. Passo 3: Traslaione opposta alla precedente
Composiione di trasformaioni Trasformaione di scalatra attorno ad n pnto P generico: Traslaione che moe P nell origine degli assi; Trasformaione di scala attorno all origine; Traslaione opposta alla precedente che riporta P nella sa posiione originale.
Esempi di trasformaioni affini: p k p f ) ( Scalatra (scaling) [ ] ) ( ) ( ) ( q f p f k q p k q p k q p f β β β β + + + +
Trasformaioni di ista 2 object Coordinates ) transformaione di modellaione ) transformaione di ista 2 world Coordinates - 2 iew Coordinates (a.k.a. ee Coordinates)
Sistema di riferimento ( frame ) Definito da lin indip n pnto base (origine) p e na base ettoriale {,, 2 } Posso esprimere (niocamente) ogni pnto p come: p η + η + 2 η 2 + p cioè: p [ η, η, η 2, ] coordinate omogenee di p 2 p
Sistema di riferimento ( frame ) Definito da n pnto base (origine) p e na base ettoriale {,, 2 } Posso esprimere (niocamente) ogni ettore come: η + η + 2 η 2 + p cioè: [ η, η, η 2, ] coordinate omogenee di 2 p
Cambio di frame Dati de sistemi di riferimento: {,, o} {,,, q}, 2 3 2 3 p [a,a 2,a 3,] coordinate di p nel primo sist. di rif.: 2 3 o [b,b 2,b 3,] coordinate di p nel sec. sist. di rif.: 2 3 q Esprimo no in termini dell altro: o 2 3 γ γ γ γ 3 4 2 + γ + γ + γ + γ 2 32 42 22 2 2 2 2 + γ + γ + γ + γ 3 33 43 23 3 3 3 3 + p a a a 2 3 γ γ γ matrice di cambio di frame 2 3 γ γ γ 2 22 23 γ γ γ 3 32 33 γ γ γ 4 42 43 b b2 b 3
Cambio di frame (nel frame canonico) matrice di cambio di frame Dati de sistemi di riferimento: { } { } q o,,,,,, 3 2 3 2 w w w w q I I I I q I I I I I I I I I I I I + + + + + + + + + + + + 3 3 3 3 2 2 2 2 Esprimo no in termini dell altro: p [a,a 2,a 3,],,,,,,,,,,,, [b,b 2,b 3,] 2 3 q coordinate di p nel primo sist. di rif.: coordinate di p nel sec. sist. di rif.: 3 2 3 3 3 2 2 2 3 2 b b b q q q a a a
Frames con basi ortonormali In grafica si laora qasi sempre con frames con assi ortonormali Grosso antaggio: l inersa è banale q T T qr R q R F F b a F b F a p T T T T
Cambio di frame In realtà ttte le transf. affini lineari si possono edere come n cambio di frame comprese qelle iste: traslaione scaling (niforme o no) shearing Rotaioni La trasformaione che che porta le coordinate di n pnto (o ettore) dal frame A al frame B è la stessa che trasforma il frame B nel frame A
Costrire n frame di ista Inpt: Otpt: ) camera position C pos Matrice di Trasformaione 2) direione di ista C dir world frame ee frame 3) ettore di alto C p e C p e -e Oe sistema di riferimento globale (world frame) sistema di riferimento della camera (ee frame)
Ripasso: prodotto scalare e ettoriale Prodotto Scalare ("dot-prodct", "internal prodct"): ettore ettore scalare ) ( ) ( ) ( ) ( w w w + + commta lineare /2 lineare 2/2 Proprietà β β β β β β + + ),, ( ),, (
Ripasso: prodotto scalare e ettoriale Prodotto Scalare ("dot-prodct", "internal prodct"): ettore ettore scalare ( ) ( ) (,,) Q P Q P Q P e anche: qindi, per calcolare na distana tra pnti: per il modlo: Proprietà β β β β β β + + ),, ( ),, (
Ripasso: prodotto scalare e ettoriale Prodotto Scalare ("dot-prodct", "internal prodct"): ettore ettore scalare (,, ) ( β, β, β ) β + β + β Proprietà molto tilmente: cosθ qindi se e non sono nlli: e ortogonali e, se e sono normaliati: cosθ
Ripasso: prodotto scalare e ettoriale Prodotto Vettoriale ("cross-prodct", "eternal prodct"): ettore ettore ettore ) ( ) ( ) ( Proprietà il risltato è ortogonale ad entrambi gli operandi: non commta: β β β β β β β β β ),, ( ),, (
Ripasso: prodotto scalare e ettoriale Prodotto Vettoriale ("cross-prodct", "eternal prodct"): ettore ettore ettore Proprietà β β β β β β β β β ),, ( ),, ( θ θ sen sen e allineati e, se e sono normaliati: qindi se e non sono nlli: molto tilmente:
Costrire n frame di ista Inpt: ) camera position (pnto) C pos 2) direione di ista (ettore) C dir 3) ettore di alto (ettore) C p Otpt: Matrice di Trasformaione world frame ee frame Per comodita dell tente, non si richiede la specifica del frame della camera Solo il pnto di ista, la direione di ista il ettore di alto Per la stessa ragione non si richiede che il ettore di alto sia perpendicolare alla direione
Costire n frame di ista M ee Cdir C ( Cdir C Cdir C pos p p ) C dir e -e e Oe sistema di riferimento della camera (ee frame) Fniona sempre?...
Frame sinistrorso e detrorso Un sistema di riferimento pò essere sinistrorso o destrorso sinistrorso destrorso
Problema Dato n asse definito da n pnto p e na direione n, calcolare la trasformaione di rotaione di alfa gradi intorno all asse Hint: sappiamo già fare la rotaione attorno agli assi principali Hint2: se n fosse n asse principale sarebbe facile n p
Il processo di trasformaione 2 object Coordinates ) transformaione di modellaione ) transformaione di ista 2) transformaione di proieione 2 world Coordinates - 2 iew Coordinates (a.k.a. ee Coordinates) 2 2 - - - Normalied Deice Coordinates 2
Come si solge fisicamente il processo: Occhio o macchina fotografica il concetto è lo stesso: retina (2D screen bffer) lenti CCD o pellicola (2D screen bffer) lenti distana focale distana focale
Modello semplificato image plane - - distana focale
Niente lenti le lenti seriano a "simlare" na pin-hole camera non modellandole, ci siamo giocati (per ora) i "difetti" di qesta simlaione: range di foco finito flares distorsioni radiali
La proieione prospettica Al ariare della distana focale (d)
La proieione prospettica Al ariare della distana focale (d)
La proieione prospettica Al ariare della distana focale (d)
La proieione prospettica Al ariare della distana focale (d)
La proieione prospettica d piccolo Più distorsione prospettica. Effetto "fish-ee" (grandangolo) d grande Proporioni più mantente Effetto "oom" (eg. ista dal satellite) d infinito (p. parallela)
centro di proieione (origine) distana focale d image plane p d p - (,, ) ( p, p, p ) Triangoli simili d p d p p d p p / d / d Nota: NON è na trasformaione lineare NON è reersibile
Proieione prospettica: forma matriciale / d P d / P / / d d d diisione per 4ta comp matrice di trasformaione per la proieione prospettica: qesta operaione si fa per ltima. La 3 e 4 componente ci saranno tili!
Proieione ortogonale sl piano XY - ),, ( p Basta bttar ia la coordinata ),, ( p p p
I olmi di ista Il olme di ista è la regione di spaio che iene proiettata sll image plane, come nella realtà A differena che nella realtà, qesta regione si pò limitare con n piano, detto far plane Prospettico orografico iew point iew point
Volme di ista canonico Il olme di ista canonico e definito dai piani -,, -,, -,, o pi breemente [-,][-,][-,] Sia che la proieione sia prospettica che ortogonale, il olme di ista iene trasformato nel olme di ista canonico per effettare più facilmente il clipping Dopo qesta trasformaione si parla di clipcoordinates Si ma cos è il clipping?
Dal olme di ista prospettico a qello canonico + + + 2 ) ( 2 2 n f fn n f f b n t b t b t n l r l r l r n M per far f near n top t bottom b left l rigth r M per
Dal olme di ista ortogonale a qello canonico M ort + + + 2 2 2 f n f n f n b t b t b t l r l r l r M ort far f near n top t bottom b left l rigth r
Il processo di trasformaione 2 object Coordinates ) transformaione di modellaione ) transformaione di ista 2) transformaione di proieione 3) transformaione di iewport 2 screen Space 3 2 world Coordinates - 2 iew Coordinates (a.k.a. ee Coordinates) 2 2 - - - Normalied Deice Coordinates 2
Window: left, right,bottom,top. La nostra finestra di ista nel piano di proieione Viewport: doe iene isaliata sllo schermo
Trasformaione window to iewport La window è traslata nell origine del sistema di coordinate; La dimensione della window è scalata sino ad essere gale alla dimensione della iewport; La iewport è traslata nella posiione finale nel sistema di coordinate del dispositio di otpt; WV min min ma ma min min ma ma min min min min
Trasformaione window to iewport - La window è traslata nell origine del sistema di coordinate; ( ma, ma ) ( min, min )
Trasformaione window to iewport 2 - La dimensione della window è scalata sino ad essere gale alla dimensione della iewport;
Trasformaione window to iewport 3 - La iewport è traslata nella posiione finale nel sistema di coordinate del dispositio di otpt; ( ma, ma ) ( min, min )
Riassnto lnghee angoli proporioni colineariltà traslaione rotaione scalatra niforme scalatra non niforme shearing proieione ortigonale trasf. affine generica proieione prospettica con rinormaliaione V V X X X X X X V V V X X X X X V V V V V V V X V V V V V V V V