3d computer graphik: transformationen in 3d · page 1 3d computer graphik: transformationen in 3d...
TRANSCRIPT
Page 1
3D Computer Graphik:
Transformationen in 3D
10
Scan Conversion – Graphics Pipeline
for every object in the scene
shade the vertices
scan convert the object to the framebuffer
interpolate the color computed for each vertex
remember the closest value per pixel
Page 2
11
Graphics Pipeline
Modeling
Transformations
Illumination
(Shading)
Viewing Transformation
(Perspective / Orthographic)
Clipping
Projection
(to Screen Space)
Scan Conversion
(Rasterization)
Visibility / Display
Output:
Farben / Intensitäten:
Angepasst an den Framebuffer und den
Bildschirm (z.B. 24-bit RGB Werte)
.
Input:
Geometrische Modelle:
Beschreibung aller Objekte, Oberflächen,
Position der Lichtquellen.
Beleuchtungsmodell:
Rechenvorschriften zur Simulation der
Interaktion von Materie und Licht
Blickwinkel:
Kamera oder Augenposition,
"viewing frustum"
Raster Bereich
"Viewport", Pixelgrid in welches die
Bildeben abgebildet wird
12
Modeling Transformations
3D Modelle haben eigenes Koordinatensystem
(object space)
"Modeling transforms" orientieren die Modelle
in einem gemeinsamen Koordinatensystem
(world space)
Modeling
Transformations
Illumination
(Shading)
Viewing Transformation
(Perspective / Orthographic)
Clipping
Projection
(to Screen Space)
Scan Conversion
(Rasterization)
Visibility / Display
Object space World space
Page 3
Geometrische
Transformationen in 3D
14
Wiederholung: Verkettung von Transformationen in 2D
100
sincos1cossin
sincos1sincos
100
10
01
100
0cossin
0sincos
100
10
01
rr
rr
r
r
r
r
xy
yx
y
x
y
x
),-yT(-x)R( )y,T(x rrrr
),y, x(Rrr
)y,(x
rr
Fixpunkt umRotation
Page 4
15
3D Transformationen
Rechtshändiges System:
x
y
z
Positive Rotation um eine Koordinatenachse:
Rotation gegen den Uhrzeigersinn, wenn man vom
Positiven in die Richtung zum Ursprung schaut.
16
3D Translation T(tx,ty,tz)
1
z
y
x
1000
100
010
001
1
z'
y'
x'
z
y
x
t
t
t
Page 5
17
3D Rotation um die x-, y-, z- Achse
PRPZYX
,,
'
cos 0 sin 0
0 1 0 0
sin 0 cos 0
0 0 0 1
YR
1000
0cossin0
0sincos0
0001
XR
1000
0100
00cossin
00sincos
Z
R
18
3D Rotation um eine beliebige Achse
1. Verschiebe das Objekt so, dass Rotationsachse durch den
Ursprung geht.
2. Rotiere das Objekt so, daß die Rotationsachse mit einer der
Koordinatenachsen zusammen fällt.
3. Rotiere das Objekt um dem gewünschten Winkel.
4. Invertiere die Rotation aus Schritt 2.
5. Invertiere die Translation aus Schritt 1.
Page 6
19
Wechsel der Koordinatensystem
Transformationen lassen sich auch als ein Wechsel der
Koordinatensysteme verstehen.
Objekte in Szenen haben meist ihr eigenes Koordinatensystem,
sollen aber in ein gemeinsames Weltkoordinaten-system
eingebunden werden. (Beispiel: Fahrrad mit rotierenden Rädern)
20
Beispiel
Ein Rad rolle auf dem Boden und drehe sich dabei um den Winkel . Wo
befindet sich dann ein Punkt P auf dem Reifen in Weltkoordinaten?
( ) ( ) ( )
' ' , 0, 0
welt rad rad
welt rad welt radP M P M T r R P
''
oder
)(
''
)'(
'
)( rad
radradradwelt
rad
radwelt
weltPRMMPMP
R)0,0,(' )()( r a dr a d
PrTP In Radkoordinaten
( ') ( )
' R
rad radP P In den neuen Radkoordinaten
)()( r a d
r a dwel t
wel tPMP
In Weltkoordinaten
Page 7
Freie Bewegung
von 3D Objekten im 3D Raum
22
Parameterisierung der Objektorientierung
Problem : Wie lässt sich die Orientierung eines Objekts beschreiben?
Das heißt, wie ist der Raum aller möglichen Orientierung zu
Parameterisieren?
Oder, wie ist zwischen zwei Orientierungen zu interpolieren?
Eine Möglichkeit: Eulerwinkel, die definierte aneinander Reihung von
Basisrotationen!
Page 8
23
3D Rotationen um die x-, y-, z- Achsen
2 2
2
2 2
cos 0 sin 0
0 1 0 0
sin 0 cos 0
0 0 0 1
YR
1000
0100
00cossin
00sincos
33
33
3
Z
R
1000
0cossin0
0sincos0
0001
11
11
1
XR
123321 ,, XYZ RRRR
Jede beliebige Rotation lässt sich durch
hintereinander Reihung von 3 Basisrotationen
beschreiben.
3 2 2 3 2
1 2 3 1 3 1 2 3 1 3 1 2
1 2 3
1 2 3 1 3 1 2 3 1 3 1 2
i
0
0θ ,θ ,θ
0
0 0 0 1
mit
cos θ und sin θi i i
c c c s s
s s c c s s s s c c s cR
c s c s s c s s s c c c
c s
24
Eulerwinkel sind unpraktisch - erster Grund!
1. Es ist schwierig eine bestimmte Rotation einzustellen.
Es werden zwar die Punkte eines Objektes rotiert, aber nicht
seine Koordinatenachsen!
1331
2,
2,
XYZRRRR
z.B.
Hat nur zwei Freiheitsgrade!
y
xz
x‘
Page 9
25
?
Eulerwinkel sind unpraktisch - zweiter Grund!
2. Für Key-frame Technik nicht nutzbar!
Wie soll zwischen zwei Positionen interpoliert werden?
Es gibt viele verschiedene Wege!
y
z x
y
xzoder ?
26
Euler‘s Theorem
Jede beliebige Rotation läßt sich durch eine
einzige Rotation um eine Achse n beschreiben.
321 ,, R
nRR
n
,,, :g ilt d a ß
, ,, d .h .
321
321
→
→
→
Page 10
Transformation als Funktion eines Winkels
Rrr
n
r || = ( n • r ) n
r = r - ( n • r ) n
Zerlege r = r || + r
r
r ||
Konstruiere v in der Rotationsebene
v = n r = n r
𝑅 𝜃1, 𝜃2, 𝜃3 • 𝑟 = 𝑅 𝜃, 𝑛 • 𝑟
r
v Rrda v , r , Rr planar
=> R r = cos( ) r + sin ( ) v
=> R r = R r|| + R r = r|| + R r
→ → →
Transformation als Funktion eines Winkels
R r = R r|| + R r = r|| + R r
R r = r || + R r
R r = ( n • r ) n + R r
R r = ( n • r ) n + cos( ) r + sin ( ) v
R r = ( n • r ) n + cos( ) (r - ( n • r ) n) + sin ( ) v
R r = ( n • r ) n + cos( ) (r - ( n • r ) n) + sin ( ) (n r)
R r = cos( ) r + ( 1 - cos( ) ) n ( r • n) + sin ( ) (n r)
Page 11
EINSCHUB: Mathematik Repetitorium
Komplexe Zahlen
Quaternionen
30
Komplexe Zahlen ( Repetitorium)
Eine komplexe Zahl z ist ein geordnetes Paar reeller Zahlen:
, mit ,
wobei
Re( ) als Realteil von z und
Im als Imaginärteil von z bezeichnet wird.
mit de
z x y x y
x z
y z
r Einheit (0, 1) i
12212121 , yxyxyyxx
2
2
2
2
2112
2
2
2
2
2121,
yx
yxyx
yx
yyxx
2121 , yyxx
2121 , yyxx
2211,x ,x
:lnRech en reg e
yy
2211 ,x ,x yy
2211 ,x ,x yy
2211 ,x ,x yy
reale x-Achse
imaginäre
y-Achse
z
ℝ
Page 12
31
Komplexe Zahlen (2)
1- i
2
2
2
2
2112
2
2
2
2
2121
22
21
2
1,
yx
yxyx
yx
yyxx
zz
zz
z
z
0 , 1 0 ,1 :il Realte
:tenEig en s ch af
2
iy x z o d e r ,x z y
011 0 :ilI m a g in ä r t e22
, - , i
i yxzzy zm it z o d e r x z 22
32
Komplexe Zahlen (Polarkoordinaten)
iy x z o d e r ,x z b is h e r y
21
21
2
1
2
1
2121
z
i
i
er
r
z
z
errz
reale x-Achse
imaginäre
y-Achse
z = (x,y)
r
z = (r,)
i r e z
α iα r z r
s incosoder , z
dinaten Polarkoorin
Page 13
33
Quaternionen (Hamilton 1843)
2 2 2
ein Quaternion sei
mit 1
q
q a ib jc kd i j k
ij k ji
jk i kj
ki j ik
k dj ci baq
qq 12
222|||q| vs qq
vvssv,sv,sqq 2121221121 ,
→ → → →
v,sv,sqq 221121 → →
,m i t , o d e r vsq k vj vi vsvsq zyx
→ →
1 2 1 2 1 2 2 1 1 2 - , s s v v s v s v v v
→ → → → → →
1 1 2 3 3 2
2 2 3 1 1 3
3 3 1 2 2 1
x y x y x y
x y x y x y
x y x y x y
x y y x
→ → →→
34
1 2 1 2 - , s s v v
→ →
Quaternionen (Multiplikation)
)()( 22221111 zyxzyx k vj vi vs k vj vi vs
v,sv,sqq 221121
1 2 2 2 2
1 2 2 2 2
1 2 2 2 2
1 2 2 2 2
( ) ( )
( )
( )
( )
x y z
x x y z
y x y z
z x y z
s s iv jv kv
iv s iv jv kv
jv s iv jv kv
kv s iv jv kv
2 2 2 1
i j k
ij k ji
jk i kj
ki j ik
1 2 1 2 1 2 1 2
1 2 2 1 1 2 1 2
1 2 2 1 1 2 1 2
1 2 2 1 1 2 1 2
( )
( )
( )
x x y y z z
x x y z z y
y y x z z x
z z x y y x
s s v v v v v v
i s v s v v v v v
j s v s v v v v v
k s v s v v v v v
vs 21
→ →
→
12 vs
→
21 vv
→ →
Page 14
35
Von Quaternionen zu Rotationen
) ( 1mit vs ,q und
,0 s ei
1qqqq
r p
R r = cos( ) r + ( 1 - cos( ) ) n ( r • n) + sin ( ) (n r)
R
definiere
1
q
qpqp
→
→
nqq
s in,c o s 1d a →
22,0
2rvsrvvrvvs
→ → → → →→→→
rnrnnrp
s inc o s2s in2s inc o s,0 R222
q
→ →→ →→→
rnrnnrp
2s in2c o s12c o s,0 R q
→ → →→ → →
-1
D er O p e ra tor q m it cos , s in b e sch re ib t e in e R ota tion !!2 2
q q n
→
36
Quaternionen als Rotationen
0,0,1,00,0,12
s in,2
cos )(
xXqR
q" q' q
Euler's Theorem folgt implizit aus der Quaternionenalgebra,
da das Produkt von 2 Einheits Quaternionen wiederum ein
Quarternion der Länge eins ist.
R R R mit " '
q q q
Beispiel:
1,0,00,1,0,0
0,0,1,0
1,0,0,00,1,0,0 zy
y
xz
?
y
z x
•
)( )( YZ RR
•
Page 15
37
Interpolation von Quaternionen
1. Lineare Interpolation im Quaternionenraum
BAP
AB qtt q 1tq
BA ?
2. Lineare Interpolation im Quaternionenraum mit |P|=1
s in
s in
s in
s in P c o s PA u n d c o s BA BA
Spherische Interpolation zwischen , mit cos
A B A Bq q q q
sin
sin
sin
)1sin(tq
t
BAq
tq
38
Quaternion zu Rotationsmatrix
2 2
2 2
2 2
1 2 2 2 0
2 1 2 2 0
2 2 1 2 0
0 0 0 1
y z x y z x z y
x y z x z y z x
x z y y z x x y
v v v v sv v v sv
v v sv v v v v svR q
v v sv v v sv v v
S ei eine E inheits-Q uatern ion m it s ,v und 1
dann berechnet sich d ie en tsp rechende R otationsm atrix zu
q q qq
R
→