Skeletal Animation and Skinning A hardware friendly software

  • Slides: 10
Download presentation
Skeletal Animation and Skinning A (hardware friendly) software approach By: Brandon Furtwangler

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

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

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 §

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

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

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

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

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

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

Questions? n demo’s at http: //www. msu. edu/~furtwan 1