Graphics Reference
In-Depth Information
The axis itself must rotate to describe rotations in other planes, and the axis is a
linear representation. Euler angles prefer the arbitrary axes chosen (i.e., the mag-
nitude of the derivatives depends on the direction of rotation) and allow gimbal
lock under successive 90 rotations. The uniformity of the quaternion therefore
leaves it as the best choice in many cases, particularly for freely moving bodies.
Now consider the problem of specifying an object's motion or the forces that
inspire that motion. We often want to choose the reference frame within which
it is easiest to create this specification. For many objects, a suitably chosen Euler
frame is ideal. For example, an automobile's front wheels rotate about exactly two
axes relative to the car frame. An airplane's controls affect yaw, roll, and pitch in
its own reference frame.
Once the root frame has been transformed, the rigid or dynamic body attached
to it can also be moved by simply transforming all of the vertices from the root
frame to the world frame. Note that although it is common to place the root frame's
origin within the body (and often at the center of mass), this is just a reference
frame, and its origin can lie outside the geometry itself.
35.5.3 Articulated Body
Many objects that we would like to model as a single scene element change their
shape as well as their root position and orientation. Some of these objects can be
modeled as a collection of bodies that are individually rigid but which transform
relative to one another. For example, an automobile can be modeled as a rigid
frame and four rigid wheels that rotate relative to the frame. Each vertex in the
automobile is contained within exactly one of the bodies, and can therefore be
expressed relative to one body's frame.
A natural way of organizing the bodies relative to one another is a small “scene
graph” subtree (see Chapter 6). There is some root body, whose children are other
bodies in its frame and the vertices defining the shape of the root body. The other
bodies recursively have their own children. In the case of the automobile, it would
be natural to choose the car's frame as the root body. However, a nice property
of a tree is that any node can be chosen as the root and the result is still a tree.
So we could choose the front-left wheel to be the root, with the frame as its only
child body, and the frame would then have three other wheels as child bodies. That
choice would probably make it awkward to express the forces exerted by the drive
train on the wheels since the tree has little symmetry, but it is a mathematically
valid model of the system.
We call this structure an articulated rigid body because the edges of the scene
graph typically correspond to joints in the model. A joint is a constraint on the
relative movement of two bodies. For the automobile, these are the axles. For an
android they would be the knees, elbows, waist, etc.; for a building they would
be the door hinges and grooves within which the windows slide. Geometry is
often added to the model to visually depict the physical basis for the constraint.
However, the animation joints need have no visual representation or physical ana-
log. Typically one puts the root frame of a body at the joint where it is connected
to its parent, since that is the frame in which it is most natural to express the joint's
constraint and forces on the two bodies.
An advantage of the articulated rigid body is that complex dynamic objects,
such as most machines, can be represented without vertex animation. This is more
 
 
Search WWH ::




Custom Search