Controllare le proiezioni

Slides:



Advertisements
Presentazioni simili
Attività di Laboratorio di
Advertisements

Introduzione al Disegno Tecnico
Momento di un vettore rispetto ad un polo fisso
Unificazione nel disegno: Metodi di rappresentazione
Capitolo 4 Trasformazioni Geometriche
Geometria analitica dello spazio
Cinematica diretta Un manipolatore è costituito da un insieme di corpi rigidi (bracci) connessi in cascata tramite coppie cinematiche (giunti). Si assume.
Cinematica del braccio di un robot
Incontri territoriali ott-nov INCONTRO DI PRESENTAZIONE E DIVULGAZIONE PUNTI e SPUNTI per la valutazione interna della scuola.
APRE Agenzia per la Promozione della Ricerca Europea La proposta CE sulle Regole di partecipazione al VII Programma Quadro di RST dellUE ( ) Caterina.
Macchina Fotografica Virtuale
Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni
Costruzione di Interfacce Lezione 5 Trasformazioni Affini
Costruzione di Interfacce Lezione 4 Nozioni di geometria per la grafica
Matrici di Proiezione Prospettica
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 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.
Condizionamento dei segnali di misura
F.Murtas 24 Marzo Stato del Servizio Coordinamento Banche Dati Ricerca Dataweb Introduzione Alcuni dati sul Sito INFN Siti di carattere Divulgativo.
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009 Rendering grafico.
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009 Trasformazioni affini.
Prof. Giovanni Raho A.A Usabilità Informatica Applicata CDL Scienze della Comunicazione scritta ed ipertestuale.
COMMISSIONE ENERGIA - CONFARTIGIANATO
Milano, 10 Luglio SEMINARIO LA RIFORMA DELL'AUTOTRASPORTO Milano, 10 Luglio 2006 LA RIFORMA DELL'AUTOTRASPORTO. IL FILO ROSSO CHE LEGA RESPONSABILITÀ,
Trasformazioni 2D e 3D Daniele Marini.
1 Superfici nascoste Daniele Marini. 2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale.
Lavorare con le matrici in OGL
Enrico Lo Gatto Cranfield University
Le proiezioni e la prospettiva
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Le trasformazioni Daniele Marini.
Prospettiva e prospettività: IL METODO DELLE PROIEZIONI CENTRALI
Enrico Lo Gatto Cranfield University
Le proiezioni e la prospettiva
Le proiezioni e la prospettiva
Superfici nascoste Daniele Marini.
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
Modelli di Illuminazione Modelli locali Daniele Marini Corso Di Programmazione Grafica aa2005/2006.
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Trasformazioni Daniele Marini.
Trasformazioni in OGL Daniele Marini Davide Gadia Marco Ronchetti Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Corso Di Programmazione Grafica
Rotazioni e quaternioni
Primitive grafiche e interazione Daniele Marini Davide Gadia Marco Ronchetti Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Controllare la prospettiva
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.
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2005/2006.
Le proiezioni e la prospettiva
Antialiasing parzialmente tratto da: Han-Wei Shen Daniele Marini Corso Di Programmazione Grafica aa2005/2006.
Shading e smoothing Daniele Marini Corso Di Programmazione Grafica aa2005/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.
Titolo Daniele Marini Davide Gadia Marco Ronchetti Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Vettori dello spazio bidimensionale (R 2)
26 maggio Co.Ge.A.P.S. “Ordini, Collegi ed Associazioni in primo piano nella certificazione dei percorsi formativi degli operatori sanitari” Napoli.
LABORATORIO DI DISEGNO – CORSO A
Messina, 20 novembre Lo SVILUPPO di un territorio.
La retta Equazione (rette parallele agli assi, passanti per l’origine e generiche) Forma esplicita e implicita Condizione di parallelismo e perpendicolarità.
La traslazione.
Daniele Marini Con contributi di Maurizio Rossi
Docente: Antonio Zanutta FOTOGRAMMETRIA L FINALITA’ Fornire la conoscenza del rilievo fotogrammetrico di strutture ed oggetti di interesse storico-artistico,
Transcript della presentazione:

Controllare le proiezioni Corso Di Programmazione Grafica aa 2005/2006 Controllare le proiezioni Daniele Marini

Programmazione Grafica aa2005/2006 2 tipi principali Proiezioni parallele: Centro di proiezione all’infinito Proiettori ortogonali oppure Proiettori obliqui Proiezioni multiple (più viste) Proiezioni a una sola vista Assonometrie Cavaliera o Cabinet Proiezioni prospettiche Centro di proiezionie a distanza finita Un solo punto di fuga: prospettiva centrale 2 o 3 punti di fuga: prospettiva accidentale Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/2006 Frames Il frame è un contesto di: sistema di riferimento e trasformazioni geometriche associate Consideriamo questi due frame: World frame, nel quale si descrivono e rappresentano gli oggetti modellati Camera frame, nel quale si definisce il sistema di riferimento necessario alla creazione della proiezione Programmazione Grafica aa2005/2006

Sistemi di riferimento World frame Camera frame Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/2006 Camera frame Quasi tutti gli ambienti e le librerie adottano la metafora della macchina fotografica: la formazione dell’immagine piana a partire dal modello 3D avviene con un principio di proiezione simile a quello della fotografia L’obiettivo non è modellato (foro stenopeico) Il sistema di riferimento del camera frame si assume fisso: Origine in basso a sinistra del fotogramma X crescente a destra Y crescente in verticale Z entrante o uscente dalla macchina fotografica Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/2006 Prospettiva canonica Camera frame orientato come il world frame Asse ottico coincidente con asse z, entrante nell’obiettivo Piano di proiezione coincidente con il piano x,y Per portare una scena nella configurazione canonica è necessaria una catena di trasformazioni da applicare conoscendo i parametri principali Programmazione Grafica aa2005/2006

Proiezione generica - I parametri di controllo PRP Projection Reference Point o COP Center of Projection View Plane VPN View Plane Normal VUP View UP DOP Direction of Projection (per le proiezioni parallele) VRP View Reference Point CW center of the window Programmazione Grafica aa2005/2006

Orientare il piano di proiezione Programmazione Grafica aa2005/2006

Definire la viewport e la window Programmazione Grafica aa2005/2006

Definire il centro di proiezione (COP) Programmazione Grafica aa2005/2006

Se la proiezione è parallela Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/2006 Proiezioni parallele Si azzera la componente z Tutta la difficoltà della proiezione parallela consiste nell’orientare correttamente il modello rispetto al piano di proiezione Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/2006 Trasformazioni normalizzate Dati VPN, VUP si ottiene la view orientation matrix V La forma della V è: V=TR T è la traslazione nel VRP, R è una rotazione opportuna per orientare la view rispetto alla configurazione canonica Con queste trasformazioni ci si porta nella configurazione canonica Programmazione Grafica aa2005/2006

Costruzione della matrice di orientamento di vista V Definiamo posizione e orientamento della proiezione nel riferimento world Supponiamo di avere (in 4d): VRP(x,y,z,1) VPN (nx,ny,nz,1) VUP (vup_x, vup_y, vup_z,0) punto all’infinito Programmazione Grafica aa2005/2006

Costruzione della matrice V Poniamo l’origine in VRP, VPN sarà la direzione dell’asse z, da VUP ricaviamo la direzione y, la direzione x si ricava per prodotto vettore tra z e x Traslazione in VRP con T(-x,-y-z) Per la rotazione R: per trovare la direzione y il vettore relativo v deve essere ortogonale a n: n.v=0 Programmazione Grafica aa2005/2006

Costruzione della matrice V v è la proiezione di vup sul piano identificato da n, quindi è combinazione lienare di n e vup: v=an+bvup Ponendo b=1 (vettori normalizzati) si ricava a=-(vup.n/n.n) da cui: v=vup- (vup.n/n.n) Il terzo asse z si ottiene per prodotto: u=vxn Programmazione Grafica aa2005/2006

Costruzione della matrice V Normalizzando tutti i vettori u’,v’,n’, la matrice di rotazione seguente Orienta un vettore in u’,v’,n’ rispetto al riferimento originale, quindi trasponiamo per compiere la rotazione desiderata Programmazione Grafica aa2005/2006

Costruzione della matrice V Finalmente la matrice V si ottiene moltiplicando la R per la traslazione T Programmazione Grafica aa2005/2006

Matrice canonica di proiezione parallela ortogonale Programmazione Grafica aa2005/2006

Funzioni di OpenGL - proiezione parallela ortogonale glOrtho(xmin, xmax, ymin, ymax, near, far); Definisce un view volume, rispetto al quale si fa il clipping near e far possono essere anche negativi: non c’e’ divisione per 0 Programmazione Grafica aa2005/2006

Parallela ortogonale -2 La configurazione prevede di essere in condizioni canoniche per l’orientamento, inoltre: Traslare l’origine del view volume nell’origine del view volume canonico Riscalare il view volume per normalizzarlo in -1,1 zmax = far zmin = near completata la trasformazione si può chiamare la glOrtho Le coordinate trasformate sono nel riferimento NDC normalized devices coordinates Programmazione Grafica aa2005/2006

Parallela ortogonale - 3 glOrtho(xmin, xmax, ymin, ymax, near, far); traslazione al centro del view volume scalatura Programmazione Grafica aa2005/2006

Proiezioni parallele oblique q, f Angoli del fascio di proiettori con la normale al piano di proiezione y DOP normale x z Programmazione Grafica aa2005/2006

Proiezioni parallele oblique - 2 orientare la direzione di proiezione in modo che sia parallela a z, con trasformazione di shear controllata dagli angoli q, f rinormalizzare il view volume con scala e traslazione (come sopra) proiettare con la matrice ortografica Programmazione Grafica aa2005/2006

Trasformazione di shear e proiezione parallela ortogonale Programmazione Grafica aa2005/2006

Proiezione parallela generica Deformare il volume con shear per condursi a ortogonale Ricondursi alla configurazione canonica; normalizzazione Convertire il volume di vista in una configurazione standard: costruzione della matrice di proiezione: opera in “window coordinates” (comprendono z) Proiettare il volume deformato Il volume canonico per la proiezione parallela è normalizzato in -1,+1 Programmazione Grafica aa2005/2006

Proiezione prospettica centrale - Calcolo analitico y P(x,y,z) P(xv,yv) Centro di proiezione z x Piano di proiezione Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/2006 ... in sezione ... y P(x,y,z) yv Centro di proiezione d z Piano di proiezione y/yv = z/d yv = y/(z/d) x/xv = z/d xv = x/(z/d) Programmazione Grafica aa2005/2006

Matrice canonica di trasformazione prospettica Programmazione Grafica aa2005/2006

Dalle coordinate omogenee allo spazio 3D Programmazione Grafica aa2005/2006

Prospettiva: Angolo di visione e frustum Programmazione Grafica aa2005/2006

Prospettiva: Funzioni di OpenGL glFrustum(xmin, xmax, ymin, ymax, near, far); gluPerspective(fovy, aspect, near, far); Aspect = larghezza/altezza della window Fovy:angolo di apertura verticale Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/2006 Prospettiva generica Metodo della projection normalization Creare la matrice di normalizzazione Deformare lo spazio Proiettare in modo ortografico Programmazione Grafica aa2005/2006

Prospettiva generica (cont) Si suppone di proiettare in modo canonico con la distanza del centro di proiezione d=-1 lungo l’asse z Se non siamo in queste condizioni si rototrasla il sistema e si applica una trasformazione di shear la matrice Mpersp canonica è: Programmazione Grafica aa2005/2006

Prospettiva generica (cont) Siano l,r,t,b,n,f i 6 parametri che definiscono il frustum di visione OGL per operare la proiezione costruisce la matrice: In questo schema 0<n<f, quindi il frustum di visione viene traslato nelle z positive Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/2006 Altri schemi Lo schema illustrato è tipico delle librerie PHIGS, GKS 3D OpenGl offre anche un altro approccio: lookAt Nei simulatori di volo si adotta lo schema “roll, pitch, yaw” - “rollio, beccheggio, imbardata” Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/2006

Programmazione Grafica aa2005/2006 LookAt E’ un metodo più diretto e più naturale: la camera è localizzata in un punto e (eypoint - o punto di vista) specificato nel world frame La camera è orientata nella direzione individuata dal vettore congiungente e con il punto a (at point - punto osservato) I punti e ed a individuano il VRP e la VPN Gli ultimi tre parametri identificano il VUP gluLookAt(eyex, eyey, eyez, aty, atx, atz, upx, upy, upz); Programmazione Grafica aa2005/2006

Trasformazione di vista - LookAt Programmazione Grafica aa2005/2006