Processo di rendering 1 Trasformazioni di vista Trasformazioni di vista Il processo di visione in tre dimensioni Le trasformazioni di proiezione 2 Rendering nello spazio 2D Il processo di rendering (visualizzazione) nello spazio 2D è costituito da definizione di una window nello spazio dell’applicazione grafica Definizione di una viewport nello spazio delle coordinate del dispositivo di output applicazione di una trasformazione “window-to-viewport” dopo aver effettuato il clipping (rimozione) delle primitive (o parte di esse) esterne alla window 3 Il mondo in tre dimensioni Il processo di formazione delle immagini generate da computer viene assimilato al processo di formazione di una immagine da parte di un sistema ottico – ad esempio una macchina fotografica Questa metafora è chiamata Synthetic–Camera Model Il processo di rendering 3D è basato su questo modello: La visualizzazione consiste nel creare una particolare vista della scena 3D (relazione scena/osservatore) 4 Il mondo in tre dimensioni In generale il rendering consiste nel creare una vista di una scena 3D. Si ha pertanto: La definizione del modello - nel mondo dell’applicazione - è indipendente dalla posizione gli oggetti nel mondo da cui si osserva la scena reale sono indipendenti dalle fotografie scattate loro Le funzioni di modellazione (definite nel mondo dell’applicazione) e le funzioni relative al posizionamento della macchina (o dell’osservatore) all’interno della scena sono distinte e separate 5 Il mondo in tre dimensioni Il processo di formazione dell’immagine in un sistema ottico. Retina – piano immagine distanza focale lente distanza focale 6 La macchina fotografica virtuale La metafora utilizzata per descrivere le relazioni scena/osservatore è quella della macchina fotografica virtuale (synthetic camera): la pellicola fotografica corrisponde al piano di proiezione, una lente di lunghezza focale d corrisponde al centro di proiezione Il piano di proiezione è a distanza d dal centro di proiezione 7 La macchina fotografica virtuale La metafora utilizzata per descrivere le relazioni scena/osservatore è quella della macchina fotografica virtuale (synthetic camera). Il generico punto P=(x,y,z) della scena ha coordinate Pp=(xp,yp,d) sul piano immagine. Dove: Centro di proiezione nell’origine di x,y,z La trasformazione non è lineare, non è affine, non è reversibile Piano immagine perpendicolare all’asse z 8 La macchina fotografica virtuale La macchina fotografica virtuale è costituita da un parallelepipedo in cui la faccia anteriore presenta un foro di dimensioni infinitesime (pinhole camera) e sulla faccia posteriore si formano le immagini θ è l’angolo di vista a può essere modificato variando il rapporto tra la distanza focale (d) e la dimensione del piano immagine. 9 La macchina fotografica virtuale Per convenzione si assume che il piano immagine sia tra la scena ed il centro di proiezione, in modo da non avere immagini capovolte 10 La vista in 3D Il processo di formazione di una immagine di sintesi in 3D è costituito da una sequenza di operazioni: Definizione della trasformazione di proiezione (il modo di mappare informazioni 3D su un piano immagine 2D) Definizione dei parametri di vista (punto di vista, direzione di vista, etc.) Clipping in 3D (i parametri di vista individuano un volume di vista; occorre rimuovere le parti della scena esterne a tale volume) Trasformazione di proiezione e visualizzazione della scena (con trasformazione “window-to-viewport” finale) 11 La vista in 3D Il modello concettuale del processo di visione in 3D è il seguente (una volta scelto il tipo di proiezione e fissati i parametri di vista): Primitive di output in Coordinate del mondo coordinate del mondo 3D clippate Clippa sul volume di vista 12 La vista in 3D Il modello concettuale del processo di visione in 3D è quindi il seguente (una volta scelto il tipo di proiezione e fissati i parametri di vista): Primitive di output in Coordinate del mondo coordinate del mondo 3D clippate Clippa sul volume di vista 3D Proietta sul piano di proiezione 2D 13 La vista in 3D Il modello concettuale del processo di visione in 3D è quindi il seguente (una volta scelto il tipo di proiezione e fissati i parametri di vista): Primitive di output in Coordinate del mondo coordinate del mondo 3D clippate Clippa sul volume di vista Proietta sul piano di proiezione Coordinate del device 2D Trasforma nella viewport in coordinate del device 2D 14 Trasformazioni di proiezione Si dice proiezione una trasformazione geometrica che trasforma punti definiti in uno spazio di dimensione n in punti corrispondenti in uno spazio di dimensione m < n f : Rn → Rm m<n Nella grafica le trasformazioni di proiezione utilizzate sono dallo spazio 3D (il mondo dell’applicazione) allo spazio 2D (la superficie del dispositivo di output) 15 Trasformazioni di proiezione Una proiezione di un oggetto 3D in un piano è definita da un insieme di raggi lineari – proiettori - aventi origine in un centro di proiezione Ogni punto dell’oggetto è attraversato da un raggio che interseca il piano di proiezione 16 Trasformazioni di proiezione La proiezione di un segmento è a sua volta un segmento Non è quindi necessario calcolare i proiettori di tutti i punti di una scena, ma solo quelli relativi ai vertici delle primitive che la descrivono 17 Trasformazioni di proiezione Le proiezioni caratterizzate da: proiettori rettilinei (anziché curve generiche) proiezione giacente su un piano (anziché su una superficie generica) prendono il nome di proiezioni geometriche piane Molte delle proiezioni cartografiche non sono proiezioni geometriche piane 18 Trasformazioni di proiezione Le proiezioni geometriche piane si classificano in: Proiezioni prospettiche (distanza finita tra il centro ed il piano di proiezione) Proiezioni parallele (distanza infinita tra il centro ed il piano di proiezione) 19 Trasformazioni di proiezione Le proiezioni parallele prendono il nome dai proiettori che sono paralleli Per una proiezione prospettica si deve specificare il centro di proiezione, per la proiezione parallela invece la direzione di proiezione La proiezione prospettica è più realistica della parallela in quanto riproduce la visione reale (gli oggetti appaiono di dimensione decrescenti via via che ci si allontana dall’osservatore) 20 “La flagellazione” di Piero della Francesca (1469) 14 5,6 21 Trasformazioni di proiezione Le proiezioni parallele sono utili quando si richiede che linee parallele nel modello tridimensionale rimangano tali nella proiezione (ad esempio per effettuare misure sulla proiezione) 22 Le proiezioni prospettiche Nella proiezione prospettica, ogni insieme di linee parallele (ma non parallele al piano di proiezione) converge in un punto detto punto di fuga Se l’insieme di linee è parallelo ad uno degli assi coordinati, il punto di fuga si chiama principale (massimo 3); 23 Proiezione prospettica Al variare della distanza focale (d) 24 Proiezione prospettica Al variare della distanza focale (d) 25 Proiezione prospettica Al variare della distanza focale (d) 26 Proiezione prospettica Al variare della distanza focale (d) 27 La proiezione prospettica d piccolo d grande d infinito (p. parallela) Più distorsione prospettica. Proporzioni più mantenute Effetto "fish-eye" (grandangolo) Effetto "zoom" (eg. vista dal satellite) 28 Proiezioni parallele Le proiezioni parallele si classificano in base alla relazione esistente tra la direzione di proiezione e la normale al piano di proiezione Se le due direzioni coincidono si parla di proiezioni ortografiche, altrimenti di proiezioni oblique 29 Trasformazioni prospettiche –coordinate omogenee Una proiezione trasforma punti definiti in un sistema di coordinate 3D in punti corrispondenti in un sistema 2D Una proiezione di un oggetto 3D in un piano è definita da un insieme di raggi lineari - proiettori - che interseca un centro di proiezione Ogni punto dell’oggetto è attraversato da un raggio che interseca il piano di proiezione 30 Sistema di proiezione x,X IlIlsistema sistemadidiacquisizione acquisizioneèè posto postoininffed edèèmodellizato modellizato con conuna unalente lentedidilunghezza lunghezza focale focaleλλ y,Y P(X,Y,Z) f (x,y) Piano di proiezione z IlIlsistema sistemadidiriferimento riferimentodel del mondo mondoèètale taleche: che: X=x; X=x;Y=y; Y=y;ZZèèlungo lungol’asse l’asse ottico otticodella dellalente lente 31 Trasformazioni prospettiche – coordinate omogenee Consideriamo un punto P di coordinate (X,Y,Z), nel sistema di riferimento del mondo. Secondo lo schema precedente i punti (X,Y,Z) sono di fronte la lente a distanza maggiore della distanza focale λ Sia (x,y) la proiezione del punto P nel piano immagine y Y Z −λ Dalla similitudine dei triangoli si ha: λ x X =− λ Z −λ λX x = λ λ − Z Si ricava quindi y λY = λ λ − Z =− 32 Trasformazioni prospettiche – coordinate omogenee Le equazioni di trasformazione sono non lineari x λ = λX λ − Z y λY = λ λ − Z Per esprimere la dipendenza da Z in modo lineare - mediante una matrice di trasformazione - è necessario utilizzare le coordinate omogenee 33 Trasformazioni prospettiche – coordinate omogenee Siano (X,Y,Z) le coordinate cartesiane di un punto P Le coordinate omogenee di P sono definite come (kX, kY, kZ, k) con k costante arbitraria - diversa da zero Siano X P = Y coordinate cartesiane Z − 1 0 M = 0 0 0 0 1 0 0 1 1 0 − λ 0 0 0 1 kX kY − Ph = coordinate omogenee kZ k matrice di trasformazione 34 Trasformazioni prospettiche – coordinate omogenee Applicando tale matrice a un generico punto Ph, di coordinate omogenee (kX, kY, kZ, k) si ottiene: 1 0 * Ph = MPh = 0 0 0 1 0 0 0 1 1 0 − λ 0 kX kX 0 kY kY = 0 kZ kZ kZ 1 k − + k λ 35 Trasformazioni prospettiche – coordinate omogenee Per trasformare in coordinate cartesiane è sufficiente imporre che: − Da cui si ottiene: Sostituendo k in Ph*: k= kZ λ +k =1 λ λ−Z λ X λ − Z λY * Ph = λ−Z λZ − λ Z 1 36 Trasformazioni prospettiche – coordinate omogenee In coordinate cartesiane si ha: X λ λ − Z λY * P = λ−Z λZ λ − Z 37 Trasformazione inversa Consideriamo la trasformazione inversa da un punto del piano immagine ad un punto 3D −1 Ph = M Ph 1 0 M −1 = 0 0 0 1 0 0 0 0 1 1 λ 0 0 0 1 * matrice di trasformazione inversa 38 Trasformazione inversa dal piano immagine x,y al sistema X,Y,Z Consideriamo il piano immagine posto a Z=0 Consideriamo un punto P sul piano immagine di coordinate (x0, y0, 0) Le coordinate omogenee di P sono: kx 0 ky 0 * Ph = 0 k 39 Trasformazione inversa dal piano immagine x,y al sistema X,Y,Z Applicando la matrice di trasformazione inversa si ottiene: 1 0 * Ph = M −1Ph = 0 0 0 1 0 0 0 1 1 0 λ 0 kx 0 kx 0 0 ky 0 ky 0 0 0 = 0 1 k k 40 Trasformazione inversa dal piano immagine x,y al sistema X,Y,Z In coordinate cartesiane si ottiene: X x0 Y y 0 P= = Z 0 La trasformazione di una scena 3D in un piano immagine è una trasformazione molti a uno. Si verifica che il punto (x, y) del piano immagine corrisponde all’ insieme dei punti 3D - nel sistema (X,Y,Z) - situati sulla retta r passante per i punti (x0 , y0 , 0) e (0,0,λ) 41 Trasformazione inversa dal piano immagine x,y al sistema X,Y,Z Equazione della retta r nel sistema (X, Y, Z) x0 X = (λ − Ζ ) λ y Y = 0 (λ − Ζ ) λ Si ha cioè che il punto 3D che genera un punto immagine non può essere completamente ricostruito dalla sua proiezione sul piano immagine. E’ necessario infatti conoscere una delle tre coordinate X,Y,Z Il problema può essere risolto con 2 immagini acquisite da un sistema stereo 42 Sono una combinazione di scaling, traslazione, rotazione e shearing Trasformazioni affini Trasformazioni lineari conformali Trasformazioni proiettive Le linee rette rimangono rette Le linee parallele rimangono parallele Sono un sottoinsieme delle trasformazioni affini cioè combinazione di scaling dello stesso fattore in x, y, z, traslazione e rotazione Come per le trasformazioni affini le linee rette rimangono rette, ma le linee parallele convergono verso punti di fuga 43