Macchina Fotografica Virtuale La visualizzazione di una scena

  • Slides: 43
Download presentation
Macchina Fotografica Virtuale La visualizzazione di una scena 3 D avviene come se usassimo

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

Visualizzazione in 3 D Passo fondamentale: Proiezione. Occorre specificare: Volume di vista. Piano di

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

Proiezioni l l La proiezione trasforma punti in 3 (o più) coordinate in punti

Proiezioni l l 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 3 D Informatica Grafica 3

Tipi di Proiezioni Planari: proietta su un piano. Non Planari: proietta su superficie non

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 3 D Informatica Grafica 4

Proiezioni Prospettiche Da 1 a 3 punti di fuga (3 punti scarso uso). Nell’esempio

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 3 D Informatica Grafica 5

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

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

Proiezioni Parallele (2) Assonometriche Ortografiche: piano non perpendicolare asse X o Y o Z.

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 3 D Informatica Grafica 7

Proiezioni Oblique Piano di proiezione perpendicolare asse (X, Y, Z) Cavaliere: direzione e piano

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 3 D Informatica Grafica 8

Riassunto Proiezioni Planari Geometriche Tutte le proiezioni richiedono: l piano di proiezione. l posizione

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

Viste Arbitrarie Includono proiezione e volume di vista (clipping). Bisogna specificare: l View Reference

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

Definizione di Viste VRC View Reference Coordinate: coordinate sul piano di proiezione. La proiezione

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 3 D Informatica Grafica 11

Definizione di Viste (2) PRP Projection Reference Point: definisce direzione o centro della proiezione.

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 3 D Informatica Grafica 12

Proiezioni Parallele: la Direction of Projection (DOP) é la retta PRP-CW. Ortografiche: DOP //

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

Volume Di Vista Volumi infiniti sono implicitamente definiti da PRP e finestra sul piano.

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 3 D Informatica Grafica 14

Volume Finito di Vista Definiti da : Algoritmi 3 D front-clipping plane e back-clipping

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

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

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

Normalizzazione Il volume di vista viene trasformato in un volume canonico in nuove coordinate:

Normalizzazione Il volume di vista viene trasformato in un volume canonico in nuove coordinate: NPC (Normalized Projection Coordinates). Il risultato viene mappato nel 3 D 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 4 x 4 view-orientation matrix view-mapping matrix world coordinates VRC NPC view orientation view mapping Algoritmi 3 D Informatica Grafica 17

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

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

Parametri vista di default VRP(wc) (0 0 0) origine VPN(wc) (0 0 1) asse

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 1) Window(vrc) (0 1 0 1) Proiezione parallela. Algoritmi 3 D Informatica Grafica 19

Proiezioni Prospettiche VRP (0 0 0) PRP(8 6 84) Window(-50 50) VRP (0 0

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

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

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

Prospettica: 1 Punto di Fuga Parametri vista VRP(wc) (16 0 54) origine VPN(wc) (0

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 3 D Informatica Grafica 22

Prospettica: 2 Punti di Fuga Parametri vista VRP(wc) (16 0 54) origine VPN(wc) (1

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 3 D Informatica Grafica 23

Matrice WC -> VRC l Per passare dalle coordinate del mondo (WC) a quelle

Matrice WC -> VRC l 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= Dove: Algoritmi 3 D R= n = VPN / ||VPN||, u = VUP * VPN / ||VUP * VPN|| v=n*u Informatica Grafica 24

Proiezioni Parallele Parametri vista VRP(wc) (0 0 0) origine VPN(wc) (0 0 1) asse

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) Proiezione parallela Algoritmi 3 D Informatica Grafica 25

Volume di Vista Finito Parametri vista VRP(wc) (0 0 54) origine VPN(wc) (0 0

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) Proiezione prospettica F(VRC) +1 B(VRC) -23 Algoritmi 3 D Informatica Grafica 26

Espressioni Matriciali Casi semplici: PRP (0 0 0), piano z = d Sviluppando i

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

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

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

Clipping Fare il clipping in WC é molto dispendioso. Soluzione: prima normalizzazione poi clipping.

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 3 D Informatica Grafica 29

Implementazione l Dobbiamo moltiplicare per le matrici di normalizzazione (Npar o Nper ), effettuare

Implementazione l 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 3 D Informatica Grafica 30

Normalizzazione: Parallele View orientation: 1) trasla VRP nell’ origine 2) ruota VRC in modo

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

Passi della Proiezione (1) Situazione iniziale: a sinistra vista parallela dall’alto, a destra vista

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 3 D Informatica Grafica 32

Passi della Proiezione (2) Situazione dopo la rotazione che fa coincidere i due riferimenti

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 3 D Informatica Grafica 33

Risultato Situazione dopo lo scalamento che fa coincidere il volume di vista con il

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

Proiezioni Prospettiche 1) Trasla VRP nell’ origine (0, 0, 0 ) 2) Ruota VRC

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 3 D Informatica Grafica 35

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

Passi 4 e 5 Passo 4: Shearing Passo 5: Scaling Algoritmi 3 D Informatica Grafica 36

Passi della Proiezione (1) Situazione iniziale: a sinistra vista parallela dall’alto, a destra vista

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 3 D Informatica Grafica 37

Passi della Proiezione (2) Situazione dopo la rotazione che fa coincidere i due riferimenti

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 3 D Informatica Grafica 38

Risultato Situazione dopo la deformazione che allinea il volume di vista con gli assi

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 3 D Informatica Grafica 39

Clipping al Volume Canonico Estensione degli algoritmi di Cohen-Sutherland codici di 6 bits. Cyrus-Beck

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 Algoritmi 3 D variante di Cyrus-Beck Informatica Grafica 40

Clipping in Coordinate Omogenee Motivazioni: 1) in coordinate omogenee é possibile avere un solo

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 3 D Informatica Grafica 41

Mapping in un Viewport I punti sono ora tali che: -1 x 1, -1

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 3 D Viewport. P = (x, y, z) P’ = (x’, y’, z’) con P’ nel 3 D 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 3 D Informatica Grafica 42

Sistemi di Coordinate Abbiamo usato i seguenti sistemi di coordinate: 3 D Modeling Coordinates

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