Game Development Reference
In-Depth Information
Joint offset : Joints have a fixed offset position in the parent node's space.
When we skin a joint, we change the position of each joint to match the mesh.
This new fixed position acts as a pivot point for the joint movement. The
pivot point of an elbow is at a fixed location relative to the shoulder joint.
This position is denoted by a vector position in the joint local matrix and
is stored in m31 , m32 , and m33 indices of the matrix. The offset matrix also
holds initial rotational values.
Understanding the basics of skinning
The process of attaching a renderable skin to its articulated skeleton is called
skinning. There are many skinning algorithms depending on the complexity of
the task. However, for gaming, the most common algorithm is smooth skinning.
Smooth skinning is also known as multi-matrix skinning, blended skinning, or
linear blend skinning.
Simple skinning
Binding is a term common in skinning. It refers to the initial assignment of vertices
of a mesh to underlying joints and then assigning the relevant information to the
vertices. By using simple skinning, we attach every vertex in our mesh to exactly one
joint. When we change the orientation of any joint in the skeleton, or in other words,
when the skeleton is posed, the vertices are transformed using the joint's world
matrix. Hence, if the vertex is attached to a single joint, then it is transformed using
the equation v'=v.mjoint of the world space matrix.
Simple skinning is not adequate for complex models. It defines that a vertex is
attached to exactly one joint. For example, a vertex at the elbow of your articulated
arm is affected by two bones, the lower arm and the upper arm. The transformation
of that vertex should be affected by the joint matrices of both bones.
Smooth skinning
Smooth skinning is an extension of simple skinning. We can attach a vertex with
more than one joint. Each attachment with a joint will be provided by a weight value.
The key point is that the sum total of all weights affecting a vertex is 1 as shown in
the following formula:
∑w i =1, w 1 +w 2 +w 3 +w 4 ......w n =1
 
Search WWH ::




Custom Search