i
i
i
i
i
i
i
i
4.4. Vertex Blending 81
Figure 4.10. An arm consisting of a forearm and an upper arm is animated using rigid-
body transforms of two separate objects to the left. The elbow does not appear realistic.
To the right, vertex blending is used on one single object. The next-to-rightmost arm
illustrates what happens when a simple skin directly joins the two parts to cover the
elbow. The rightmost arm illustrates what happens when vertex blending is used, and
some vertices are blended with different weights: (2/3, 1/3) means that the vertex weighs
the transform from the upper arm by 2/3 and from the forearm by 1/3. This figure also
shows a drawback of vertex blending in the rightmost illustration. Here, folding in the
inner part of the elbow is visible. Better results can be achieved with more bones, and
with more carefully selected weights.
is because two separate objects are used, and therefore, the joint consists
of overlapping parts from these two separate objects. Clearly, it would be
better to use just one single object. However, static model parts do not
address the problem of making the joint flexible.
Vertex blending is one possible solution to this problem [770, 1376].
This technique has several other names, such as skinning, enveloping,and
skeleton-subspace deformation. While the exact origin of the algorithm
presented here is unclear, defining bones and having skin react to changes
is an old concept in computer animation [807]. In its simplest form, the
forearm and the upper arm are animated separately as before, but at the
joint, the two parts are connected through an elastic “skin.” So, this elastic
part will have one set of vertices that are transformed by the forearm matrix
and another set that are transformed by the matrix of the upper arm. This
results in triangles whose vertices may be transformed by different matrices,
in contrast to using a single matrix per triangle. See Figure 4.10. This basic
technique is sometimes called stitching [1376].
By taking this one step further, one can allow a single vertex to be trans-
formed by several different matrices, with the resulting locations weighted
and blended together. This is done by having a skeleton of bones for the
animated object, where each bone’s transform may influence each vertex
by a user-defined weight. Since the entire arm may be “elastic,” i.e., all
vertices may be affected by more than one matrix, the entire mesh is often
called a skin (over the bones). See Figure 4.11. Many commercial model-