Macchina Fotografica
Virtuale
La visualizzazione di una scena 3D avviene come se
usassimo una macchina fotografica.
Algoritmi 3D
Informatica Grafica
1
Visualizzazione in 3D
Passo fondamentale: Proiezione.
Occorre specificare: Volume di vista.
Piano di proiezione.
Punto/Direzione di vista.
Passi fondamentali:
Algoritmi 3D
Informatica Grafica
2
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
Informatica Grafica
3
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
Informatica Grafica
4
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
Informatica Grafica
5
Proiezioni Parallele
Ortografiche: direzione perpendicolare al piano di
proiezione.
Oblique: direzione non perpendicolare al piano.
Algoritmi 3D
Informatica Grafica
6
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
Informatica Grafica
7
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
Informatica Grafica
8
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
Informatica Grafica
9
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
Informatica Grafica
10
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
Informatica Grafica
11
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
Informatica Grafica
12
Proiezioni Parallele
Parallele:
la Direction of Projection
(DOP) é la retta PRP-CW.
Ortografiche:
DOP // VPN.
Oblique:
DOP non // VPN.
Algoritmi 3D
Informatica Grafica
13
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
Informatica Grafica
14
Volume Finito di Vista
Definiti da : front-clipping plane e back-clipping plane
paralleli al view-plane, VPN
perpendicolare al view-plane.
Algoritmi 3D
Informatica Grafica
15
Volume di Vista
(Prospettiche)
Proiezioni prospettiche:
volume di vista a tronco di piramide.
Algoritmi 3D
Informatica Grafica
16
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
Informatica Grafica
17
Esempi
Disegno casa variando tipo proiezione, piano, ecc ..
Esempio
usato nel
seguito
Algoritmi 3D
Informatica Grafica
18
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
Informatica Grafica
19
Proiezioni Prospettiche
VRP (0 0 0) PRP(8 6 84)
Window(-50 50 -50 50)
VRP (0 0 54) PRP(8 6 30)
Window(-1 17 ;-1 17)
Disegno piccolo
e non centrato
Algoritmi 3D
Informatica Grafica
20
Situazioni Equivalenti
I valori specificati sono ridondanti. Configurazioni
diverse possono essere equivalenti. Esempio:
Algoritmi 3D
Informatica Grafica
21
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
Informatica Grafica
22
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
Informatica Grafica
23
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=
1
0
0
-VRPx
0
1
0
-VRPy
0
0
1
-VRPz
0
0
0
1
Dove:
Algoritmi 3D
Ux Uy Uz 0
R=
Vx Vy Vz 0
Nx Ny Nz 0
0
0
0
1
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 z
VUP(wc)
(0 1 0) asse y
PRP(vrc)
(8 8 100)
Window(vrc) (-1 17 -1 17)
Proiezione parallela
Algoritmi 3D
Informatica Grafica
25
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
Informatica Grafica
26
Espressioni Matriciali
Casi semplici: PRP (0 0 0), piano z = d
Sviluppando i conti otteniamo:
Mper=
Algoritmi 3D
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1/d 0
Informatica Grafica
27
Espressioni Matriciali (2)
PRP (0 0 -d), piano z=0:
M’per=
Algoritmi 3D
Informatica Grafica
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1/d 0
28
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
Informatica Grafica
29
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
Informatica Grafica
30
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
Informatica Grafica
31
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
Informatica Grafica
32
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
Informatica Grafica
33
Risultato
Situazione dopo lo scalamento che fa
coincidere il volume di vista con il
volume canonico
Algoritmi 3D
Informatica Grafica
34
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
Informatica Grafica
35
Passi 4 e 5
Passo 4: Shearing
Passo 5: Scaling
Algoritmi 3D
Informatica Grafica
36
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
Informatica Grafica
37
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
Informatica Grafica
38
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
Informatica Grafica
39
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 3D
variante di Cyrus-Beck
Informatica Grafica
40
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:
M’per=
Algoritmi 3D
1
0
0
0
0
1
0
0
0
0
0
0
1/
(1+Zmin)
-1
Zmin <> -1
-Zmin/
(1+Zmin)
0
Informatica Grafica
41
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
Informatica Grafica
42
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
Informatica Grafica
43
Scarica

3-algoritmi3d