90 likes | 234 Vues
This guide explores keyframe animation methods in computer graphics, emphasizing the setting of target positions for vertices at keyframes and the importance of linear interpolation for smooth transitions. It addresses common issues that can arise during animation, such as misplacement of vertices, particularly at feet, and suggests solutions such as adding keyframes. Additionally, it introduces polar decomposition for transformation matrices, highlighting the separation of rotation and scaling components for more accurate transformations. These techniques draw on foundational work in physically-based approaches to shape blending.
E N D
Animation CS418 Computer Graphics John C. Hart
Keyframe Animation • Set target positions for vertices at “key” frames in animations • Linearly interpolate vertex positions between targets at intervening frames • Lots can go wrong (like the feet) • Can be fixed by adding key frames • Piecewise linear approach to animation • Need same number and configuration of vertices at key frames for intervening frames to make sense • Often need to find correspondences between two collections of vertices A motivating example from: Sederberg & Greenwood, A Physically-BasedApproach to 2-D Shape Blending, Proc. SIGGRAPH 92
Keyframe Animation • Set target positions for vertices at “key” frames in animations • Linearly interpolate vertex positions between targets at intervening frames • Lots can go wrong (like the feet) • Can be fixed by adding key frames • Piecewise linear approach to animation • Need same number and configuration of vertices at key frames for intervening frames to make sense • Often need to find correspondences between two collections of vertices A motivating example from: Sederberg & Greenwood, A Physically-BasedApproach to 2-D Shape Blending, Proc. SIGGRAPH 92
Polar Decomposition • Linear affine interpolation of transformation matrices does not accommodate rotation • Let M be the upper-left 3x3 submatrix ofa 4x4 homogeneous transformation matrix • Decompose: M = QS • Q: non-linearly varying part (rotation) • S: linearly varying part (scale, shear) • Initialize Q = M • Replace Q = ½ (Q + Q-T) until it convergence to a 3x3 rotation matrix (QT = Q-1) • Then Q contains the rotation part of M • And S = QTM contains the scaling part • Interpolate S linearly per-element • Interpolate Q using quaternions