Proiezioni Grafica 3d Giancarlo RINALDO rinaldo@dipmat.unime.it Dipartimento di Matematica Università di Messina ProiezioniGrafica 3d p. 1
Introduzione Il processo di visualizzazione in 3D è intrinsecamente più complesso della visualizzazione in 2D. ProiezioniGrafica 3d p. 2
Introduzione Il processo di visualizzazione in 3D è intrinsecamente più complesso della visualizzazione in 2D. Per visualizzare un oggetto in 3D (dato che i monitor sono periferiche 2D), dobbiamo proiettare i nostri punti su un piano. ProiezioniGrafica 3d p. 2
Introduzione Il processo di visualizzazione in 3D è intrinsecamente più complesso della visualizzazione in 2D. Per visualizzare un oggetto in 3D (dato che i monitor sono periferiche 2D), dobbiamo proiettare i nostri punti su un piano. Ovviamente questo determina una perdita di informazioni. ProiezioniGrafica 3d p. 2
Introduzione Il processo di visualizzazione in 3D è intrinsecamente più complesso della visualizzazione in 2D. Per visualizzare un oggetto in 3D (dato che i monitor sono periferiche 2D), dobbiamo proiettare i nostri punti su un piano. Ovviamente questo determina una perdita di informazioni. Questa perdita avverrà o da parte del realismo dell immagine rappresentata o nelle informazioni più geometriche (lunghezze, ampiezze). ProiezioniGrafica 3d p. 2
Proiezioni Cos è una proiezione? È la trasformazione di punti in un spazio di dimensone n (nel nostro caso 3), in nuovi punti in uno spazio di dimensione < n (nel nostro caso 2). ProiezioniGrafica 3d p. 3
Proiezioni Cos è una proiezione? È la trasformazione di punti in un spazio di dimensone n (nel nostro caso 3), in nuovi punti in uno spazio di dimensione < n (nel nostro caso 2). La proiezione è definita da un insieme di raggi proiettori emanati da un centro di proiezione. ProiezioniGrafica 3d p. 3
Proiezioni Cos è una proiezione? È la trasformazione di punti in un spazio di dimensone n (nel nostro caso 3), in nuovi punti in uno spazio di dimensione < n (nel nostro caso 2). La proiezione è definita da un insieme di raggi proiettori emanati da un centro di proiezione. Questi raggi incontrano i punti del nostro oggetto 3D e intersecano un piano (detto piano di proiezione) per formarne la proiezione. ProiezioniGrafica 3d p. 3
Proiezioni Cos è una proiezione? È la trasformazione di punti in un spazio di dimensone n (nel nostro caso 3), in nuovi punti in uno spazio di dimensione < n (nel nostro caso 2). La proiezione è definita da un insieme di raggi proiettori emanati da un centro di proiezione. Questi raggi incontrano i punti del nostro oggetto 3D e intersecano un piano (detto piano di proiezione) per formarne la proiezione. Questo tipo di proiezione si dice geometrica piana, nel senso che utilizziamo raggi, che sono rette, e li proiettiamo su di un piano. ProiezioniGrafica 3d p. 3
Tipologie di proiezioni Esistono essenzialmente due tipi di proiezioni geometriche piane : ProiezioniGrafica 3d p. 4
Tipologie di proiezioni Esistono essenzialmente due tipi di proiezioni geometriche piane : Prospettiva e Parallela. ProiezioniGrafica 3d p. 4
Tipologie di proiezioni Esistono essenzialmente due tipi di proiezioni geometriche piane : Prospettiva e Parallela. La distinzione è determinata dalla distanza del piano di proiezione dal centro di proiezione. ProiezioniGrafica 3d p. 4
Tipologie di proiezioni Esistono essenzialmente due tipi di proiezioni geometriche piane : Prospettiva e Parallela. La distinzione è determinata dalla distanza del piano di proiezione dal centro di proiezione. Nel primo caso è finita nel secondo è infinita. ProiezioniGrafica 3d p. 4
Tipologie di proiezioni Esistono essenzialmente due tipi di proiezioni geometriche piane : Prospettiva e Parallela. La distinzione è determinata dalla distanza del piano di proiezione dal centro di proiezione. Nel primo caso è finita nel secondo è infinita. Nel primo ci riferiremo esplicitamente ad un centro di proiezione nel secondo ad una direzione di proiezione. ProiezioniGrafica 3d p. 4
Osservazioni ProiezioniGrafica 3d p. 5
Osservazioni La proiezione prospettiva crea un effetto visuale simile a quello della visione umana : ProiezioniGrafica 3d p. 5
Osservazioni La proiezione prospettiva crea un effetto visuale simile a quello della visione umana : in particolare gli oggetti più distanti diventano più piccoli e rette parallele che non giacciono sul piano di proiezione perdono il loro parallelismo. ProiezioniGrafica 3d p. 5
Prospettiva Per semplificare il nostro lavoro assumiamo che il piano di proiezione, π, sia il piano su cui giacciono gli assi x ed y: cioè il piano di equazione z = 0. ProiezioniGrafica 3d p. 6
Prospettiva Per semplificare il nostro lavoro assumiamo che il piano di proiezione, π, sia il piano su cui giacciono gli assi x ed y: cioè il piano di equazione z = 0. Poniamo inoltre il centro di proiezione C nelle coordinate (0, 0,d), dove d è la distanza tra C e π. ProiezioniGrafica 3d p. 6
Prospettiva Per semplificare il nostro lavoro assumiamo che il piano di proiezione, π, sia il piano su cui giacciono gli assi x ed y: cioè il piano di equazione z = 0. Poniamo inoltre il centro di proiezione C nelle coordinate (0, 0,d), dove d è la distanza tra C e π. Sia P = (x,y,z) un punto generico dello spazio 3D e vogliamo conoscere la sua proiezione P = (x,y,z ) sul piano π. ProiezioniGrafica 3d p. 6
Prospettiva Per semplificare il nostro lavoro assumiamo che il piano di proiezione, π, sia il piano su cui giacciono gli assi x ed y: cioè il piano di equazione z = 0. Poniamo inoltre il centro di proiezione C nelle coordinate (0, 0,d), dove d è la distanza tra C e π. Sia P = (x,y,z) un punto generico dello spazio 3D e vogliamo conoscere la sua proiezione P = (x,y,z ) sul piano π. Applicando le opportune similitudini avremo per x : x d = x d z x = dx d z = x 1 z/d ProiezioniGrafica 3d p. 6
Prospettiva Analogamente per y : x d = x d z x = dx d z = x 1 z/d ProiezioniGrafica 3d p. 7
Prospettiva Analogamente per y : x d = Ovviamente z = 0. x d z x = dx d z = x 1 z/d ProiezioniGrafica 3d p. 7
Prospettiva Analogamente per y : x d = x d z x = dx d z = x 1 z/d Ovviamente z = 0. Scriviamo in forma matriciale queste equazioni (avere una forma matriciale 4 4 è utile perchè potremo combinare in una sola matrice diverse trasformazioni e proiezioni tramite il prodotto matriciale. ProiezioniGrafica 3d p. 7
Prospettiva Analogamente per y : x d = x d z x = dx d z = x 1 z/d Ovviamente z = 0. Scriviamo in forma matriciale queste equazioni (avere una forma matriciale 4 4 è utile perchè potremo combinare in una sola matrice diverse trasformazioni e proiezioni tramite il prodotto matriciale. (x,y,z,t ) = 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1/d 1 x y z 1 ProiezioniGrafica 3d p. 7
Prospettiva Sviluppando il prodotto matriciale avremo: (x,y,z,t ) = (x,y, 0, 1 z/d). ProiezioniGrafica 3d p. 8
Prospettiva Sviluppando il prodotto matriciale avremo: (x,y,z,t ) = (x,y, 0, 1 z/d). D altra parte noi consideriamo il punto che ha come ultima coordinata t = 1. Dunque effettuando la divisione per 1 z/d, avremo le equazioni di partenza. (x,y,z,t ) x = ( 1 z/d, y, 0, 1). 1 z/d ProiezioniGrafica 3d p. 8
Prospettiva Sviluppando il prodotto matriciale avremo: (x,y,z,t ) = (x,y, 0, 1 z/d). D altra parte noi consideriamo il punto che ha come ultima coordinata t = 1. Dunque effettuando la divisione per 1 z/d, avremo le equazioni di partenza. (x,y,z,t ) x = ( 1 z/d, y, 0, 1). 1 z/d Si osservi che per valori di z crescenti (con x ed y costanti) avremo un progressivo avvicinamento all origine. ProiezioniGrafica 3d p. 8
Prospettiva Sviluppando il prodotto matriciale avremo: (x,y,z,t ) = (x,y, 0, 1 z/d). D altra parte noi consideriamo il punto che ha come ultima coordinata t = 1. Dunque effettuando la divisione per 1 z/d, avremo le equazioni di partenza. (x,y,z,t ) x = ( 1 z/d, y, 0, 1). 1 z/d Si osservi che per valori di z crescenti (con x ed y costanti) avremo un progressivo avvicinamento all origine. ProiezioniGrafica 3d p. 8
Esercizi Osserviamo la nostra casa: Al variare del fattore 1/d cosa succede? ProiezioniGrafica 3d p. 9
Esercizi Osserviamo la nostra casa: Al variare del fattore 1/d cosa succede? Come si comportano gli spigoli della casa? ProiezioniGrafica 3d p. 9
Esercizi Osserviamo la nostra casa: Al variare del fattore 1/d cosa succede? Come si comportano gli spigoli della casa? Cos è un punto all infinito rispetto ad alcuni di questi spigoli? ProiezioniGrafica 3d p. 9
Esercizi Osserviamo la nostra casa: Al variare del fattore 1/d cosa succede? Come si comportano gli spigoli della casa? Cos è un punto all infinito rispetto ad alcuni di questi spigoli? Se ruotiamo la casa di alcuni gradi rispetto all asse y e dopo applichiamo la nostra prospettiva cosa succede? ProiezioniGrafica 3d p. 9
Esercizi Osserviamo la nostra casa: Al variare del fattore 1/d cosa succede? Come si comportano gli spigoli della casa? Cos è un punto all infinito rispetto ad alcuni di questi spigoli? Se ruotiamo la casa di alcuni gradi rispetto all asse y e dopo applichiamo la nostra prospettiva cosa succede? Dare una definizione di linea d orizzonte. ProiezioniGrafica 3d p. 9
Proiezione ortogonale Le più semplici proiezioni parallele sono quelle ortografiche. Sono le seguenti: π contiene gli assi x ed y e la direzione è quella dell asse z; ProiezioniGrafica 3d p. 10
Proiezione ortogonale Le più semplici proiezioni parallele sono quelle ortografiche. Sono le seguenti: π contiene gli assi x ed y e la direzione è quella dell asse z; π contiene gli assi x e z e la direzione è quella dell asse y; ProiezioniGrafica 3d p. 10
Proiezione ortogonale Le più semplici proiezioni parallele sono quelle ortografiche. Sono le seguenti: π contiene gli assi x ed y e la direzione è quella dell asse z; π contiene gli assi x e z e la direzione è quella dell asse y; π contiene gli assi y e z e la direzione è quella dell asse x. ProiezioniGrafica 3d p. 10
Proiezione ortogonale Le più semplici proiezioni parallele sono quelle ortografiche. Sono le seguenti: π contiene gli assi x ed y e la direzione è quella dell asse z; π contiene gli assi x e z e la direzione è quella dell asse y; π contiene gli assi y e z e la direzione è quella dell asse x. ProiezioniGrafica 3d p. 10
Proiezione ortogonale Le più semplici proiezioni parallele sono quelle ortografiche. Sono le seguenti: π contiene gli assi x ed y e la direzione è quella dell asse z; π contiene gli assi x e z e la direzione è quella dell asse y; π contiene gli assi y e z e la direzione è quella dell asse x. Molto semplici sono le loro espressioni matriciali. ProiezioniGrafica 3d p. 10
Proiezione obliqua Per costruire la proiezione obliqua si considera il segmento di estremi O = (0, 0, 0), A = (0, 0, 1), e si proietta P su π. ProiezioniGrafica 3d p. 11
Proiezione obliqua Per costruire la proiezione obliqua si considera il segmento di estremi O = (0, 0, 0), A = (0, 0, 1), e si proietta P su π. Il punto proiettato, Q avrà coordinate note fissate dai valori l ed α e sarà Q = (l cosα,l sinα, 0). ProiezioniGrafica 3d p. 11
Proiezione obliqua Per costruire la proiezione obliqua si considera il segmento di estremi O = (0, 0, 0), A = (0, 0, 1), e si proietta P su π. Il punto proiettato, Q avrà coordinate note fissate dai valori l ed α e sarà Q = (l cosα,l sinα, 0). Valori spesso usati sono l = 1 o l = 1/2, α = π/4, α = π/6 e così via. ProiezioniGrafica 3d p. 11
Proiezione obliqua Per trovare la proiezione di un punto generico P = (x,y,z) sul piano z = 0, si osservi ad esempio il piano yz, di equazione x = 0. ProiezioniGrafica 3d p. 12
Proiezione obliqua Per trovare la proiezione di un punto generico P = (x,y,z) sul piano z = 0, si osservi ad esempio il piano yz, di equazione x = 0. Il coefficiente angolare della retta AQ sul piano x = 0, sarà l sin α. ProiezioniGrafica 3d p. 12
Proiezione obliqua Per trovare la proiezione di un punto generico P = (x,y,z) sul piano z = 0, si osservi ad esempio il piano yz, di equazione x = 0. Il coefficiente angolare della retta AQ sul piano x = 0, sarà l sin α. Dato che i raggi proiettori sono paralleli, considero una retta parallela ad AQ e passante per P. ProiezioniGrafica 3d p. 12
Proiezione obliqua Per trovare la proiezione di un punto generico P = (x,y,z) sul piano z = 0, si osservi ad esempio il piano yz, di equazione x = 0. Il coefficiente angolare della retta AQ sul piano x = 0, sarà l sin α. Dato che i raggi proiettori sono paralleli, considero una retta parallela ad AQ e passante per P. Essa incontra l asse y nel punto (y p, 0) dove y p è uno dei valori cercati. ProiezioniGrafica 3d p. 12
Proiezione obliqua Per trovare la proiezione di un punto generico P = (x,y,z) sul piano z = 0, si osservi ad esempio il piano yz, di equazione x = 0. Il coefficiente angolare della retta AQ sul piano x = 0, sarà l sin α. Dato che i raggi proiettori sono paralleli, considero una retta parallela ad AQ e passante per P. Essa incontra l asse y nel punto (y p, 0) dove y p è uno dei valori cercati.dunque y = l sinαz + y p y p = y l sinα. ProiezioniGrafica 3d p. 12
Proiezione obliqua Per trovare la proiezione di un punto generico P = (x,y,z) sul piano z = 0, si osservi ad esempio il piano yz, di equazione x = 0. Il coefficiente angolare della retta AQ sul piano x = 0, sarà l sin α. Dato che i raggi proiettori sono paralleli, considero una retta parallela ad AQ e passante per P. Essa incontra l asse y nel punto (y p, 0) dove y p è uno dei valori cercati.dunque y = l sinαz + y p y p = y l sinα. Analogamente per il piano xz, di equazione y = 0, avrò: x = l cos αz + x p x p = x l cos α. ProiezioniGrafica 3d p. 12
Proiezione obliqua La sua forma matriciale dunque sarà: ProiezioniGrafica 3d p. 13
Proiezione obliqua La sua forma matriciale dunque sarà: (x,y,z, 1) = 1 0 l cos α 0 0 1 l sinα 0 0 0 0 0 0 0 0 1 x y z 1 ProiezioniGrafica 3d p. 13