Skeletal Animation and Skinning A hardware friendly software










- Slides: 10
Skeletal Animation and Skinning A (hardware friendly) software approach By: Brandon Furtwangler
What is skeletal animation? n The idea: n Define a hierarchy of ‘bones’ n Define animations that transform the bones n Deform the vertices of a mesh based on the bones that they are attached to n Common alternative n Key frame animation n Pro’s § Easier to understand § Quicker n Con’s § More memory usage § Less flexible
Why is skeletal animation better? n Allows you to ‘skin’ meshes n Matrix Palette Skinning (hardware friendly) n Multiple bones per vertex (weights) n Greater flexibility n Play multiple animations on a single mesh n n combine run animation on legs with salute animation on arms Mix animations together n overlap walk with run to get a smooth transition
Implementing MPS n Things we need: n Model n Vertex § Bone IDs § Weights n Skeleton § Bones (in a hierarchy) § Parent § Static Transform (bind pose) § Dynamic Transform (animation controlled) § Palette entry (to be multiplied by vertex)
Implementing MPS part 2 n The skinning process: n Update Dynamic Transforms from animations n Recalculate matrix palette n Transform vertex positions/normals by matrix palette entries n n Multiple bones per vertex? How to handle normals?
Demo 1 n Single bone per vertex n Limited rotations n n Joints overlap Ugly Quick What if we want to model an elbow?
Demo 2 n 2 bones per vertex n linear combination n Outside edge looks great n Inside edge is pinched n n Why? How do we fix it? § More bones? § Any other ideas?
Demo 3 n 4 bones/weights per vertex n 4 bones for a single joint n Limitation for hardware (constant registers) n Evenly blend between 4 bones with Bernstein polynomials n Both outside and inside of joint look reasonable n More bones for complicated muscle simulation
Ideas for an animation system n Quaternion based rotations n Nice interpolation n Animation State n Multiple animations with blend factor n Animation n n Multiple Tracks (one per bone in animation) Track § Quaternion Spline (for joint rotations)
Questions? n demo’s at http: //www. msu. edu/~furtwan 1