Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 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.
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.
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
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 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.
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 2006/07 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?.
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.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
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!.
1 Questionario di soddisfazione del servizio scolastico Anno scolastico 2011/2012 Istogramma- risposte famiglie.
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.
Transcript della presentazione:

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

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 - 2/40 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 x y z v0v0 v1v1 v2v2 set- up v0v0 v1v1 v2v2 rasterizer segmenti set- up rasterizer punti set- up computazioni per vertice noi siamo qui

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 - 3/40 Riassunto puntate precedenti 2/3 x y z v0v0 v1v1 v2v2 v0v0 v1v1 v2v2 object Coordinates screen Coordinates Per ogni vertice: TRANSFORM ?

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 - 4/40 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

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 - 5/40 1) Transformazione di vista La posso fare con una serie di –traslazioni –rotazioni ripassino di geometria...

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 - 6/40 Spazio affine Spazio dove ci sono tre entità –scalari –vettori –punti attributi: lunghezza, direzione unico attributo: la posizione, rispetto ad un sistema di riferimento

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 - 7/40 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

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 - 8/40 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 cioè: p = [ 0, 1, 2, 1] v0v0 v1v1 v2v2 p0p0 coordinate omogenee di p lin indip

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 - 9/40 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 cioè: v = [ 0, 1, 2, 0] v0v0 v1v1 v2v2 p0p0 coordinate omogenee di v

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 - 10/40 Rappresentazione di punti e vettori in coordinate omogenee Punti Vettori 1 0

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 - 11/40 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

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 - 12/40 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"

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 - 13/40 Trasformazioni Affini Si possono esprimere come moltiplicazione con matrice sempre coordinate omogenee punto di partenza coordinate omogenee punto di arrivo

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 - 14/40 conta solo questo Trasformazioni Affini Caso vettori sempre coordinate omogenee vettore di partenza coordinate omogenee vettore di arrivo

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 - 15/40 Esempio: traslazione rigida posso riscriverla come: e cioè: vettore di traslazione

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 - 16/40 Traslazione rigida l'inversa é ovviamente: matrice di traslazione:

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 - 17/40 Traslazione rigida cosa succede se la applico ad un vettore ? 0 0

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 - 18/40 matrice di scaling Scalatura uniforme x y x y

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 - 19/40 Scalatura non uniforme x y x y matrice di scaling inversa?

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 - 20/40 Scalatura x y x y nota: la scalatura scala anche la distanza dall'origine

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 - 21/40 Shearing Lo spostamento e proporzionale alla coord y

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 - 22/40 Rotazione attorno all'asse z (x,y) x y z partenza: arrivo:

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 - 23/40 Rotazione attorno all'asse z (x,y) x y z

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 - 24/40 Rotazione attorno all'asse x, y, o z e le inverse?

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 - 25/40 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

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 - 26/40 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

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 - 27/40 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 ?

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 - 28/40 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)

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 - 29/40 Nessuno si offenda Attenzione all'inversione: (AB) -1 = B -1 A -1 Associativa si, ma commutativa no! AB BA fidatevi, l'ordine trasformazioni sarà un problema x y x y RTTR

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 - 30/40 matrice di cambio di frame Cambio di frame (cambio di sistema di riferimento) Dati due sistemi di riferimento: Esprimo uno in termini dellaltro: p = [a 1,a 2,a 3,1] v1v1 v2v2 v3v3 p = [b 1,b 2,b 3,1] u1u1 u2u2 u3u3 q coordinate di p nel primo sist. di rif.: coordinate di p nel sec. sist. di rif.:

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 - 31/40 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: p = [a 1,a 2,a 3,1] 1,0,0 0,1,0 0,0,1 0,0,0 = [b 1,b 2,b 3,1] u1u1 u2u2 u3u3 q coordinate di p nel primo sist. di rif.: coordinate di p nel sec. sist. di rif.: u1u1 u2u2 u3u3 q

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 - 32/40 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

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 - 33/40 Rotazioni generiche Una rotazione generica é definita da: –angolo, –asse –punto di applicazione come si fa?

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 - 34/40 Ripasso: prodotto scalare e vettoriale Prodotto Scalare ("dot-product", "internal product") : vettore x vettore scalare commuta lineare 1/2 lineare 2/2 Proprietà

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 - 35/40 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à

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 - 36/40 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:

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 - 37/40 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

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 - 38/40 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:

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 - 39/40 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 z x 0 sistema di riferimento globale (wolrd frame) Output: Matrice di Trasformazione world frame eye frame C up

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 - 40/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

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 - 41/40 Scene composite sist coord macchina sist coord ruota

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 - 42/40 Rendering di scene composite M matrice di modelling usata (da settare prima del rendering di ogni pezzo) T M matr traslazione macchina (da mondo a macchina) R M matr rotazione macchina (da mondo a macchina) T Ri matr traslazione ruota i (da ruota a macchina!) sist coord mondo (globale) TMTM Come viene l'algoritmo di rendering?

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 - 43/40 Stack di matrici di modelling! M TMRMTMRM T M R M T R0

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 - 44/40 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

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 - 45/40 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

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 - 46/40 Trasformazione di proiezione Vecchio problema: –(in arte, architettura progettazione) come riportare –su un piano (immagine 2D) –oggetti 3D

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 - 47/40 Trasformazione di proiezione Modo 1: –facile: togliamo una coordinata –ad es. azzeriamo la z –matrice corrisponente:

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 - 48/40 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

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 - 49/40 Trovare le differenze...

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 - 50/40 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

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 - 51/40 Nostro modello semplificato: pin-hole camera distanza focale -x y -z image plane

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 - 52/40 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

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 - 53/40 Matematicamente y -z distanza focale d image plane centro di proiezione (origine) x Nota: non è lineare né affine; non è neanche reversibile.

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 - 54/40 Ritocchiamo la notazione Esprimo i punti anche con la notazione divisione per 4ta comp anche detta normalizzazione affine

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 - 55/40 Proiezione prospettica divisione per 4ta comp matrice di trasformazione per la proiezione prospettica: questa operazione si fa per ultima. La 3 e 4 componente ci saranno utili !

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 - 56/40 In realtà non si scarta la terza dimensione: ci servirà P y -z v0v0 v1v1 v2v2 view Coordinates (a.k.a. eye Coordinates) x cosidette "Clip Coordinates" 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"

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 - 57/40 Proiezione prospettica: che effetto fa

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 - 58/40 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)

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 - 59/40 Curiosità effetto Vertigo –detto anche "contra-zoom" o "track & zoom"

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 - 60/40 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

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 - 61/40 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: trasformazioni rigide (o almeno 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")

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 - 62/40 Stack di matrici di MODEL-VIEW M V T M R M V T M R M T R0 V