During the skinning process, vertices in the model's mesh (refer to Chapter 2, Replacing 2D Sprites with 3D Models, for details on mesh models) are associated with one or more bones. The skin near a joint, for example, would generally be affected by a movement of either bone attached to the joint. To calculate the exact effect that the bone's movement will have on the vertices, a so-called vertex weight or blend weight is assigned. In the softer parts of the body, the movement of a bone will compress the tissues underneath the skin more before it affects the skin, while in areas where little soft tissue cushions the bone, the effect is far more direct. The weight assigned to a vertex-bone connection thus quantifies this.
We will, of course, have to define this connection formally as well, using something like the following code:
struct Vertex { float x, y, z; float nx, ny, nz; float s0, t0; float index0, index1; float weight0, weight1; };
This particular...