On Vertex Skeleton Binding

I've been thinking about how I bind mesh vertices to the skeleton tonight. The approach I've used so far is to create cut planes at each joint to help partition the mesh into segments for each bone. For every vertex in the mesh, one of the following happens:

  1. The vertex lies neatly between the cut planes for two connected joints and is assigned to the bone between them.
  2. The vertex lies squarely on one side of a cut plane and is marked as belonging to either a root or leaf joint.

Partitioning the mesh gets tricky for joints with multiple children. To get clean partitions between the parent joint and each of its children (and possibly parent), it is necessary to define additional cut planes in between the joint's adjacent connections:

In the above, the root joint (center) has 3 children and 3 cut planes to divide the space between them. Each child of the root only has one child, so their cut planes (green) are relatively simple. The lines in white indicate the vector representing a vertex's point of attachment on the skeleton.