lect10-anim-skin.pdf - CMSC 425 Dave Mount Roger Eastman CMSC 425 Lecture 10 Skeletal Animation and Skinning Reading Chapt 11 of Gregory Game Engine

# lect10-anim-skin.pdf - CMSC 425 Dave Mount Roger Eastman...

• 9

This preview shows page 1 - 2 out of 9 pages.

CMSC 425 Dave Mount & Roger Eastman CMSC 425: Lecture 10 Skeletal Animation and Skinning Reading: Chapt 11 of Gregory, Game Engine Architecture . Recap: Last time we introduced the principal elements of skeletal models and discussed forward kinematics. Recall that a skeletal model consists of a collection of joints, which have been joined into a rooted tree structure. Each joint of the skeleton is associated with a coordinate frame which specifies its position and orientation in space. Each joint can be rotated (subject to sum constraints). The assignment of rotation angles (or generally rotation transformations) to the individual joints defines the skeleton’s pose , that is, its geometrical configuration in space. Joint rotations are defined relative to a default pose, called the bind pose (or reference pose ). Last time, we showed how to determine the skeleton’s configuration from a set of joint angles. This is called forward kinematics . (In contrast, inverse kinematics involves the question of determining how to set the joint angles to achieve some desired configuration, such as grasping a door knob.) Today we will discuss how animation clips are represented, how to cover these skeletons with “skin” in order to form a realistic model, and how to move the skin smoothly as part of the animation process. Local and Global Pose Transformations: Recall from last time that, given a joint j (not the root), its parent joint is denoted p ( j ). We assume that each joint j is associated with two transformations, the local-pose transformation , denoted T [ p ( j ) j ] , which converts a point in j ’s coordinate system to its representation in its parent’s coordinate system, and the inverse local-pose transformation , which reverses this process. (These transformations may be repre- sented explicitly, say, as a 4 × 4 matrix in homogeneous coordinates, or implicitly by given a translation vector and a rotation, expressed, say as a quaternion.) Recall that these transformations are defined relative to the bind pose. By chaining (that is, multiplying) these matrices together in an appropriate manner, for any two joints j and k , we can generally compute the transformation T [ k j ] that maps points in j ’s coordinate frame to their representation in k ’s coordinate frame (again, with respect to the bind pose.) Let M (for “ Model ”) denote the joint associated with the root of the model tree. We define the global pose transformation , denoted T [ M j ] , to be the transformation that maps points expressed locally relative to joint j ’s coordinate frame to their representation relative to the model’s global frame. Clearly, T [ M j ] can be computed as the product of the local-pose transformations from j up to the root of the tree. Meta-Joints: One complicating issue involving skeletal animation arises from the fact that dif- ferent joints have different numbers of degrees of freedom. A clever trick that can be used to store joints with multiple degrees of freedom (like a shoulder) is to break the into two or more separate joints, one for each degree of freedom. These meta-joints