Game Development Reference
In-Depth Information
The final quantity is torque, which is the rotational equivalent to force. Ap-
plying force to an object at any place other than its center of mass will generate
torque. To compute the torque, we take a vector r from the center of mass to the
point where the force is applied and perform a cross product as follows:
τ = r
×
F .
This will apply the torque counterclockwise around the vector direction, as per
the right-hand rule. We can sum all torques to determine the total torque on an
object:
τ tot =
j
r j ×
F j .
As with force, we can use Newton's second law to find the relationship be-
tween torque and angular acceleration α :
τ = I α.
1.6.4 Numerical Integration for Orientation Using Matrices
To update our orientation, we ideally would want to do something like this:
R i +1 = R i + i .
However, as R i is a matrix and ω i is a vector, this is not possible. Instead, we do
the following:
R i +1 = R i + h [ ω ] × i R i ,
where
0
ω 3
ω 2
.
ω 3
ω 1
[ ω ] × =
0
ω 2
ω 1
0
To understand why, let us consider the basis vectors of the rotation matrix R and
how they change when an infinitesimal angular velocity is applied. For simplic-
ity's sake, let us assume that the angular velocity is applied along one of the basis
vectors; Figure 1.7 shows the other two. Recall that the derivative is a linear
quantity, whereas angular velocity is a rotational quantity. What we need to do is
change the rotational change of each axis to a linear change. We can do this by
computing the infinitesimal linear velocity at the tip of a given basic vector and
then adding this to get the new basis vector.
Recall that Equation (1.5) gives the linear velocity at a displacement r for
angular velocity ω . So for each basis vector r j , we could compute ω
×
r j and,