Game Development Reference
In-Depth Information
30 seconds of animation data, matrices would take 162K more than
the same data stored using Euler angles!
Di cult for humans to use. Matrices are not intuitive for humans
to work with directly. There are just too many numbers, and they
are all between −1 and +1. What's more, humans naturally think
about orientation in terms of angles, but a matrix is expressed in
terms of vectors. With practice, we can learn how to decipher the
orientation from a given matrix. (The techniques from Section 4.2
for visualizing a matrix help a lot for this.) But still, this is much
more di cult than Euler angles. And going the other way is much
more di cult—it would take forever to construct the matrix for a
nontrivial orientation by hand. In general, matrices just aren't the
way people naturally think about orientation.
Matrices can be ill-formed. As we have said, a matrix uses nine num-
bers, when only three are necessary. In other words, a matrix contains
six degrees of redundancy. There are six constraints that must be sat-
isfied for a matrix to be “valid” for representing an orientation. The
rows must be unit vectors, and they must be mutually perpendicular
(see Section 6.3.2).
Let's consider this last point in more detail. If we take any nine numbers
at random and create a 3 × 3 matrix, it is very unlikely that these six
constraints will be satisfied, and thus the nine numbers will not form a
valid rotation matrix. In other words, matrices can be ill-formed, at least
for purposes of representing an orientation. Ill-formed matrices can be a
problem because they can lead to numerical exceptions, weird stretched
graphics, and other unexpected behavior.
How could we ever end up with a bad matrix? There are several ways:
We may have a matrix that contains scale, skew, reflection, or pro-
jection. What is the “orientation” of an object that has been af-
fected by such operations? There really isn't a clear definition for
this. Any nonorthogonal matrix is not a well-defined rotation matrix.
(See Section 6.3 for a complete discussion on orthogonal matrices.)
And reflection matrices (which are orthogonal) are not valid rotation
matrices, either.
We may just get bad data from an external source. For example, if we
are using a physical data acquisition system, such as motion capture,
there could be errors due to the capturing process. Many modeling
packages are notorious for producing ill-formed matrices.
Search WWH ::




Custom Search