Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
Mat_Insieme Lavoro di Gruppo Prodotti Notevoli
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
CIRCONFERENZA ELLISSE PARABOLA IPERBOLE Un po’ di storia
Capitolo 4 Trasformazioni Geometriche
OMOLOGIA.
COORDINATE POLARI Sia P ha coordinate cartesiane
Frontespizio Economia Monetaria Anno Accademico
I sistemi di riferimento
ELEZIONI REGIONALI 2010 PRIMI RISULTATI E SCENARI 14 aprile 2010.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 prove.
Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 prove generali.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Costruzione di Interfacce Lezione 4 Nozioni di geometria per la grafica
Costruzione di Interfacce Lezione 4 Geometria per la grafica
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Matrici di Proiezione Prospettica
M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 6 U n i v e r s i t à d e l l I n s u b r i a - 1/40 Esercizio Rasterizzazione (risultato.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Computer Graphics Marco Tarini Lezione 7: rasterizzazione la fabbrica dei frammenti Università dellInsubria Facoltà di Scienze MFN - Varese Corso di Laurea.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Canale A. Prof.Ciapetti AA2003/04
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Master universitario di II livello in Ingegneria delle Infrastrutture e dei Sistemi Ferroviari Anno Accademico 2012/2013 Cultura dimpresa, valutazione.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Cos’è un problema?.
Trasformazioni 2D e 3D Daniele Marini.
Lavorare con le matrici in OGL
Velocità ed accelerazione
Q UESTIONI ETICHE E BIOETICHE DELLA DIFESA DELLA VITA NELL AGIRE SANITARIO 1 Casa di Cura Villa San Giuseppe Ascoli Piceno 12 e 13 dicembre 2011.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
TRASFORMAZIONI GEOMETRICHE
LE SAI LE TABELLINE? Mettiti alla prova!.
Un trucchetto di Moltiplicazione per il calcolo mentale
Le proiezioni e la prospettiva
Le trasformazioni Daniele Marini.
Le proiezioni e la prospettiva
Le proiezioni e la prospettiva
Controllare le proiezioni
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Trasformazioni Daniele Marini.
Controllare la prospettiva
NO WASTE Progetto continuità scuola primaria scuola secondaria Salorno a.s. 2013_
Numeri Interi senza segno
Il numero più grande Accademia dei Lincei
TRASFORMATA DI FOURIER
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Computer Graphics Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Daniele Marini Con contributi di Maurizio Rossi
Transcript della presentazione:

Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione 4: la T in T&L

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 2 frammenti (candidati pixels) Riassunto puntate precedenti Vertici (punti in R 3 ) pixel finali (nello screen-buffer) Vertici proiettati (punti in R 2 ) Z rasterizer triangoli computazioni per frammento z y x v0v0 v1v1 v2v2 set- up v0v0 v1v1 v2v2 rasterizer segmenti set- up rasterizer punti set- up computazioni per vertice noi siamo qui

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 3 Riassunto puntate precedenti 2/3 z y x v0v0 v1v1 v2v2 v0v0 v1v1 v2v2 object Coordinates screen Coordinates Per ogni vertice: TRANSFORM ?

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 4 Riassunto puntate precedenti 3/3 z y x v0v0 v1v1 v2v2 world Coordinates 1 1) transformazione di vista 2) transformazione di proiezione 3) transformazione di viewport 2 y -z v0v0 v1v1 v2v2 view Coordinates (a.k.a. eye Coordinates) y -x -z v0v0 v1v1 v2v2 v0v0 v2v2 v1v1 v0v0 v1v1 v2v2 screen Space 3 Normalized Device Coordinates 1 1 x z y x v0v0 v1v1 v2v2 object Coordinates 0 0) transformazione di modellazione

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 5 1) Transformazione di vista La posso fare con una serie di –traslazioni –rotazioni ripassino di geometria...

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 6 Spazio affine Spazio dove ci sono tre entità –scalari –vettori –punti attributi: lunghezza, direzione unico attributo: la posizione, rispetto ad un sistema di riferimento

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 7 Spazio affine Spazio dove ci sono tre entità –scalari –vettori –punti Operazioni: –Somma e moltiplicazione tra scalari (ovviamente) –Moltiplicazione scalare x vettore vettore –Somma vettore x vettore vettore –Somma punto x vettore punto –Sottrazione punto x punto vettore

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 8 Sistema di riferimento ( frame ) Definito da –un punto base (origine) p 0 –e una base vettoriale { v 0, v 1, v 2 } Posso esprimere (univocamente) ogni punto p come: p = v v v p 0 coordinate omogenee di p lin indip cioè: p = v0v0 v1v1 v2v2 p0p

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 9 Sistema di riferimento ( frame ) Definito da –un punto base (origine) p 0 –e una base vettoriale { v 0, v 1, v 2 } Posso esprimere (univocamente) ogni vettore v come: v = v v v p 0 coordinate omogenee di p cioè: p = v0v0 v1v1 v2v2 p0p

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 10 Rappresentazione di punti e vettori in coordinate omogenee Punti Vettori 1 0

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 11 q = (p) v = (u) Trasformazioni Affini Funzioni che prendono un punto (o un vettore) e lo mappano in un altro punto (o vettore) –lavorano in coord omogenee –ci interessano trasformazioni che siano lineari p q

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 12 Trasformazioni Affini Preservano –la colinearità tutti i punti inizialmente su una linea giacciono ancora su di una linea dopo la trasformazione e anche –i rapporti tra le distanze il punto di mezzo di un segmento rimane il punto di mezzo di un segmento anche dopo la trasformazione. in generale non preservano: distanze, angoli, aree... se lo fanno, le chiamiamo "rigide"

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 13 Trasformazioni Affini Si possono esprimere come moltiplicazione con matrice sempre coordinate omogenee punto di partenza coordinate omogenee punto di arrivo

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 14 conta solo questo Trasformazioni Affini Caso vettori sempre coordinate omogenee vettore di partenza coordinate omogenee vettore di arrivo

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 15 Esempio: traslazione rigida posso riscriverla come: e cioè: vettore di traslazione

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 16 Traslazione rigida l'inversa é ovviamente: matrice di traslazione:

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 17 Traslazione rigida cosa succede se la applico ad un vettore ? 0 0

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 18 matrice di scaling Scalatura uniforme x y x y

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 19 Scalatura non uniforme x y x y matrice di scaling inversa?

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 20 Scalatura x y x y nota: la scalatura scala anche la distanza dall'origine

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 21 Shearing Lo spostamento e proporzionale alla coord y

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 22 Rotazione attorno all'asse z (x,y) x y z partenza: arrivo:

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 23 Rotazione attorno all'asse z (x,y) x y z

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 24 Rotazione attorno all'asse x, y, o z e le inverse?

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 25 Rotazione intorno ad un asse parallelo all'asse z x y z x y z x y traslazione T rotazione R x y traslazione T Porto il centro di rot nell'origine 2. Ruoto 3. Rimetto a posto

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 26 Rotazione intorno ad un asse parallelo all'asse z x y z x y z f( p ) = T -1 ( R ( T p ) ) x y traslazione T rotazione R x y traslazione T

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 27 Composizione di trasformazioni Moltiplicazione matrici (vettori) ha la propretà associativa f(p) = T -1 ( R ( T p ) ) = (T -1 R T) p una matrice M 4x4 che fa tutto. considerazioni sull'efficienza cosa possiamo dire sulla forma di M ? cosa succede se moltiplichiamo un vettore per M ?

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 28 Punti VS vettori x y z x y z M p M( p ) vM( v ) p = ( *, *, *, 1 ) punto all'angolo della casa (punto) v = ( *, *, *, 0 ) velocità vettoriale del fumo (vettore)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 29 Nessuno si offenda Attenzione all'inversione: (AB) -1 = B -1 A -1 Associativa si, ma commutativa no! AB BA previsione: determinare il corretto ordine delle trasformazioni non sarà intuitivo x y x y RTTR

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 30 matrice di cambio di frame Cambio di frame (cambio di sistema di riferimento) Dati due sistemi di riferimento: Esprimo uno in termini dellaltro: p == coordinate di p nel primo sist. di rif.: coordinate di p nel sec. sist. di rif.: v0v0 v1v1 v2v2 p0p0 a0a1a21a0a1a21 u0u0 u1u1 u2u2 q0q0 b0b1b21b0b1b21

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 31 matrice di cambio di frame Cambio di frame (cambio di sistema di riferimento) caso particlare: arrivo a sistema di riferimento canonico Dati due sistemi di riferimento: Esprimo uno in termini dellaltro: u1u1 u2u2 u3u3 q p == coordinate di p nel primo sist. di rif.: coordinate di p nel sec. sist. di rif.: a0a1a21a0a1a21 u0u0 u1u1 u2u2 q0q0 b0b1b21b0b1b21

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 32 Cambio di frame In realtà tutte le transf. affini lineari si possono vedere come un cambio di frame –comprese quelle viste: traslazione scaling (uniforme o no) shearing rotazioni

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 33 Rotazioni generiche Una rotazione generica é definita da: –angolo, –asse –punto di applicazione come si fa?

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 34 Ripasso: prodotto scalare e vettoriale Prodotto Scalare ("dot-product", "internal product") : vettore x vettore scalare commuta lineare 1/2 lineare 2/2 Proprietà

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 35 Ripasso: prodotto scalare e vettoriale Prodotto Scalare ("dot-product", "internal product") : vettore x vettore scalare e anche: quindi, per calcolare una distanza tra punti: per il modulo: Proprietà

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 36 Ripasso: prodotto scalare e vettoriale Prodotto Scalare ("dot-product", "internal product") : vettore x vettore scalare e ortogonali Proprietà e, se u e v sono normalizzati: quindi se u e v non sono nulli: molto utilmente:

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 37 Ripasso: prodotto scalare e vettoriale Prodotto Vettoriale ("cross-product", "external product") : vettore x vettore vettore Proprietà il risultato è ortogonale ad entrambi gli operandi: non commuta: u v uxvuxv

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 38 Ripasso: prodotto scalare e vettoriale Prodotto Vettoriale ("cross-product", "external product") : vettore x vettore vettore Proprietà e allineati e, se u e v sono normalizzati: quindi se u e v non sono nulli: molto utilmente:

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 39 Input: 1) camera position C pos 2) direzione di vista C dir 3) vettore di alto C up Esercizio: transformazione di vista sistema di riferimento della camera (eye frame) yeye xexe -z e OeOe y x z 0 sistema di riferimento globale (wolrd frame) Output: Matrice di Trasformazione world frame eye frame C up

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 40 Transform x y z v0v0 v1v1 v2v2 world Coordinates 1) transformazione di vista 2) transformazione di proiezione 3) transformazione di viewport 2 y -z v0v0 v1v1 v2v2 view Coordinates (a.k.a. eye Coordinates) y x -z v0v0 v1v1 v2v2 v0v0 v2v2 v1v1 v0v0 v1v1 v2v2 screen Space 3 Normalized Device Coordinates 1 1 x x y z v0v0 v1v1 v2v2 object Coordinates 0) transformazione di modellazione 0 1

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 41 Esempio in 2D Procedura Disegna_pupazzo_di_neve –Disegna cerchio unitario // corpo –Trasla di (0,2) –Disegna cerchio unitario // testa –(undo trasla) –END

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 42 Esempio in 2D Procedura Disegna_pupazzo_di_neve –Disegna cerchio unitario // corpo –Trasla di (0,2) –Disegna cerchio unitario // testa –(undo trasla) –END Main –Scala di (2,2) –Disegna_pupazzo_di_neve: Disegna cerchio unitario Trasla di (0,2) Disegna cerchio unitario (undo trasla)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 43 Scene composite sist coord macchina sist coord ruota

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 44 Rendering di scene composite M matrice di modelling usata (da settare prima del rendering di ogni pezzo) T M matr traslazione macchina R M matr rotazione macchina T M R M : va da frame macchina a frame mondo T Ri matr traslazione ruota i T Ri : va da frame ruota a frame macchina!) sist coord mondo (globale) TMTM Come viene l'algoritmo di rendering?

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 45 Stack di matrici di modelling! M TMRMTMRM T M R M T R0

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 46 Transform x y z v0v0 v1v1 v2v2 world Coordinates 1 1) transformazione di vista 2) transformazione di proiezione 3) transformazione di viewport y -z v0v0 v1v1 v2v2 view Coordinates (a.k.a. eye Coordinates) y x -z v0v0 v1v1 v2v2 v0v0 v2v2 v1v1 v0v0 v1v1 v2v2 screen Space 3 Normalized Device Coordinates 1 1 x x y z v0v0 v1v1 v2v2 object Coordinates 0 0) transformazione di modellazione 2

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 47 Trasformazione di proiezione Prima o poi dovremo farlo: da 3D a 2D ! 2 y -z v0v0 v1v1 v2v2 view Coordinates (a.k.a. eye Coordinates) y x -z v0v0 v1v1 v2v2 v0v0 v2v2 v1v1 normalized projected coordinates 1 1 x

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 48 Trasformazione di proiezione Vecchio problema: –(in arte, architettura progettazione) come riportare –su un piano (immagine 2D) –oggetti 3D

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 49 Trasformazione di proiezione Modo 1: –facile: togliamo una coordinata –ad es. azzeriamo la z –matrice corrisponente:

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 50 Trasformazione di proiezione E' una proiezione ortogonale –non c'è prospettiva –simula una situazione in cui: il punto di vista all'infinito con un binocolo mooolto potente –direzioni di vista costanti –Ci manca una scalatura non uniforme (causa aspect ratio del monitor / della finestra!)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 51 Trovare le differenze...

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 52 Come si svolge fisicamente il processo: Occhio o macchina fotografica il concetto è lo stesso: lenti CCD o pellicola (2D screen buffer) lenti retina (2D screen buffer) distanza focale

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 53 Nostro modello semplificato: pin-hole camera distanza focale -x y -z image plane

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 54 Nostro modello semplificato: nota: niente lenti –le lenti servivano a "simulare" una pin-hole camera –non modellandole, ci siamo giocati (per ora) i "difetti" di questa simulazione: range di fuoco finito flares distorsioni radiali

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 55 Matematicamente y -z distanza focale d image plane centro di proiezione (origine) x Nota: non è lineare né affine; non è reversibile. non mantiene: rapporto fra distanze colineari (ma mantiene: colinearità)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 56 Ritocchiamo la notazione Esprimo i punti anche con la notazione divisione per 4ta comp anche detta normalizzazione affine

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 57 Proiezione prospettica divisione per 4ta comp matrice di trasformazione per la proiezione prospettica: questa operazione si fa per ultima. La 3 e 4 componente (originali) ci saranno utili !

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 58 In realtà non si scarta la terza dimensione: ci servirà P y -z v0v0 v1v1 v2v2 view Coordinates (a.k.a. eye Coordinates) x normalizzazione affine y z x coordinate proiettate e normalizzate (affine) [ancora 3D!] Moltiplicazione per la matrice di proiezione La parte visibile casca in [-1,1] x [-1,1] x [-1,1] quindi dette anche "Normalized Device Coordinates"

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 59 Proiezione prospettica: che effetto fa

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 60 Proiezione Prospettica: che effetto fa d infinito (diventa una proiezione ortogonale) d piccolod grande Più distorsione prospettica. Effetto "fish-eye" (grandangolo) Proporzioni più mantenute Effetto "zoom" (eg. vista dal satellite)

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 61 Curiosità effetto Vertigo –detto anche "contra-zoom" o "track & zoom"

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 62 Considerazione traslazione rotazione scalatura uniforme scalatura non uniforme shearing proiezione ortigonale trasf. affine generica proiezione prospettica con rinormalizzazione lunghezze rapporti lunghezze su una linea angoli colineariltà VVXXXXXXVVXXXXXX VVVXXXXXVVVXXXXX VVVVVVVXVVVVVVVX VVVVVVVVVVVVVVVV

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 63 Considerazione x y z v0v0 v1v1 v2v2 world Coordinates y -z v0v0 v1v1 v2v2 view Coordinates (a.k.a. eye Coordinates) y x -z v0v0 v1v1 v2v2 v0v0 v2v2 v1v1 v0v0 v1v1 v2v2 screen Space Normalized Device Coordinates 1 1 x x y z v0v0 v1v1 v2v2 object Coordinates modellazione vista proiezione viewport Modellazione + Vista: di solito - scalature uniformi - traslazioni - rotazioni che mantengono gli angoli Proiezione: non mantiene gli angoli teniamo una sola matrice per entrambe (la matrice "Modellazione-Vista") teniamo questa matrice separata (la matrice "Proiezione")

M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a - 64 Stack di matrici di MODEL-VIEW M V T M R M V T M R M T R0 V teniamo una sola matrice per entrambe (la matrice "Modellazione-Vista") da mondo a vista