Matrici di Proiezione Prospettica

Slides:



Advertisements
Presentazioni simili
Ombre e riflessioni in tempo reale
Advertisements

MATLAB.
MATLAB.
COORDINATE POLARI Sia P ha coordinate cartesiane
Grafica Raster La grafica in 2D con coordinate intere viene detta grafica raster. In questa parte tratteremo le operazioni fondamentali per disegnare su.
Macchina Fotografica Virtuale
Corso di Informatica grafica 1 Introduzione Quando si rappresentano modelli di oggetti 3D costituiti da facce poligonali secondo delle proiezioni alcune.
3 D prospettive non parallele
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Costruzione di Interfacce Lezione 6 Esercitazione Trasformazioni
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 2005/06 prove generali.
Costruzione di Interfacce Lezione 5 Trasformazioni Affini
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.
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.
Costruzione di Interfacce Lezione 5 Trasformazioni Affini
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.
Computer Graphics Marco Tarini Lezione 7: rasterizzazione la fabbrica dei frammenti Università dellInsubria Facoltà di Scienze MFN - Varese Corso di Laurea.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Costruzione di interfacce Paolo Cignoni
1 Costruzione di Interfacce Primi passi in OpenGL
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
MATLAB.
Sistema di riferimento su una retta
coordinate utente e di finestra
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009 Rendering grafico.
Elaborazione (digitale) delle immagini
1 Superfici nascoste Daniele Marini. 2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale.
1 Effetti impressionistici Daniele Marini. 2 Tecniche discrete di manipolazione del frame buffer: –Texture mapping –Antialiasing –Compositing –Alpha blending.
Lavorare con le matrici in OGL
LA FRAZIONE COME OPERATORE.
14 giugno 2011 Rasterizzazione Prof. Roberto Pirrone.
Le proiezioni e la prospettiva
Effetti fotorealistici
Texturing - Tessiture Daniele Marini.
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Le trasformazioni Daniele Marini.
Le proiezioni e la prospettiva
Le proiezioni e la prospettiva
Programmazione grafica 1
Superfici nascoste Daniele Marini.
1 Il rendering Daniele Marini. 2 Fasi del rendering Modellare Elaborazione geometrica - geometric processing Rasterizzazione Display.
1 Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Controllare le proiezioni
Corso Di Programmazione Grafica aa 2007/2008
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Trasformazioni Daniele Marini.
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Display list e picking Daniele Marini Corso Di Programmazione Grafica e Laboratorio.
Controllare la prospettiva
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2006/2007.
Controllare la prospettiva
Architettura di OGL e pipe-line Daniele Marini Davide Gadia Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Le trasformazioni Daniele Marini Corso Di Programmazione Grafica aa 2005/2006.
Controllare le proiezioni Daniele Marini Corso Di Programmazione Grafica aa 2007/2008.
Ottimizzazione della scena: culling (decimazione) Daniele Marini.
Ottimizzazione della scena: culling (decimazione) Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Controllare le proiezioni
La retta Equazione (rette parallele agli assi, passanti per l’origine e generiche) Forma esplicita e implicita Condizione di parallelismo e perpendicolarità.
Costruzione di interfacce Paolo Cignoni
Daniele Marini Con contributi di Maurizio Rossi
Cervical Test Massimo Lillia.
Transcript della presentazione:

Matrici di Proiezione Prospettica Assunto che siamo nel sistema di riferimento della camera con il centro di proiezione nell’origine, e il piano di proiezione a distanza d lungo l’asse -z Vogliamo trovare la proiezione sul piano di proiezione di un punto

Proiezione Prospettica Si ottiene che: Nota che questa trasformazione non è lineare, né affine, né reversibile.

Coordinate Omogenee Estendiamo la nostra def di coordinate omogenee dicendo che un punto p può essere rappresentato come Un punto in 3D corrisponde ad una linea in 4d. Posso sempre recuperare la forma con 1 come quarto elemento Posso fare matrici che modificano il quarto elemento.

Coordinate Omogenee In particolare possiamo definire la matrice Che effettua la trasformazione prospettica, purchè si normalizzi dividendo per la quarta componente

Proiezione prospettica in opengl Finora abbiamo definito solo l’operazione di proiezione. Per definire una camera dobbiamo anche definire il view volume Angle of view Near and far clipping planes

Proiezione prospettica in opengl glFrustum(xmin,xmax,ymin,ymax,near,far); gluPerspective(fov,aspect,near,far) -far -near -far -near

Proiezioni Ortogonali Caso particolare di proiezione parallela in cui le linee di proiezione sono perpendicolari al view plane La proiezione è semplicemente

Proiezioni Ortogonali in OpenGL glOrtho(xmin,xmax,ymin,ymax,near,far); I clipping planes sono a z= -near e z=-far -far -far -near -near

Hidden Surface Removal Si deve disegnare sul frame buffer solo quelle porzioni di primitive che sono davanti a tutte le altre; esistono numerosi algoritmi Tecnica Zbuffer, per ogni pixel dello schermo memorizzo la minima distanza dal centro di proiezione disegnata in quel pixel. Quando rasterizzo, disegno (e aggiorno lo zbuffer, solo se davanti.

Window e Device coords In Opengl si distingue tra Normalized Device (screen) Coords Sono 3d, quel che si vede e’ nel canonical view volume. Window Coord Sono sempre 3d, ma con x,y espresse in pixel, e la z in [0,1];

Normalized Device Coord In Opengl Perspective Transf + division Convertono a Normalized Device Coord La geometria è quindi clippata sul Canonical View Volume

Mapping the view volume Sul Canonical view Volume, In questo caso la proiezione ortografica diventa (1,1,-1) (-1,-1,1)

Mapping the View Volume Anche le trasf prospettiche mappano sul canonical view volume In questo caso l’applicazione della matrice di proiezione prospettica distorce la scena in maniera tale da introdurre il rimpicciolimento prospettico. -1 -1

Window Coordinate Il passaggio da normalized device coords a window coord. è gestito dalla viewport transformation

Window Coordinate In opengl il passaggio da Normalized Device (screen) Coords a window coord e’ controllato dal comando glViewport(x,y,w,h) x,y origine del lower left corner della finestra w,h dimensioni in pixel della finestra Nota in effetti anche la z puo’ essere mappata in un range diverso (ma sempre incluso) da [0,1] glDepthRange(znear, zfar)