CSCE 441 Lecture 37
« previous | Wednesday, April 23, 2014 | next »
Quaternions and Complex Numbers
how they should be used.
Complex Numbers
Defined by a real and imaginary part:
, where .
Simple operations:
- Conjugation: becomes . What's impressive about this is that , where
Relation to Graphics
Given a point , rotate that point about the origin by :
Represent by a complex number:
Rotation is just multiplication by a complex number.
Quaternions
Sir William Rowan Hamilton attempted to extend complex numbers from 2D to 3D, but this is now provably impossible. He discovered a generalization to 4D and wrote it on the side of a bridge in Dublin.
One real part, 3 complex parts:
From this, we get
We can define an algebra on
and
- Multiplication:
- Order matters in quaternion multiplication!
- Conjugation: , and
- Inversion:
Relation to Graphics
Claim: unit quaternions represent 3D rotation
Convert from 3D to 4D: , where .
let be parallel to the axis of rotation in 3D.
In this case, . This gives a nonzero real component... uh oh, we now have a 4D number, not a 3D number.
let be a vector component in the plane normal to :
represents a positive (ccw) rotation, and represents a negative (cw) rotation.
Computing rotates the component of perpendicular to by and leaves the parallel component alone.
Quaternions vs. Matrices
This seems like magic... This is perhaps the wrong use for quaternions
- Quaternions take less space (4 vs. 9)
- Rotating a vector requires 28 multiplications using quaternions vs. 9 for matrices
- Composing two rotations using quaternions requires 16 multiplications vs. 27 for matrices
- Quaternions are not hardware-accelerated whereas matrices are.
Quaternions and Interpolation
Unit quaternions represent points on a 4D hypersphere
Interpolation on the sphere gives rotations that bend the least.
Recall we used SLERP to interpolate vectors on the surface of a 3D sphere.
May need to interpolate between and .
, where .
Other Graphics Uses for Quaternions
Skeletal animation: moving bones usually requires a lot of composed rotations.