Uni Pisa - Modellazione 3D 16/05/2014 Marco Tarini - 2014 1 Modellazione 3D Trasformazioni Spaziali Marco Tarini Marco Tarini Trasformazioni spaziali: intro Concetto molto generale… Le abbiamo usate in molte strutture dati: nello scene graph (trasf. di modellazione) nelle animazioni cinematiche nelle animazioni rigged (skeleton based) Vengono usate in molti processi nel rendering, dalla GPU trasformazione di mollezione, di vista, di proiezione trasformano geometria e normali delle mesh renderizzate nella modellazione, interattivamente, dall’artista x deformare un’intero oggetto o una sua sottoparte etc etc
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Uni Pisa - Modellazione 3D 16/05/2014
Marco Tarini - 2014 1
Modellazione 3D
TrasformazioniSpaziali
Marco TariniMarco Tarini
Trasformazioni spaziali: intro
Concetto molto generale…
� Le abbiamo usate in molte strutture dati:� nello scene graph (trasf. di modellazione)
� nelle animazioni cinematiche
� nelle animazioni rigged (skeleton based)
� Vengono usate in molti processi� nel rendering, dalla GPU
� trasformazione di mollezione, di vista, di proiezione
� trasformano geometria e normali delle mesh renderizzate
� nella modellazione, interattivamente, dall’artista� x deformare un’intero oggetto o una sua sottoparte
� etc etc
Uni Pisa - Modellazione 3D 16/05/2014
Marco Tarini - 2014 2
Punti, Vettori,Transformazioni Spaziali
Serve un manuale?
Mathematics for 3D Game Progr. and C.G. (3za ed)
Eric Lengyel
Capitoli 2, 3, 4
Trasformazioni spaziali
� Funzioni
� input: un punto
(oppure un vettore)
� output: un punto
(oppure un vettore)
� punti e vettori:
� rappresentati da coordinate
� trasformazioni:
� “cambiano le coordinate”
� nuove coords = funz( vecchie coords )
p
f
f
f
q
q = (p)
v = (u)
ff
Uni Pisa - Modellazione 3D 16/05/2014
Marco Tarini - 2014 3
Es: scene graph
Mondo
T1 T2 T3 T4
z
Object Coordinates
� Dare ad ogni oggetto il suo sistema di coordiante privato:
il suo Object Space;
y
yy
y
x
xx
x
z
z
z
z
y
x
Uni Pisa - Modellazione 3D 16/05/2014
Marco Tarini - 2014 4
f
Es: trasformazione spazialedi modellazione
Spazio Oggetto
Spazio
Mondo
p
f
f
f
q
Object Space(spazio oggetto) (analogo in 2D)
� spazio oggetto
1
spazio oggetto(“spazio macchina”)
origine oooo dellospazio oggetto
x
y
2 3-1-2
-3
assi xxxx e yyyy dellospazio oggetto
1
2
3
-1
-2
-3
Uni Pisa - Modellazione 3D 16/05/2014
Marco Tarini - 2014 5
Object Coordinates (analogo in 2D)
1.5
2.3p = (1.51.51.51.5, 2.32.32.32.3)
coordinate di ppppin spazio oggetto
x
y
spazio oggetto(“spazio macchina”)
Object Coordinates (analogo in 2D)
1.5
2.3p = (1.5, 2.3)
spazio oggetto(“spazio macchina”)
coordinate di ppppin
spazio oggetto
x
y
x
y
spazio mondo
= (12.5, 8.1)8.1
12.5
coordinate di ppppin
spazio mondo
1
1
Uni Pisa - Modellazione 3D 16/05/2014
Marco Tarini - 2014 6
Object Coordinates
1.5
2.3p = (1.5, 2.3)
spazio oggetto(“spazio macchina”)
coordinate di ppppin spazio oggetto
x
y
x
y
spazio mondo
= (12.5, 8.1)8.1
12.5
coordinate di ppppin spazio mondo
1
1
11
5.8
=
1
0.0
1.8
5.12
1
0.0
3.2
5.1
1000
0.0100
8.5010
11001
Object Coordinates
p = (1.5, 2.3)
spazio oggetto: (“spazio macchina AAAA”)
coordinate in spazio oggetto
x
y
= (9.7, 4.2)
7.4
22.5
spazio oggetto: (“spazio macchina BBBB”)
coordinate in spazio mondo
p = (1.5, 2.3)= (22.5, 7.4)
9.71
1
4.2
spazio mondo
Uni Pisa - Modellazione 3D 16/05/2014
Marco Tarini - 2014 7
Coordinate affini
POSIZIONI
� punto p con coordinate (catesiane): x,y,z
� coordiante affini di p : (x,y,z,1)
DIREZIONI / SPOSTAMENTI
� vettore v con coordinate (catesiane): x,y,z
� coordiante affini di v : (x,y,z,0)
Classi utilidi trasformazioni spaziali
� Isometrie (rototraslazione)
� “Mantengono la magnitudine”
� Rotaz + Traslaz
� Similitudini (trasformaz. conformali)
� “Mantengono gli angoli”
� Rotaz + Traslaz + Scaling uniforme
� Lineari (trasformaz. affini)
)()()(1010
vfvfvvf βαβα +=+
Nota:
sono chiuse rispetto
a combinazione
affini
similit.
isom.
Uni Pisa - Modellazione 3D 16/05/2014
Marco Tarini - 2014 8
Classi utilidi trasformazioni spaziali
� Lineari (trasformaz. affini)
� Similitudini (trasformaz. conformali)� “Mantengono gli angoli”
� Rotaz + Traslaz + Scaling uniforme
� Isometrie (rototraslazione)� “Mantengono la magnitudine”
� Rotaz + Traslaz
)()()(1010
vfvfvvf βαβα +=+
Trasformazioni affini
� Definizioni equivalenti:
� trasf esprimibili con moltiplicaz con matrice 4x4
con ultima riga: 0,0,0,1
� si moltiplica la matr il vett di coordinate affini
� cambio di frame
(di origine + sistema di assi catesiani)
� da: spazio di origine a: spazio di destinazione
� trasf lineari: cioè t.c.
� tasformazioni di un tetraedro in un tetraedro (in 3D)
� (in 2D: di un triagolo in un triangolo)
)()()(1010
vfvfvvf βαβα +=+
Uni Pisa - Modellazione 3D 16/05/2014
Marco Tarini - 2014 9
Trasformazioni affini:cosa fanno
� Rotazioni
� Traslazioni� (di punti – x le direzioni
non ha senso)
� Scalature� uniformi o non
� Skewing
� … e combinazioni
(infatti includono
tutte le isometrie)
infatti la classe è chiusa
rispetto a combinazioni…
(basta moltiplicare le matrici!)
Trasformazioni affini:note
� mantengono sempre:
� rapporti fra volumi
� parallelisimo fra rette
� non mantengono (caso generale):
� volumi, o aree, o angoli, o lunghezze
� o rapporti fra aree, o fra lunghezze
� non includono:
� defomazioni prospettiche
Uni Pisa - Modellazione 3D 16/05/2014
Marco Tarini - 2014 10
Trasformazioni affini (nelle GUI) :come si possono specificare
nota: questi controlli familiari (piu’ la traslazione, effettuata con drag-and-drop)
sono sufficienti a specificare ogni possibile trasf affine in 2D
[DEMO]
Trasformazioni affini (nelle GUI) :come si possono specificare
Controllers (concetto generale)
� aka: handles (maniglie)
� aka (specie in 3D): glifi (glyphs) o gizmos
� Elementi delle GUI per specificare… cose
� Esempio: handles per specificare le trasf affini in 2D:
rotaz
skeworizz
skewverticale
scalatura(uniforme)
scalatura(orizz)
scalatura(vert)
Uni Pisa - Modellazione 3D 16/05/2014
Marco Tarini - 2014 11
Classi utilidi trasformazioni
� Lineari (trasformaz. affini)
� Similitudini� Conformali: “Mantengono gli angoli”
� Rotaz + Traslaz + Scaling uniforme
� Isometrie (rototraslazione)� “Mantengono la magnitudine”
� Rotaz + Traslaz
)()()(1010
vfvfvvf βαβα +=+
Una classe di trasformazioni(senza nome) molto usata in pratica