Game Development Reference

In-Depth Information

equation in terms of an infinite number of particles, using an integral. For almost

all applications, however, you can get away with splitting an object into particles and

using the sum. This is particularly useful when trying to calculate the moment of

inertia of an unusual-shape object. We'll return to the moments of inertia of different

objects later in the section.

Clearly we can't use a single value for the moment of inertia as we did for mass.

It depends completely on the axis we choose. About any particular axis, we have only

one moment of inertia, but there are any number of axes we could choose. Fortunately

the physics of rigid bodies means we don't need to have an unlimited number of

different values either. We can compactly represent all the different values in a matrix

called the “inertia tensor.”

Before I describe the inertia tensor in more detail, it is worth getting some ter-

minology clear. The moments of inertia for an object are normally
represented
as an

inertia tensor. However, the two terms are somewhat synonymous in physics engine

development. The “tensor” bit also causes confusion. A
tensor
is simply a generalized

version of a matrix. Whereas vectors can be thought of as a one-dimensional array

of values and matrices as a two-dimensional array, tensors can have any number of

dimensions. Thus both a vector and a matrix are tensors.

Although the inertia tensor is called a tensor, for our purposes it is always two-

dimensional. In other words, it is always just a matrix. It is sometimes called the “mass

matrix,” and we could call it the “inertia matrix,” I suppose, but it's not a term that I've

heard used. For most of this topic I'll just talk about the
inertia tensor
, meaning the

matrix representing all the moments of inertia of an object; this follows the normal

idiom of game development.

The inertia tensor in three dimensions is a 3

3 matrix that is characteristic of a

rigid body (in other words, we keep an inertia tensor for each body, just as each body

has its own mass). Along the leading diagonals the tensor has the moment of inertia

about each of its axes—X, Y, and Z:

×

⎡

⎤

I
x

⎣

⎦

I
y

I
z

where
I
x
is the moment of inertia of the object about its X axis
through its center of

mass
; similarly for
I
y
and
I
z
.

The remaining entries don't hold moments of inertia. They are called “products

of inertia” and are defined in this way:

n

=

I
ab

m
i
a
p
i
b
p
i

i

=

1