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

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

Embed Size (px)

Citation preview

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

Algoritmi 3D 1Informatica Grafica

Macchina Fotografica Virtuale

La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica.

Page 2: Informatica Grafica Algoritmi 3D1 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:

Page 3: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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.

Page 4: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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).

Page 5: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 6: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

Algoritmi 3D 6Informatica Grafica

Proiezioni Parallele

Ortografiche: direzione perpendicolare al piano di proiezione.

Oblique: direzione non perpendicolare al piano.

Page 7: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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|.

Page 8: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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.

Page 9: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 10: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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.

Page 11: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 12: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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.

Page 13: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

Algoritmi 3D 13Informatica Grafica

Proiezioni Parallele

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

Ortografiche:DOP // VPN.

Oblique:DOP non // VPN.

Page 14: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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.

Page 15: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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.

Page 16: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

Algoritmi 3D 16Informatica Grafica

Volume di Vista (Prospettiche)

Proiezioni prospettiche:volume di vista a tronco di piramide.

Page 17: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 18: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

Algoritmi 3D 18Informatica Grafica

EsempiDisegno casa variando tipo proiezione, piano, ecc ..

Esempio usato nel seguito

Page 19: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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.

Page 20: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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)

Page 21: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

Algoritmi 3D 21Informatica Grafica

Situazioni Equivalenti

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

Page 22: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 23: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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.

Page 24: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 25: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 26: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 27: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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=

Page 28: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 29: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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:

Page 30: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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.

Page 31: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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 .

Page 32: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 33: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 34: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

Algoritmi 3D 34Informatica Grafica

Risultato

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

Page 35: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 36: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

Algoritmi 3D 36Informatica Grafica

Passi 4 e 5

Passo 5: Scaling

Passo 4: Shearing

Page 37: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 38: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 39: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 40: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 41: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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

Page 42: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

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)

Page 43: Informatica Grafica Algoritmi 3D1 Macchina Fotografica Virtuale La visualizzazione di una scena 3D avviene come se usassimo una macchina fotografica

Algoritmi 3D 43Informatica Grafica

Sistemi di CoordinateAbbiamo usato i seguenti sistemi di coordinate:

3D Modeling Coordinates3D World Coordinates3D VRC3D NPC2D Device Coordinates