Algoritmi 3D 1Informatica Grafica
Macchina Fotografica Virtuale
La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica.
Algoritmi 3D 2Informatica Grafica
Visualizzazione in 3D
Passo fondamentale: Proiezione.Occorre specificare: Volume di vista.
Piano di proiezione.Punto/Direzione di vista.
Passi fondamentali:
Algoritmi 3D 3Informatica Grafica
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 4Informatica Grafica
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 5Informatica Grafica
Proiezioni Prospettiche
Da 1 a 3 punti di fuga (3 punti scarso uso).
Nell’esempio 2 punti di fuga:lati paralleli X-Z convergentilati paralleli Y paralleli
Algoritmi 3D 6Informatica Grafica
Proiezioni Parallele
Ortografiche: direzione perpendicolare al piano di proiezione.
Oblique: direzione non perpendicolare al piano.
Algoritmi 3D 7Informatica Grafica
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 8Informatica Grafica
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 9Informatica Grafica
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 10Informatica Grafica
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 11Informatica Grafica
Finestra sul piano definita rispetto a UV.CW center of window = Umin+[Umax-Umin]/2
Vmin+[Vmax-Vmin]/2
Definizione di VisteVRC View Reference Coordinate: coordinate
sul piano di proiezione.La proiezione di VUP determina asse V l’asse U é perpendicolare a V ed a VPN
Algoritmi 3D 12Informatica Grafica
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 13Informatica Grafica
Proiezioni Parallele
Parallele:la Direction of Projection (DOP) é la retta PRP-CW.
Ortografiche:DOP // VPN.
Oblique:DOP non // VPN.
Algoritmi 3D 14Informatica Grafica
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 15Informatica Grafica
Volume Finito di Vista
Definiti da :front-clipping plane e back-clipping plane paralleli al view-plane, VPN perpendicolare al view-plane.
Algoritmi 3D 16Informatica Grafica
Volume di Vista (Prospettiche)
Proiezioni prospettiche:volume di vista a tronco di piramide.
Algoritmi 3D 17Informatica Grafica
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 matrixview-mapping matrix
world coordinates VRC NPCview orientation view mapping
Algoritmi 3D 18Informatica Grafica
EsempiDisegno casa variando tipo proiezione, piano, ecc ..
Esempio usato nel seguito
Algoritmi 3D 19Informatica Grafica
Parametri
Parametri vista di defaultVRP(wc) (0 0 0) origineVPN(wc) (0 0 1)
asse zVUP(wc) (0 1 0)
asse yPRP(vrc) (0,5 0,5 1)Window(vrc) (0 1 0 1)Proiezione parallela.
Algoritmi 3D 20Informatica Grafica
Proiezioni Prospettiche
VRP (0 0 0) PRP(8 6 84) Window(-50 50 -50 50)
Disegno piccoloe non centrato
VRP (0 0 54) PRP(8 6 30)
Window(-1 17 ;-1 17)
Algoritmi 3D 21Informatica Grafica
Situazioni Equivalenti
I valori specificati sono ridondanti. Configurazioni diverse possono essere equivalenti. Esempio:
Algoritmi 3D 22Informatica Grafica
Prospettica: 1 Punto di Fuga
Parametri vistaVRP(wc) (16 0 54)
origineVPN(wc) (0 0 1)
asse zVUP(wc) (0 1 0)
asse yPRP(vrc) (20 25 20)Window(vrc) (-20 20 -5 35)Proiezione prospettica
Algoritmi 3D 23Informatica Grafica
Prospettica: 2 Punti di Fuga
Parametri vistaVRP(wc) (16 0 54)
origineVPN(wc) (1 0 1)
asse zVUP(wc) (0 1 0)
asse yPRP(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 24Informatica Grafica
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:
1 0 0 -VRPx
0 1 0 -VRPy
0 0 1 -VRPz
0 0 0 1
T =
Ux Uy Uz 0
Vx Vy Vz 0
Nx Ny Nz 0
0 0 0 1
R =
Dove: n = VPN VPN,u = VUP * VPN VUP *
VPNv = n * u
Algoritmi 3D 25Informatica Grafica
Proiezioni Parallele
Parametri vistaVRP(wc) (0 0 0)
origineVPN(wc) (0 0 1)
asse zVUP(wc) (0 1 0)
asse yPRP(vrc) (8 8 100)Window(vrc) (-1 17 -1 17)Proiezione parallela
Algoritmi 3D 26Informatica Grafica
Volume di Vista Finito
Parametri vistaVRP(wc) (0 0 54)
origineVPN(wc) (0 0 1)
asse zVUP(wc) (0 1 0)
asse yPRP(vrc) (8 6 30)Window(vrc) (-1 17 -1 17)Proiezione prospetticaF(VRC) +1B(VRC) -23
Algoritmi 3D 27Informatica Grafica
Espressioni Matriciali
Casi semplici: PRP (0 0 0), piano z = dSviluppando i conti otteniamo:
1 0 0 0
0 1 0 0
0 0 1 0
0 0 1/d 0
Mper=
Algoritmi 3D 28Informatica Grafica
Espressioni Matriciali (2)
PRP (0 0 -d), piano z=0:
M’per=
1 0 0 0
0 1 0 0
0 0 0 0
0 0 1/d 0
Algoritmi 3D 29Informatica Grafica
ClippingFare 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 30Informatica Grafica
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 31Informatica Grafica
Normalizzazione: ParalleleView orientation:
1) trasla VRP nell’ origine2) ruota VRC in modo che:
VPNZ U X V Y (3 rotazioni) View mapping:
3) Shearing in modo che DOP // Z4) trasla e scala per farlo diventare il volume canonico parallelo .
Algoritmi 3D 32Informatica Grafica
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 33Informatica Grafica
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 34Informatica Grafica
Risultato
Situazione dopo lo scalamento che fa coincidere il volume di vista con il volume canonico
Algoritmi 3D 35Informatica Grafica
Proiezioni Prospettiche1) Trasla VRP nell’ origine (0,0,0 )2) Ruota VRC in modo che VPN Z; U X; V Y3) Trasla COP (0,0,0)4) Shear linea centrale volume Z5) Scala per far coincidere con volume canonicoEsecuzione passi:1-2 vedi parallelo 3 T(-PRP) 4 uguale passo 3 parallelo 5 dipende da VRP e finestra
Algoritmi 3D 36Informatica Grafica
Passi 4 e 5
Passo 5: Scaling
Passo 4: Shearing
Algoritmi 3D 37Informatica Grafica
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 38Informatica Grafica
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 39Informatica Grafica
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 40Informatica Grafica
Clipping al Volume Canonico
Estensione degli algoritmi diCohen-Sutherland codici di 6 bits.Cyrus-Beck 6 punti, 6 normali uscenti.
Più efficente:Liang-Barsky variante di Cyrus-Beck
Algoritmi 3D 41Informatica Grafica
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:
1 0 0 0
0 1 0 0
0 0 1 /(1+Zmin)
-Zmin/(1+Zmin)
0 0 -1 0
M’per=Zmin <> -1
Algoritmi 3D 42Informatica Grafica
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 43Informatica Grafica
Sistemi di CoordinateAbbiamo usato i seguenti sistemi di coordinate:
3D Modeling Coordinates3D World Coordinates3D VRC3D NPC2D Device Coordinates