Professional Documents
Culture Documents
The Use of Quaternions and SLERP For Character Animation: Verena Kremer Saarland University Vekr5001@stud - Cs.uni-Sb - de
The Use of Quaternions and SLERP For Character Animation: Verena Kremer Saarland University Vekr5001@stud - Cs.uni-Sb - de
Verena Kremer
Saarland University
vekr5001@stud.cs.uni-sb.de
8. Mai 2008
Character Animation
Structure
2 Traditional Approaches
3 Quaternions
4 Interpolation
5 Conclusion
Rotation Matrices in 3D
0 1 0 1
1 0 0 cos φ 0 sin φ
Rotx (φ) = @0 cos φ − sin φA Roty (φ) = @ 0 1 0 A
0 sin φ cos φ − sin φ 0 cos φ
0 1
cos φ − sin φ 0
Rotz (φ) = @ sin φ cos φ 0A
0 0 1
Rotation Matrices in 3D
0 1 0 1
1 0 0 cos φ 0 sin φ
Rotx (φ) = @0 cos φ − sin φA Roty (φ) = @ 0 1 0 A
0 sin φ cos φ − sin φ 0 cos φ
0 1
cos φ − sin φ 0
Rotz (φ) = @ sin φ cos φ 0A
0 0 1
introducing quaternions...
introducing quaternions...
introducing quaternions...
introducing quaternions...
introducing quaternions...
i 2 = j2 = k 2 = ijk = −1
⇒ H = {t + xi + yj + zk|t, x, y, z ∈ R}
notation: 0 1
x
~q := (i, j, k) @yA ⇒ q = t + ~q; while q ∈ H
z
ij = k jk = i ki = j
ik = −j ji = −k kj = −i
0 1 0 1
m11 m12 m13 ix
M = @m21 m22 m23 A , M ∈ R3×3 q = t + ~q, q ∈ H ~q = @ jy A
m31 m32 m33 kt
1p
⇒t = (1 + m11 + m22 + m33 )
2
1
x = (m23 − m32 )
4t
1
y = (m13 − m13 )
4t
1
z = (m12 − m21 )
4t
···
0 1 0 1
m11 m12 m13 ix
M = @m21 m22 m23 A , M ∈ R3×3 q = t + ~q, q ∈ H ~q = @ jy A
m31 m32 m33 kt
1
0≥ 4
(1 + m11 + m22 + m33 ) and
0 < − 21 (m22 + m33 )
⇒ t = 0
r
1
x = − (m22 + m33 )
2
1
y = (m12 )
2x
1
z = (m13 )
2x
···
0 1 0 1
m11 m12 m13 ix
M = @m21 m22 m23 A , M ∈ R3×3 q = t + ~q, q ∈ H ~q = @ jy A
m31 m32 m33 kt
1
0≥ 4
(1 + m11 + m22 + m33 ) and
0≥ − 21 (m22 + m33 ) and
0 < 21 (1 − m33 )
⇒ t, x = 0
r
1
y = (1 − m33 )
2
1
z = m23
2y
···
0 1 0 1
m11 m12 m13 ix
M = @m21 m22 m23 A , M ∈ R3×3 q = t + ~q, q ∈ H ~q = @ jy A
m31 m32 m33 kt
1
0≥ 4
(1 + m11 + m22 + m33 ) and
0 ≥ − 21 (m22 + m33 ) and
0 ≥ 21 (1 − m33 )
⇒ t = x = y = 0, z = 1
0 1
ix
q = t + ~q, q ∈ H with ~q = @ jy A , t 2 + x 2 + y2 + z 2 = 1
kt
0 1
m11 m12 m13
and M = @m21 m22 m23 A , M ∈ R3×3
m31 m32 m33
1 − 2y2 − 2x 2
0 1
2xy + 2tz 2xz − 2ty
⇒M = @ 2xy − 2tz 1 − 2x 2 − 2z 2 2yz + 2tx A
2xz + 2ty 2yz − 2tx 1 − 2x 2 − 2y2
[Sho85]
Linear Interpolations
[Sho85, Blo04]
SLERP
[Sho85, Blo04]
[Mor01, Sho85]
Conclusion
Euler Angles
The End
Bibliography
[Blo04] Jonathan Blow. Understanding slerp, then not using it. The Inner Produc,
2004.
[Joh03] M. P. Johnson. Exploiting Quaternions to Support Expressive Interactive
Character Motion. PhD thesis, MIT Media Lab, 2003.
[Lan98] Jeff Lander. Better 3d: The writing is on the wall. Game Developer, 1998.
[Mor01] Mortenson. Mathematics for Computer Graphics Applications. dtv, 2001.
[Rei01] Falk Reinhardt, Soeder. Atlas der Mathematik. dtv, 2001. Band 1.
[Sho85] Ken Shoemaker. Animating rotation with quaternion curves. The Singer
Company; Link Flight Simulation Division, 1985.
[VK05] M. Fleck V. Kremer. Hypercomplex Fouriertransformations, 2005. Seminar
Geometric Algebra in Computer Vision.
[Wik08a] Wikipedia. Quaternions, 2008.
[Wik08b] Wikipedia. Slerp, 2008.