Processo di rendering
1
Trasformazioni di vista
™Trasformazioni di vista
ƒ Il processo di visione in tre dimensioni
ƒ Le trasformazioni di proiezione
2
Rendering nello spazio 2D
™Il processo di rendering (visualizzazione) nello
spazio 2D è costituito da
ƒ definizione di una window nello spazio
dell’applicazione grafica
ƒ Definizione di una viewport nello spazio
delle coordinate del dispositivo di output
ƒ applicazione di una trasformazione
“window-to-viewport” dopo aver
effettuato il clipping (rimozione) delle
primitive (o parte di esse) esterne alla
window
3
Il mondo in tre dimensioni
™ Il processo di formazione delle immagini generate da
computer viene assimilato al processo di formazione
di una immagine da parte di un sistema ottico – ad
esempio una macchina fotografica
™ Questa metafora è chiamata Synthetic–Camera
Model
™ Il processo di rendering 3D è basato su questo
modello:
ƒ La visualizzazione consiste nel creare una particolare
vista della scena 3D (relazione scena/osservatore)
4
Il mondo in tre dimensioni
™In generale il rendering consiste nel creare
una vista di una scena 3D. Si ha pertanto:
ƒ La definizione del modello - nel mondo
dell’applicazione - è indipendente dalla posizione
gli oggetti nel mondo
da cui si osserva la scena
reale sono indipendenti dalle fotografie scattate loro
ƒ Le funzioni di modellazione (definite nel mondo
dell’applicazione) e le funzioni relative al
posizionamento della macchina (o
dell’osservatore) all’interno della scena sono
distinte e separate
5
Il mondo in tre dimensioni
™ Il processo di formazione
dell’immagine in un sistema
ottico.
Retina – piano immagine
distanza
focale
lente
distanza
focale
6
La macchina fotografica virtuale
™ La metafora utilizzata per descrivere le relazioni
scena/osservatore è quella della macchina fotografica virtuale
(synthetic camera): la pellicola fotografica corrisponde al piano
di proiezione, una lente di lunghezza focale d corrisponde al
centro di proiezione
Il piano di proiezione è a distanza d dal centro di proiezione
7
La macchina fotografica virtuale
™ La metafora utilizzata per descrivere le relazioni
scena/osservatore è quella della macchina fotografica virtuale
(synthetic camera).
™ Il generico punto P=(x,y,z) della scena ha coordinate Pp=(xp,yp,d) sul piano immagine. Dove:
Centro di proiezione
nell’origine di x,y,z
™ La trasformazione non
è lineare, non è affine,
non è reversibile
Piano immagine perpendicolare all’asse z
8
La macchina fotografica virtuale
™ La macchina fotografica virtuale è costituita da un parallelepipedo in
cui la faccia anteriore presenta un foro di dimensioni infinitesime
(pinhole camera) e sulla faccia posteriore si formano le immagini
™ θ è l’angolo di vista a può essere modificato variando il rapporto tra la
distanza focale (d) e la dimensione del piano immagine.
9
La macchina fotografica virtuale
™ Per convenzione si assume che il piano immagine sia tra la scena ed il
centro di proiezione, in modo da non avere immagini capovolte
10
La vista in 3D
™ Il processo di formazione di una immagine di sintesi in 3D è
costituito da una sequenza di operazioni:
ƒ Definizione della trasformazione di proiezione (il
modo di mappare informazioni 3D su un piano
immagine 2D)
ƒ Definizione dei parametri di vista (punto di vista,
direzione di vista, etc.)
ƒ Clipping in 3D (i parametri di vista individuano un
volume di vista; occorre rimuovere le parti della
scena esterne a tale volume)
ƒ Trasformazione di proiezione e visualizzazione della
scena (con trasformazione “window-to-viewport”
finale)
11
La vista in 3D
™ Il modello concettuale del processo di visione in 3D è
il seguente (una volta scelto il tipo di proiezione e
fissati i parametri di vista):
Primitive di output in
Coordinate del mondo
coordinate del mondo 3D
clippate
Clippa sul
volume di vista
12
La vista in 3D
™ Il modello concettuale del processo di visione in 3D è
quindi il seguente (una volta scelto il tipo di
proiezione e fissati i parametri di vista):
Primitive di output in
Coordinate del mondo
coordinate del mondo 3D
clippate
Clippa sul
volume di vista
3D
Proietta sul
piano di
proiezione
2D
13
La vista in 3D
™ Il modello concettuale del processo di visione in 3D è
quindi il seguente (una volta scelto il tipo di
proiezione e fissati i parametri di vista):
Primitive di output in
Coordinate del mondo
coordinate del mondo 3D
clippate
Clippa sul
volume di vista
Proietta sul
piano di
proiezione
Coordinate del device 2D
Trasforma nella
viewport in
coordinate del
device 2D
14
Trasformazioni di proiezione
™ Si dice proiezione una trasformazione geometrica
che trasforma punti definiti in uno spazio di
dimensione n in punti corrispondenti in uno spazio
di dimensione m < n
f : Rn → Rm
m<n
™ Nella grafica le trasformazioni di proiezione utilizzate
sono dallo spazio 3D (il mondo dell’applicazione)
allo spazio 2D (la superficie del dispositivo di
output)
15
Trasformazioni di proiezione
™ Una proiezione di un oggetto 3D in
un piano è definita da un insieme di
raggi lineari – proiettori - aventi
origine in un centro di proiezione
™ Ogni punto dell’oggetto è
attraversato da un raggio che
interseca il piano di proiezione
16
Trasformazioni di proiezione
™ La proiezione di un
segmento è a sua volta un
segmento
™ Non è quindi necessario
calcolare i proiettori di tutti i
punti di una scena, ma solo
quelli relativi ai vertici delle
primitive che la descrivono
17
Trasformazioni di proiezione
™ Le proiezioni caratterizzate da:
ƒ proiettori rettilinei (anziché curve
generiche)
ƒ proiezione giacente su un piano (anziché su
una superficie generica)
prendono il nome di proiezioni geometriche piane
™ Molte delle proiezioni cartografiche non sono
proiezioni geometriche piane
18
Trasformazioni di proiezione
™ Le proiezioni geometriche piane si classificano in:
Proiezioni prospettiche (distanza finita tra il centro
ed il piano di proiezione)
ƒ Proiezioni parallele (distanza infinita tra il centro ed
il piano di proiezione)
ƒ
19
Trasformazioni di proiezione
™ Le proiezioni parallele prendono il nome dai proiettori che
sono paralleli
™ Per una proiezione prospettica si deve specificare il centro
di proiezione, per la proiezione parallela invece la
direzione di proiezione
™ La proiezione prospettica è più realistica della parallela in
quanto riproduce la visione reale (gli oggetti appaiono di
dimensione decrescenti via via che ci si allontana
dall’osservatore)
20
“La flagellazione” di Piero della Francesca (1469)
14
5,6
21
Trasformazioni di proiezione
™ Le proiezioni parallele sono utili quando si richiede che linee
parallele nel modello tridimensionale rimangano tali nella
proiezione (ad esempio per effettuare misure sulla proiezione)
22
Le proiezioni prospettiche
™ Nella proiezione prospettica, ogni insieme di linee parallele (ma
non parallele al piano di proiezione) converge in un punto detto
punto di fuga
™ Se l’insieme di linee è parallelo ad uno degli assi coordinati, il
punto di fuga si chiama principale (massimo 3);
23
Proiezione prospettica
™ Al variare della distanza
focale (d)
24
Proiezione prospettica
™ Al variare della distanza
focale (d)
25
Proiezione prospettica
™ Al variare della distanza
focale (d)
26
Proiezione prospettica
™ Al variare della distanza
focale (d)
27
La proiezione prospettica
d piccolo
d grande
d infinito
(p. parallela)
Più distorsione
prospettica.
Proporzioni
più mantenute
Effetto "fish-eye"
(grandangolo)
Effetto "zoom"
(eg. vista dal
satellite)
28
Proiezioni parallele
™ Le proiezioni parallele si classificano in base alla
relazione esistente tra la direzione di proiezione e la
normale al piano di proiezione
™ Se le due direzioni coincidono si parla di proiezioni
ortografiche, altrimenti di proiezioni oblique
29
Trasformazioni prospettiche –coordinate
omogenee
™ Una proiezione trasforma punti definiti in un sistema
di coordinate 3D in punti corrispondenti in un sistema
2D
™ Una proiezione di un oggetto 3D in un piano è
definita da
un insieme di raggi lineari - proiettori - che interseca
un centro di proiezione
™ Ogni punto dell’oggetto è attraversato da un raggio
che interseca il piano di proiezione
30
Sistema di proiezione
x,X
IlIlsistema
sistemadidiacquisizione
acquisizioneèè
posto
postoininffed
edèèmodellizato
modellizato
con
conuna
unalente
lentedidilunghezza
lunghezza
focale
focaleλλ
y,Y
P(X,Y,Z)
f
(x,y)
Piano di proiezione
z
IlIlsistema
sistemadidiriferimento
riferimentodel
del
mondo
mondoèètale
taleche:
che:
X=x;
X=x;Y=y;
Y=y;ZZèèlungo
lungol’asse
l’asse
ottico
otticodella
dellalente
lente
31
Trasformazioni prospettiche – coordinate
omogenee
Consideriamo un punto P di coordinate (X,Y,Z), nel
sistema di riferimento del mondo. Secondo lo schema
precedente i punti (X,Y,Z) sono di fronte la lente a
distanza maggiore della distanza focale λ
Sia (x,y) la proiezione del punto P nel piano immagine
y
Y
Z −λ
Dalla similitudine dei triangoli si ha: λ
x
X
=−
λ
Z −λ
λX
x
=
λ
λ − Z
Si ricava quindi
y
λY
=
λ
λ − Z
=−
32
Trasformazioni prospettiche – coordinate
omogenee
Le equazioni di trasformazione sono non lineari
x
λ
=
λX
λ − Z
y
λY
=
λ
λ − Z
Per esprimere la dipendenza da Z in modo lineare
- mediante una matrice di trasformazione - è
necessario utilizzare le coordinate omogenee
33
Trasformazioni prospettiche – coordinate
omogenee
Siano (X,Y,Z) le coordinate cartesiane di un punto P
Le coordinate omogenee di P sono definite come (kX,
kY, kZ, k) con k costante arbitraria - diversa da zero
Siano
X 
P =  Y  coordinate cartesiane
 
 Z 
−
1
0

M = 0

0
0
0
1
0
0
1
1
0 −
λ
0
0

0

1

kX 
kY 
−
Ph =   coordinate omogenee
kZ 
 
k
matrice di trasformazione
34
Trasformazioni prospettiche – coordinate
omogenee
Applicando tale matrice a un generico punto Ph, di
coordinate omogenee (kX, kY, kZ, k) si ottiene:
1
0
*

Ph = MPh = 0

0
0
1
0
0
0
1
1
0 −
λ
0 kX   kX 
0  kY   kY 

  
=
0  kZ   kZ 

    kZ
1  k   −
+ k


 λ
35
Trasformazioni prospettiche – coordinate
omogenee
Per trasformare in coordinate cartesiane è sufficiente imporre che:
−
Da cui si ottiene:
Sostituendo k in Ph*:
k=
kZ
λ
+k =1
λ
λ−Z




λ
X


λ − Z 
 λY 
*
Ph = 
λ−Z
 λZ 


−
λ
Z


 1 


36
Trasformazioni prospettiche – coordinate
omogenee
In coordinate cartesiane si ha:




X
λ


λ − Z 
 λY 
*
P =
λ−Z
 λZ 


λ − Z 




37
Trasformazione inversa
Consideriamo la trasformazione inversa da un punto del piano
immagine ad un punto 3D
−1
Ph = M Ph
1
0

M −1 = 0

0
0
1
0
0
0
0
1
1
λ
0
0

0

1

*
matrice di trasformazione inversa
38
Trasformazione inversa
dal piano immagine x,y al sistema X,Y,Z
Consideriamo il piano immagine posto a Z=0
Consideriamo un punto P sul piano immagine di
coordinate (x0, y0, 0)
Le coordinate omogenee di P sono:
kx 0 
ky 0 
*
Ph =  
0
 
k 
39
Trasformazione inversa
dal piano immagine x,y al sistema X,Y,Z
Applicando la matrice di trasformazione inversa si
ottiene:
1
0
*

Ph = M −1Ph = 0

0
0
1
0
0
0
1
1
0
λ
0 kx 0  kx 0 
0 ky 0  ky 0 
   
0  0  =  0 
   
1  k   k 

40
Trasformazione inversa
dal piano immagine x,y al sistema X,Y,Z
In coordinate cartesiane si ottiene:
 X   x0
 Y   y 0
P= = 
Z   0 
   
   
La trasformazione di una scena 3D in un piano
immagine è una trasformazione molti a uno.
Si verifica che il punto (x, y) del piano immagine
corrisponde all’ insieme dei punti 3D - nel sistema
(X,Y,Z) - situati sulla retta r passante per i punti (x0 , y0
, 0) e (0,0,λ)
41
Trasformazione inversa
dal piano immagine x,y al sistema X,Y,Z
Equazione della retta r nel sistema (X, Y, Z)
x0
X = (λ − Ζ )
λ
y
Y = 0 (λ − Ζ )
λ
Si ha cioè che il punto 3D che genera un punto
immagine non può essere completamente ricostruito
dalla sua proiezione sul piano immagine. E’ necessario
infatti conoscere una delle tre coordinate X,Y,Z
Il problema può essere risolto con 2 immagini acquisite
da un sistema stereo
42
Sono una combinazione di scaling, traslazione, rotazione e
shearing
Trasformazioni
affini
Trasformazioni
lineari
conformali
Trasformazioni
proiettive
Le linee rette rimangono rette
Le linee parallele rimangono parallele
Sono un sottoinsieme delle trasformazioni affini cioè
combinazione di scaling dello stesso fattore in x, y, z,
traslazione e rotazione
Come per le trasformazioni affini le linee rette rimangono
rette, ma le linee parallele convergono verso punti di fuga
43