Computer Graphik I

Werbung
CG
Computer Graphik I Koordinaten, Rota5on und Orien5erung Marc Alexa, TU Berlin 1
CG
§ 
Anwendung • 
• 
3D Dateneingabe Repräsenta<on von 3D Daten – 
– 
– 
§ 
§ 
§ 
3D Graphik-­‐Pipeline Primi<ve Transforma<onen Räumliche Datenstrukturen Geometrieverarbeitung Rasterisierung Ausgabe Marc Alexa, TU Berlin 2
CG
§ 
§ 
§ 
§ 
§ 
§ 
Homogene Koordinaten Koordinaten beschreiben Punkte Vektoren beschreiben eine Richtung und einen Betrag Punkt ≠ Vektor Punkt p = [px,py,pz,1]T
Vektor v = [vx,vy,vz,0]T
Rechnen mit Matrizen funk<oniert wie gewünscht Marc Alexa, TU Berlin 3
CG
Homogene Koordinaten §  Punkt -­‐ Vektor Rechenregeln • 
• 
• 
• 
• 
• 
• 
• 
Punkt + Punkt = undefiniert Vektor + Vektor = Vektor Punkt + Vektor = Punkt Punkt -­‐ Punkt = Vektor Skalar Ÿ Vektor = Vektor Skalar Ÿ Punkt = Punkt (Skalar = 1), Vektor (Skalar = 0), undefiniert Σ Skalar Ÿ Vektor = Vektor Σ Skalar Ÿ Punkt = Punkt (Σ Skalar = 1), Vektor (Σ Skalar = 0), undef. Marc Alexa, TU Berlin 4
CG
Was ist eine Rota5on? §  Formale Defini<on hängt von der Beschreibung ab §  Viele Beschreibungen • 
• 
• 
• 
• 
• 
Rota<onsmatrix Eulerwinkel Achse und Winkel Rota<onsvektor Sphärische Koordinaten Einheits-­‐Quaternionen Marc Alexa, TU Berlin 5
CG
Orien5erung und Rota5on §  Rota<on •  Kreisförmige Bewegung §  Orien<erung •  Zustand •  Gegeben ein Koordinatensystem, so kann die Orien<erung als Rota<on einer Referenzorien<erung beschrieben werden §  Analogie •  (Punkt : Vektor) verhält sich wie (Orien<erung : Rota<on) •  In beiden Fällen (Zustand : Bewegung) Marc Alexa, TU Berlin 6
CG
2D Orien5erung π
2
θ
π
or
−π
0
Polarkoordinaten −
Marc Alexa, TU Berlin π
2
7
CG
2D Orien5erung π
2
θ
θ (t )
π
or
−π
Time
0
−
Marc Alexa, TU Berlin π
π
2
−π
Die Bewegung ist kon<nuierlich, die Repräsenta<on nicht 8
CG
2D Orien5erung π
2
θ
θ (t )
π
or
−π
Time
0
−
Marc Alexa, TU Berlin π
π
2
−π
Keine 1-­‐1 Beziehung zwischen Orien<erung und Repräsenta<on 9
CG
Extra Parameter Y
2
2
x + y =1
( x, y )
θ
Marc Alexa, TU Berlin X
10
CG
Extra Parameter 2x2 Rota5onsmatrix ist eine Möglichkeit zusätzliche Parameter zu verwenden & cos θ
$$
% sin θ
Marc Alexa, TU Berlin − sin θ #
!!
cos θ "
Y
2
2
x + y =1
( x, y )
θ
X
11
CG
Komplexe Zahlen Imaginär
x + iy
θ
Marc Alexa, TU Berlin Real
12
CG
Euler-­‐Beziehung, Exponen5alfunk5on Imaginär
x + iy = cos θ + i sin θ
=e
x + iy
θ
Marc Alexa, TU Berlin iθ
Real
13
CG
Komposi5on Imaginär
e
i (θ +φ )
iθ
=e e
iφ
θ +φ
Real
Marc Alexa, TU Berlin 14
CG
2D Rota5on §  Komplexe Zahlen eignen sich zur Repräsenta<on von 2D Orien<erung, aber nicht 2D Rota<on §  Eine Komplexe Zahl beschreibt nicht die Imaginär
verschiedenen “Wege” zur gleichen Orien<erung •  120 Grad CCW •  -­‐240 Grad CW •  480 Grad CCW θ
Real
θ − 2π
Marc Alexa, TU Berlin 15
CG
2D Rota5on und Orien5erung §  2D Rota<on •  Eine Rota<onsbewegung kann durch einen Rota<onswinkel eindeu<g angegeben werden •  Der Rota<onswinkel ist unabhängig von der Wahl des Bezugssystems §  2D Orien<erung •  Eine Parametrisierung der 2D Orien<erungen ohne Singularität erfodert zusätzliche Parameter –  Z.B. Komplexe Zahlen, oder 2x2 Rota<onsmatrizen •  Die Parametrisierung hängt von der Wahl des Bezugssystems ab Marc Alexa, TU Berlin 16
CG
3D Rota5on §  Gegeben zwei Orien<erungen eines Starrkörpers, X
X!
Z!
Z
Y
Y!
Marc Alexa, TU Berlin wie viele Rota<onen sind nö<g um die eine Orien<erung in die andere zu überführen ? 17
CG
3D Rota5on §  Gegeben zwei Orien<erungen eines Starrkörpers v̂
θ
So wird eine Rota<on um eine feste Achse mit festem Winkel definiert Marc Alexa, TU Berlin 18
CG
Eulerwinkel §  Gimble •  “Hardware” Implemen<erung der Eulerwinkel •  Flugzeuge, Kameras Marc Alexa, TU Berlin 19
CG
Eulerwinkel §  Rota<on um drei orthogonale Achsen •  12 Kombina<onen –  XYZ, XYX, XZY, XZX –  YZX, YZY, YXZ, YXY –  ZXY, ZXZ, ZYX, ZYZ §  Gimble lock •  Gleiche innere und äußere Rota<onsachse •  Verlust eines Freiheitsgrades Marc Alexa, TU Berlin 20
CG
Rota5onsvektoren v̂
vˆ : unit vector
θ : scalar angle
θ
§  Rota<onsvektor (3 Parameter) Marc Alexa, TU Berlin v = |θ| vˆ = ( x, y, z )
21
CG
3D Orien5erung §  Drei Parameter reichen nicht aus •  Eulerwinkel –  Nicht kon<nuierlich (bzw. keine 1-­‐1 Parametrisierung) –  Gimble lock •  Rota<onsvektoren –  Nicht kon<nuierlich (bzw. keine 1-­‐1 Parametrisierung) π
−π
Marc Alexa, TU Berlin 22
CG
Extra Parameter v̂
vˆ : unit vector
θ : scalar angle
θ
§  Axis-­‐Angle (3+1 Parameter) Marc Alexa, TU Berlin (θ , vˆ )
23
CG
Extra Parameter §  Eulerparameter &θ #
e0 = cos$ !
% 2"
, e1 )
*e ' = vˆ sin & θ #
$ !
* 2'
% 2"
*+e3 '(
Marc Alexa, TU Berlin θ : rotation angle
vˆ : rotation axis
24
CG
Quaternionen §  William Rowan Hamilton (1805-­‐1865) •  Komplexe Zahlen 1833 x + iy
Marc Alexa, TU Berlin wobei i 2 = −1
25
CG
Quaternionen §  William Rowan Hamilton (1805-­‐1865) •  Komplexe Zahlen 1833 x + iy
wobei •  Quaternionen 1843 w + ix + jy + kz
Marc Alexa, TU Berlin wobei i 2 = −1
i 2 = j 2 = k 2 = ijk = −1
ij = k , jk = i, ki = j
ji = −k , kj = −i, ik = − j
26
CG
Quaternionen William Thomson “… though beau2fully ingenious, have been an unmixed evil to those who have touched them in any way.” Arthur Cayley “… which contained everything but had to be unfolded into another form before it could be understood.” Marc Alexa, TU Berlin 27
CG
Einheitsquaternionen §  Einheitsquaternionen repräsen<eren 3D Rota<onen q = w + ix + jy + kz
= ( w, x, y, z )
= ( w, v )
S
3
w2 + x 2 + y 2 + z 2 = 1
Marc Alexa, TU Berlin 28
CG
Rota5on um eine beliebige Achse §  Rota<on um die Achse v̂ mit dem Winkel θ
( x!, y!, z !)
( x, y , z )
θ
p" = qpq −1
wobei v̂
θ
θ#
&
q = $ cos , vˆ sin !
2
2"
%
p = (0, x, y, z )
Rein imaginäres Quaternion Marc Alexa, TU Berlin 29
CG
Einheitsquaternionen §  Einheitselement q = (1,0,0,0)
§  Mul<plika<on q1q 2 = ( w1 , v1 )( w2 , v 2 )
= ( w1w2 − v1 ⋅ v 2 , w1 v 2 + w2 v1 + v1 × v 2 )
§  Inverse q −1 = ( w,− x,− y,− z ) /( w 2 + x 2 + y 2 + z 2 )
= (− w, x, y, z ) /( w 2 + x 2 + y 2 + z 2 )
§  Die Einheitsquaternionen sind •  Abgeschlossen unter Mul<plika<on (und Inversion), •  Aber nicht unter Addi<on (und Subtrak<on) Marc Alexa, TU Berlin 30
CG
Einheitsquaternionen §  An<podale Äquivalenz •  q und –q repräsen<eren die selbe Rota<on Rq (p) = R−q (p)
•  2-­‐1 Abbildung von S 3 nach SO(3) •  Rota<onen sind “2 mal schneller” als in SO(3) Marc Alexa, TU Berlin 31
CG
Konzepte §  Orien<erung •  Einheitsquaternionen parametrisieren 3D Orien<erungen ohne Singularität §  (Endliche) Rota<on •  Einfach als 3D Rota<onsvektoren §  Infinitesimale Rota<on •  Kann durch 3D Vektoren repräsen<ert werden •  Vgl. auch schiefsymmetrische Rota<onsmatrix für kleine Winkel Marc Alexa, TU Berlin 32
Tangentenvektor CG
(Infinitesimale Rota5on) Tq S
3
q
Marc Alexa, TU Berlin 33
Tangentenvektor CG
(Infinitesimale Rota5on) q
−1
Tq S
3
q
Marc Alexa, TU Berlin 34
Tangentenvektor CG
(Infinitesimale Rota5on) TI S
3
I = (1,0,0,0)
( 0, x, y , z )
Winkelgeschwindigkeit −1
ω = 2q q
Marc Alexa, TU Berlin 35
CG
Exp und Log I
log
exp
exp( v ) = exp(θ vˆ ) = (cosθ , vˆ sin θ )
Marc Alexa, TU Berlin 36
CG
Exp und Log I
log
exp
exp( v ) = exp(θ vˆ ) = (cosθ , vˆ sin θ )
Marc Alexa, TU Berlin Euler Parameter &θ #
e0 = cos$ !
% 2"
, e1 )
*e ' = vˆ sin & θ #
$ !
* 2'
% 2"
*+e3 '(
37
CG
Rota5onsvektor p1
R3
S
3
q1
u = p 2 − p1
p2
q2
p 2 = p1 + u
= p1 + (p 2 − p1 )
Marc Alexa, TU Berlin 38
CG
Rota5onsvektor p1
R3
u = p 2 − p1
S
3
I = q1−1q1
−1
1
q q2
p2
p 2 = p1 + u
= p1 + (p 2 − p1 )
Marc Alexa, TU Berlin 39
CG
Rota5onsvektor p1
R
3
u = p 2 − p1
(
v = log q1−1q 2
)
I = q1−1q1
−1
1
q q2
p2
p 2 = p1 + u
= p1 + (p 2 − p1 )
Marc Alexa, TU Berlin q 2 = q1exp( v )
( (
= q1exp log q1−1q 2
))
40
CG
Rota5onsvektor §  Endliche Rota2on •  Rota<ons-­‐Bewegung •  Addi<on der Vektoren entspricht nicht der Konkatena<on u v
e e ≠e
u +v
§  Infinitesimale Rota2on •  Winkelgeschwindigkeit •  Addi<on der Vektoren entspricht Addi<on der Winkelgeschwindigkeiten Marc Alexa, TU Berlin 41
CG
Spherical Linear Interpola5on §  SLERP [Shoemake 1985] •  Lineare Interpola<on zwischen zwei Orien<erungen slerpt (q1 , q 2 ) = q1 (q1−1q 2 ) t
t
= q1exp(t ⋅ log(q1−1q 2 ))
1− t
Marc Alexa, TU Berlin 42
CG
Spherical Linear Interpola5on slerpt (q1 , q 2 ) = q1 (q1−1q 2 ) t
Marc Alexa, TU Berlin = q1exp(t ⋅ log(q1−1q 2 ))
43
CG
§ 
§ 
§ 
§ 
§ 
§ 
§ 
§ 
§ 
§ 
Opera5onen Orien<erung Ÿ Orien<erung = undefiniert Exp(Rota<on) Ÿ Exp(Rota<on) = Exp(Rota<on) Orien<erung Ÿ Exp(Rota<on) = Orien<erung Orien<erung-­‐1 Ÿ Orien<erung = Exp(Rota<on) Log(Exp(Rota<on)) = Rota<on Log(Orienta<on) = undefined Skalar Ÿ Rota<on = Rota<on Exp(Rota<on)Skalar = Exp(Rota<on) Rota<on + Rota<on = Rota<on Skalar Orien<erung = Orien<erung (Skalar = 1), Exp(Rota<on) (Skalar = 0) Marc Alexa, TU Berlin 44
CG
Rota5onsmatrix oder Einheitsquaternion §  In vielen Aspekten ähnlich • 
• 
• 
• 
Redundant Keine Singularität Gleiches Verhalten bzgl. Exp & Log Tangentraum hat physikalische Bedeutung §  Warum/wann Quaternionen? •  Weniger Parameter •  Einfachere Rechenregeln mit weniger Opera<onen •  Deswegen besseres numerisches Verhalten §  Warum/wann Rota<onsmatrizen ? •  1-­‐1 Korrespondenz •  Rota<onen und Transla<onen (bzw. auch die anderen linearen Transforma<onen) können einheitlich repräsen<ert werden Marc Alexa, TU Berlin 45
CG
Umrechnung §  Theore<sch ist die Umwandlung stets möglich und einfach §  In der Praxis stehen ov Konven<onen im Weg §  Quaternion zu Matrix & q 02 + q x2
$
$ 2q x q y
R=$
$ 2q x q z
$
%
Marc Alexa, TU Berlin − q y2 − q z2
+ 2q 0 q z
− 2q 0 q y
0
2q x q y − 2q 0 q z
q 02 − q x2 + q y2 − q z2
2q y q z + 2q 0 q x
0
2q x q z + 2q 0 q y
2q y q z − 2q 0 q x
q 02 − q x2 − q y2 + q z2
0
0#
!
0!
0 !!
1 !"
46
Herunterladen