S95 Arial, Bld, YW8, 37 points, 105% line spacing

Sculpted Data Driven and Physically Based
Character Deformation
Patrick Coleman
CSC 2529 Character Animation
February 12, 2003
Papers
“Pose Space Deformation: A Unified Approach to Shape
and Interpolation and Skeleton-Driven Deformation”
J.P. Lewis, Matt Cordner, Nickson Fong
“DyRT: Dynamic Response Textures for Real Time
Deformation Simulation with Graphics Hardware”
Doug L. James and Dinesh K. Pai
“Interactive Skeleton-Driven Dynamic Deformations”
Capell, Green, Curless, Duchamp, Popovic
Pose Space Deformation
Common Approaches to Character Deformation
•Skeletal driven deformation for articulated body motion
•Shape interpolation among a set of poses for facial
animation
Pose Space Deformation
•Combine these approaches and address their
shortcomings
Skeletal Subspace Deformation
•Surface Points are tied to joints, linearly weighted
p   wk Lk  L


0 1
k
0
P
Lp
• User often tweaks weights to achieve desired response
• Restrictive subspace not capable of achieving all desired
poses
• Leads to unnatural deformations to certain poses
• Maya smooth skinning
SSD Problems
Elbow twist
Collapsing Elbow
…Maya Example…
Shape Interpolation
Linearly combine a number of key poses using slider
values
Shape Interpolation
Linearly combine a number of key poses using slider
values
S   wk  Sk  S0 
k
• Allows user to explicitly sculpt poses
• Positional interpolation is only C0 continuous
• Poses can add up or cancel out unexpectedly
• Maya Blend Shape
…Maya Example…
PSD
Skeletal-driven deformation among a set of key poses
•User sculpts set of poses
•Scattered data interpolation to determine configuration
driven deformation
Facial animation among a set of key poses
•Scattered data interpolation driven by relative key pose
weights
Scattered Data Interpolation
Locally weight nearby configurations using precomputed
radial basis functions:
x'   wk || x  xk ||
k
•Allows smooth interpolation among configurations if
desired
•Precomputation to achieve real-time deformation
•User must avoid very similar poses
Suggested Facial Space
Adapted from psychological research
Aroused
alarmed
delighted
frustrated
Displeasure
Pleasure
serene
tired
Sleepy
PSD Summary
•Data driven approach to dynamic deformation
•Data supplied by user sculpting “important” poses
•Scattered data interpolation among key poses to
determine intermediate poses using radial basis
functions
•Can be skeleton driven
•Can be blendShape’d* (sliders to distribute weight
among poses)
*no, “blendShape’d” is not a real word.
Dynamic Response Textures
“Geometrically complex, interactive, physically-based,
volumetric, deformation models, with negligible main
CPU costs.”
Modal Analysis to determine how modal deformation of
surface points
Hardware vertex program to drive deformations based
on rigid body motion
Modal Analysis
Reduce vibration to a set of frequency modes
Overall Deformation is a superposition of deformation
due to each mode
Mu  Cu  Ku  F
u:
M:
D:
K:
displacement
mass matrix
dampening coefficient matrix (=sM)
stiffness coefficient matrix
Modal Analysis
Determine a set of vibration modes:
Qi
q i  2i wi q i   q i 
mi
2
i
Natural frequency of vibration:
Modal dampening:
ki
i 
mi

c
1 
i 
   i 
2mii 2  i

Low Frequency Modes for Torso
Applying Modal Vibration
Assume system is a rest at time t0
Integrate solution to modal ODE to time t
Solution is dependent on force matrix,
modal vibration frequency, and modal dampening
factor
Throw away high frequency modes
Not very noticeable
Can cause temporal aliasing
Rigid Motion Excitement
Allows use of skeletal motion to drive local modal deformation
Consider both linear and angular velocity
Euler discretization of acceleration
Digital filter for efficient integration
Assumes modal vibration is not dependent on skeletal deformation
• This allows pre-computation of all deformation parameters
Interpolate deformation with base pose across affected region
Hardware Acceleration
NVIDIA GeForce3 vertex program
DyRT Video
DyRT Summary
•Fast application of tissue response to dynamic
movement
•Modal analysis to reduce deformation to discrete
modes
•Precomputation of response functions
•Part of the rendering pipeline (hardware program)
•Models wearing tight red shorts with SIGGRAPH logos
embedded in a Texan theme are kind of scary…
Interactive Skeleton Driven Dynamic
Deformations
Simulation of secondary motion of deformable objects in
real time
Framework:
• Embed object in volumetric grid with bone constraints
• Constrain grid to lie along bones for efficient computation
• Superpose locally linear simulations driven by single bone
• Hierarchical basis on grid to adapt to level of detail
Problem Formulation
Rest state of object:
r (x)   ra a (x) ra a (x)  x
a
Deformation:
d(x, t )  q a (t ) a (x)
Overall system state:
p(x, t )  (ra  q a (t )) (x)
a
Hierarchical grid basis
Subdivide grid over detail of object
Trilinear basis functions:
   a 
falls off from one to zero along lines of control
mesh
ps (x, t )   (ra  qa (t )) a (x)
aS
Equations of Motion
Euler-Lagrange equations:
d  T (q)  V (q)
 Q  q  0


dt  q 
q
First three terms reduce to numerical integration
Integration:
Subdivide control mesh to desired level
Compute basis function values at each vertex
Tetrahedralize domain (allows piecewise linear
approximation of functions)
Integrate over each tetrahedron using linear approximations
of basis functions
System setup
Manual definition of
skeleton, control mesh,
regions of local
linearization
Solving the System
Linearize equations at each time step (Baraff/Witkin 98)
Δq  h(q  Δv)
V
(M  h I  h S)Δv  h( q 
 Q  hSq)
q
2
Conjugate Gradient solver applied to sparse linear
system of second equation, direct solution of first
equation follows
Bone Constraints
Some velocities are known
Second equation reduces to:
A22Δvu  bk  A21Δvk
Same form, lower complexity
Position Constraints
Allow for interaction with other objects, user
Velocity enforced in CG solver by projecting constraint
onto simulation space velocity components
(Barraff/Witkin 98)
Introduction of
new detail
coefficients in
basis
Local Linearization
Locally linearize influence of nearby bones
Use manually assigned vertex weights to blend among
regions
Independently solve each region
Composite regional solutions:
Δv   W Q Δv
i
i
iT
i
Other details
•Twisting motion is penalized with stiffness dependent
on potential gradient along deformation
•Adaptive addition and removal of basis functions in
hierarchy
ISDDD Video
ISDDD Summary
•Real-time dynamic response for elastically deformable
models
•Objects are embedded in a hierarchical control mesh to
which the finite element method is applied
•Alignment of control grid to skeleton simplifies solution
•Locally linearized regions of influence to reduce
complexity
•Point constraints allow interaction
Useful References
(if you really want to understand what’s going on)
Dynamic Response Textures
• “Good Vibrations: Modal Dynamics for Graphics and Animation” Pentland and
Williams, SIGGRAPH 1989
• “A User-Programmable Vertex Engine” Lindholm, Kilgard, Moreton, SIGGRAPH
2001
Interactive Skeleton Driven Dynamic Deformations
• “Large Steps in Cloth Simulation” Baraff & Witkin, SIGGRAPH 1998
• “Physically Based Modeling” Baraff & Witkin, SIGGRAPH 2001 Course notes,
available from Pixar’s web site
• “An Introduction to the Conjugate Gradient Method Without the Agonizing Pain”
Shewchuk, 1994. See citation in Baraff/Witkin 1998