Macchina Fotografica Virtuale

Slides:



Advertisements
Presentazioni simili
Progetto Qualità Autovalutazione d'Istituto a.s
Advertisements

L’ IPERBOLE.
Assonometria.
GRAFICI RELATIVI ALLA PROVA INVALSI 2010/2011
Introduzione al Disegno Tecnico
Unificazione nel disegno: Metodi di rappresentazione
L’iperbole Teoria e laboratorio
Capitolo 4 Trasformazioni Geometriche
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
a’ = f(a) Definizione e proprietà
Soluzioni di problemi elettrostatici
Grafica Raster La grafica in 2D con coordinate intere viene detta grafica raster. In questa parte tratteremo le operazioni fondamentali per disegnare su.
Corso di Informatica grafica 1 Introduzione Quando si rappresentano modelli di oggetti 3D costituiti da facce poligonali secondo delle proiezioni alcune.
Un manipolatore è costituito da un insieme di corpi rigidi (bracci) connessi in cascata tramite coppie cinematiche (giunti) a formare una catena cinematica.
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
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.
Sistema di riferimento su una retta
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009 Rendering grafico.
Grandezze scalari e vettoriali
Fabio Massacci Programmazione ad Oggetti 1 Fondamenti di Informatica per Ingegneria Prof. Ing. Fabio Massacci (A-L) Ing. Enrico Blanzieri (M-Z) Lezione.
7 Luglio, 2005Verona, 4° incontro LIMA 3D1 Laboratory of Image Analysis and Vision Università degli Studi di Milano Dipartimento di Scienze dellInformazione.
LE PROIEZIONI ASSONOMETRICHE
Lavorare con le matrici in OGL
Infomatica Grafica a.a DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Environment Mapping.
Le Proiezioni Ortogonali
Confronto tra il risultato di scuola e il risultato nazionale (item per item) - MATEMATICA II primaria Il grafico permette di confrontare per ciascun.
14 giugno 2011 Rasterizzazione Prof. Roberto Pirrone.
Geometria dell’utensile
Le proiezioni e la prospettiva
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Le trasformazioni Daniele Marini.
Un modello per interpretare, interagire e descrivere la realtà
Le proiezioni e la prospettiva
Le proiezioni e la prospettiva
Programmazione grafica 1
Superfici nascoste Daniele Marini.
il moto rotatorio di un corpo rigido
La prova INVALSI-Analisi dei risultati Seminario OCSE-PISA Fuscaldo, 27 Febbraio 2012 Mattea Falduti, Grazia Russo-Liceo Scientifico Statale Amantea.
Controllare le proiezioni
Intersezioni e distanze
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Intersezioni e distanze
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
Controllare la prospettiva
Controllare la prospettiva
Architettura di OGL e pipe-line Daniele Marini Davide Gadia Davide Selmo Corso Di Programmazione Grafica aa2005/2006.
Intersezioni e distanze Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Controllare le proiezioni Daniele Marini Corso Di Programmazione Grafica aa 2007/2008.
Ottimizzazione della scena: culling (decimazione) Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Controllare le proiezioni
Madama Chiara - Regole di Quotatura con esempi
La geometria nel secondo ciclo
G.M. - Edile A 2002/03 Una sferetta P viene posta in una conca semisferica di raggio R in un punto diverso da quello più basso. La sferetta rotola e l’angolo.
Daniele Marini Con contributi di Maurizio Rossi
Liceo Scientifico Trebisacce CS
a’ = f(a) Definizione e proprietà
La Circonferenza. LA CIRCONFERENZA Assegnato nel piano un punto C detto Centro, si chiama circonferenza la curva piana con i punti equidistanti da C.
Transcript della presentazione:

Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica. Algoritmi 3D

Visualizzazione in 3D Passo fondamentale: Proiezione. Occorre specificare: Volume di vista. Piano di proiezione. Punto/Direzione di vista. Passi fondamentali: Algoritmi 3D

Proiezioni La proiezione trasforma punti in 3 (o più) coordinate in punti su un piano. Le proiezioni sono definte dai raggi di proiezione (projectors) che partono dal center of projection ed arrivano sul projection plane. Algoritmi 3D

Tipi di Proiezioni Planari: proietta su un piano. Non Planari: proietta su superficie non planare. Prospettiche: centro di proiezione (X Y Z 1). Parallele: direzione di proiezione (a b c 0) punto all’infinito differenza tra due punti omogenei: (X Y Z 1) - (X’ Y’ Z’ 1) = (a b c 0). Algoritmi 3D

Proiezioni Prospettiche Da 1 a 3 punti di fuga (3 punti scarso uso). Nell’esempio 2 punti di fuga: lati paralleli X-Z  convergenti lati paralleli Y  paralleli Algoritmi 3D

Proiezioni Parallele Ortografiche: direzione perpendicolare al piano di proiezione. Oblique: direzione non perpendicolare al piano. Algoritmi 3D

Proiezioni Parallele (2) Assonometriche Ortografiche: piano non perpendicolare asse X o Y o Z. Preservano parallelismo ma non gli angoli. Isometriche: assonometriche più angoli uguali sui tre assi. La direzione normale al piano (dx dy dz) è tale che |dx|=|dy|=|dz|. Algoritmi 3D

Proiezioni Oblique Piano di proiezione perpendicolare asse (X,Y,Z) Cavaliere: direzione e piano angolo 45°, preservano la lunghezza sui tre assi. Cabinet: angolo 63,8° = arctg(2), dimezzano la lunghezza lungo uno degli assi. Algoritmi 3D

Riassunto Proiezioni Planari Geometriche Tutte le proiezioni richiedono: piano di proiezione. posizione del centro di proiezione. distanza centro di proiezione-piano: Finita  prospettiche. Infinita  parallele Algoritmi 3D

Viste Arbitrarie Includono proiezione e volume di vista (clipping). Bisogna specificare: View Reference Point VRP: punto sul piano di proiezione. View Plane Normal VPN: normale al piano di proiezione. View up Vector VUP: determina un sistema di coordinate 3D sul piano di proiezione. Asse V. Algoritmi 3D

Definizione di Viste VRC View Reference Coordinate: coordinate sul piano di proiezione. La proiezione di VUP determina asse V l’asse U é perpendicolare a V ed a VPN Finestra sul piano definita rispetto a UV. CW center of window = Umin+[Umax-Umin]/2 Vmin+[Vmax-Vmin]/2 Algoritmi 3D

Definizione di Viste (2) PRP Projection Reference Point: definisce direzione o centro della proiezione. Specificato nelle coordinate VRC. Prospettiche: il PRP é il centro di proiezione. Algoritmi 3D

Proiezioni Parallele Parallele: la Direction of Projection (DOP) é la retta PRP-CW. Ortografiche: DOP // VPN. Oblique: DOP non // VPN. Algoritmi 3D

Volume Di Vista Volumi infiniti sono implicitamente definiti da PRP e finestra sul piano. Prospettiche: piramide semi-infinita con apice PRP e sezione sul piano pari alla finestra. Parallele: parallelepipedo infinito con sezione sul piano pari alla finestra. Volumi Finiti permettono di concentrarsi su parte dello spazio. Algoritmi 3D

Volume Finito di Vista Definiti da : front-clipping plane e back-clipping plane paralleli al view-plane, VPN perpendicolare al view-plane. Algoritmi 3D

Volume di Vista (Prospettiche) Proiezioni prospettiche: volume di vista a tronco di piramide. Algoritmi 3D

Normalizzazione Il volume di vista viene trasformato in un volume canonico in nuove coordinate: NPC (Normalized Projection Coordinates). Il risultato viene mappato nel 3D viewport, che e’ contenuto nel cubo unitario (0 0 0 )  (1 1 1 ). Disegnando le primitive ignorando la Z si ottiene l’immagine da mandare al display. PHIGS definisce 2 matrici 4x4 view-orientation matrix view-mapping matrix world coordinates  VRC  NPC view orientation view mapping Algoritmi 3D

Esempi Disegno casa variando tipo proiezione, piano, ecc .. Esempio usato nel seguito Algoritmi 3D

Parametri Parametri vista di default VRP(wc) (0 0 0) origine VPN(wc) (0 0 1) asse z VUP(wc) (0 1 0) asse y PRP(vrc) (0,5 0,5 1) Window(vrc) (0 1 0 1) Proiezione parallela. Algoritmi 3D

Proiezioni Prospettiche VRP (0 0 54) PRP(8 6 30) Window(-1 17 ;-1 17) VRP (0 0 0) PRP(8 6 84) Window(-50 50 -50 50) Disegno piccolo e non centrato Algoritmi 3D

Situazioni Equivalenti I valori specificati sono ridondanti. Configurazioni diverse possono essere equivalenti. Esempio: Algoritmi 3D

Prospettica: 1 Punto di Fuga Parametri vista VRP(wc) (16 0 54) origine VPN(wc) (0 0 1) asse z VUP(wc) (0 1 0) asse y PRP(vrc) (20 25 20) Window(vrc) (-20 20 -5 35) Proiezione prospettica Algoritmi 3D

Prospettica: 2 Punti di Fuga Parametri vista VRP(wc) (16 0 54) origine VPN(wc) (1 0 1) asse z VUP(wc) (0 1 0) asse y PRP(vrc) (0 25 20*sqrt(2)) Window(vrc) (-20 20 -5 35) Proiezione prospettica. Il View-Plane interseca gli assi x e z. Algoritmi 3D

Matrice WC -> VRC Per passare dalle coordinate del mondo (WC) a quelle di vista (VRC) si eseguono una traslazione T ed una rotazione R, caratterizzate dalle matrici: T = R = Dove: n = VPN / ||VPN||, u = VUP * VPN / ||VUP * VPN|| v = n * u Algoritmi 3D

Proiezioni Parallele Parametri vista VRP(wc) (0 0 0) origine VPN(wc) (0 0 1) asse z VUP(wc) (0 1 0) asse y PRP(vrc) (8 8 100) Window(vrc) (-1 17 -1 17) Proiezione parallela Algoritmi 3D

Volume di Vista Finito Parametri vista VRP(wc) (0 0 54) origine VPN(wc) (0 0 1) asse z VUP(wc) (0 1 0) asse y PRP(vrc) (8 6 30) Window(vrc) (-1 17 -1 17) Proiezione prospettica F(VRC) +1 B(VRC) -23 Algoritmi 3D

Espressioni Matriciali Casi semplici: PRP (0 0 0), piano z = d Sviluppando i conti otteniamo: Mper= Algoritmi 3D

Espressioni Matriciali (2) PRP (0 0 -d), piano z=0: 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1/d 0 M’per= Algoritmi 3D

Clipping Fare il clipping in WC é molto dispendioso. Soluzione: prima normalizzazione poi clipping. Normalizzazione: ridurre il volume di vista ad un volume canonico. Esistono due volumi canonici: Algoritmi 3D

Implementazione Dobbiamo moltiplicare per le matrici di normalizzazione (Npar o Nper ), effettuare il clipping, proiettare (usando le matrici viste in precedenza), poi portare in coordinate di dispositivo. Algoritmi 3D

Normalizzazione: Parallele View orientation: 1) trasla VRP nell’ origine 2) ruota VRC in modo che: VPNZ U  X V  Y (3 rotazioni) View mapping: 3) Shearing in modo che DOP // Z 4) trasla e scala per farlo diventare il volume canonico parallelo . Algoritmi 3D

Passi della Proiezione (1) Situazione iniziale: a sinistra vista parallela dall’alto, a destra vista laterale Situazione dopo la traslazione che fa coincidere le origini di WR e VRC Algoritmi 3D

Passi della Proiezione (2) Situazione dopo la rotazione che fa coincidere i due riferimenti WR e VRC Situazione dopo la deformazione che allinea il volume di vista con gli assi Algoritmi 3D

Risultato Situazione dopo lo scalamento che fa coincidere il volume di vista con il volume canonico Algoritmi 3D

Proiezioni Prospettiche 1) Trasla VRP nell’ origine (0,0,0 ) 2) Ruota VRC in modo che VPN  Z; U  X; V  Y 3) Trasla COP  (0,0,0) 4) Shear linea centrale volume  Z 5) Scala per far coincidere con volume canonico Esecuzione passi: 1-2 vedi parallelo 3 T(-PRP) 4 uguale passo 3 parallelo 5 dipende da VRP e finestra Algoritmi 3D

Passi 4 e 5 Passo 4: Shearing Passo 5: Scaling Algoritmi 3D

Passi della Proiezione (1) Situazione iniziale: a sinistra vista parallela dall’alto, a destra vista prospettica Situazione dopo la traslazione che fa coincidere le origini di WR e VRC Algoritmi 3D

Passi della Proiezione (2) Situazione dopo la rotazione che fa coincidere i due riferimenti WR e VRC Situazione dopo la traslazione che porta il COP (PRP) nell’origine Algoritmi 3D

Risultato Situazione dopo la deformazione che allinea il volume di vista con gli assi Situazione dopo lo scalamento che fa coincidere il volume di vista con il volume canonico Algoritmi 3D

Clipping al Volume Canonico Estensione degli algoritmi di Cohen-Sutherland codici di 6 bits. Cyrus-Beck 6 punti, 6 normali uscenti. Più efficente: Liang-Barsky variante di Cyrus-Beck Algoritmi 3D

Clipping in Coordinate Omogenee Motivazioni: 1) in coordinate omogenee é possibile avere un solo volume canonico ed il clipping può essere effettuato in hardware. 2) non necessita divisione per W (normalizzazione) Trasformazione tronco piramide  parallelepipedo: Zmin <> -1 M’per= Algoritmi 3D

Mapping in un Viewport I punti sono ora tali che: -1  x  1, -1  y  1, -1  z  0 Ora trasformo i punti in punti nel 3D Viewport. P = (x,y,z)  P’ = (x’,y’,z’) con P’ nel 3D Viewport (contenuto nel cubo unitario). Il Viewport serve per specificare quale parte dello schermo usare ed e’ mappato sullo schermo in modo fisso. Assumendo schermo 1024*800, il punto P” = (x”,y”) sullo schermo si ottiene: x” = round(x’*1024) y” = round(y’*800) Algoritmi 3D

Sistemi di Coordinate Abbiamo usato i seguenti sistemi di coordinate: 3D Modeling Coordinates 3D World Coordinates 3D VRC 3D NPC 2D Device Coordinates Algoritmi 3D