Fast Automatic Skinning Transformations Alec Jacobson Ilya Baran Ladislav Kavan Jovan Popović Olga Sorkine
August 8, 2012
ETH Zurich Disney Research Zurich
ETH Zurich Adobe Systems, Inc.
ETH Zurich
#
Real-time performance critical for interactive design and animation
August 8, 2012 Alec Jacobson 2
2D 3D
#
Real-time performance critical for interactive design and animation
August 8, 2012 Alec Jacobson 3
2D 3D
# August 8, 2012 Alec Jacobson 4
We want speeds measured in microseconds
80k triangles 20µs per iteration
# August 8, 2012 Alec Jacobson 5
We want speeds measured in microseconds
80k triangles 20µs per iteration
#
This means speed comparable to rendering
August 8, 2012 Alec Jacobson 6 30fps
#
Linear Blend Skinning preferred for real-time performance
August 8, 2012 Alec Jacobson 7
place skeleton in shape
#
Linear Blend Skinning preferred for real-time performance
August 8, 2012 Alec Jacobson 8
place skeleton in shape compute/paint weights
#
Linear Blend Skinning preferred for real-time performance
August 8, 2012 Alec Jacobson 9
place skeleton in shape compute/paint weights deform bones
#
Linear Blend Skinning preferred for real-time performance
August 8, 2012 Alec Jacobson 10
place skeleton in shape compute/paint weights deform bones
v0i =
mX
j=1
wj(vi)Tj
✓vi
1
◆
#
Linear Blend Skinning preferred for real-time performance
August 8, 2012 Alec Jacobson 11
place skeleton in shape compute/paint weights deform bones
#
Linear Blend Skinning preferred for real-time performance
August 8, 2012 Alec Jacobson 12
place skeleton in shape compute/paint weights deform bones
#
Linear Blend Skinning preferred for real-time performance
August 8, 2012 Alec Jacobson 13
place skeleton in shape compute/paint weights deform bones
#
Linear Blend Skinning preferred for real-time performance
August 8, 2012 Alec Jacobson 14
place skeleton in shape compute/paint weights deform bones
15 bones * 3x4 matrix =
180 degrees of freedom
#
LBS generalizes to different handle types
August 8, 2012 Alec Jacobson 15
skeletons
v0i =
mX
j=1
wj(vi)Tj
✓vi
1
◆
#
regions
LBS generalizes to different handle types
August 8, 2012 Alec Jacobson 16
skeletons
v0i =
mX
j=1
wj(vi)Tj
✓vi
1
◆
#
regions
LBS generalizes to different handle types
August 8, 2012 Alec Jacobson 17
skeletons
v0i =
mX
j=1
wj(vi)Tj
✓vi
1
◆
#
regions
LBS generalizes to different handle types
August 8, 2012 Alec Jacobson 18
skeletons points
v0i =
mX
j=1
wj(vi)Tj
✓vi
1
◆
#
regions
LBS generalizes to different handle types
August 8, 2012 Alec Jacobson 19
skeletons points
v0i =
mX
j=1
wj(vi)Tj
✓vi
1
◆
#
User specifies subset of parameters, optimize to find remaining ones
August 8, 2012 Alec Jacobson 20
Full optimization
Mesh vertex positions
#
User specifies subset of parameters, optimize to find remaining ones
August 8, 2012 Alec Jacobson 21
Full optimization
Reduced model
Skinning degrees of freedom
#
User specifies subset of parameters, optimize to find remaining ones
August 8, 2012 Alec Jacobson 22
Full optimization
Reduced model
Matrix form
#
User specifies subset of parameters, optimize to find remaining ones
August 8, 2012 Alec Jacobson 23
Full optimization
Reduced model
Matrix form
Reduced optimization
#
Enforce user constraints as linear equalities
August 8, 2012 Alec Jacobson 24
User constraints
Reduced optimization
Full
Position only
Unconstrained
#
Enforce user constraints as linear equalities
August 8, 2012 Alec Jacobson 25
User constraints
Reduced optimization
Full
Position only
Unconstrained
#
Enforce user constraints as linear equalities
August 8, 2012 Alec Jacobson 26
User constraints
Reduced optimization
Full
Position only
Unconstrained
#
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 27
Full energies
#
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 28
Full energies
triangles Liu et al. 08
“spokes” Sorkine & Alexa 07
“spokes and rims” Chao et al. 10
tetrahedra Chao et al. 10
#
Global step: Fix , minimize with respect to
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 29
Full energies
V0R
Local step: Fix , minimize with respect to RV0
Local/Global optimization
#
Global step: large, sparse linear solve
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 30
Full energies
Local step: Fix , minimize with respect to RV0
Local/Global optimization
V0 = A�1b
precompute
#
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 31
Full energies
Local step: 3x3 SVD for each rotation in R
Local/Global optimization
Global step: large, sparse linear solve V0 = A�1b
#
Global step: small, dense linear solve
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 32
Full energies
Local step: 3x3 SVD for each rotation in R
Local/Global optimization
T = A�1b
precompute
Similar to: [Huang et al. 06] [Der et al. 06] [Au et al. 07] [Hildebrandt et al. 12]
Substitute
#
Direct reduction of elastic energies brings speed up and regularization…
August 8, 2012 Alec Jacobson 33
#
Direct reduction of elastic energies brings speed up and regularization…
August 8, 2012 Alec Jacobson 34
Full ARAP solution
#
Direct reduction of elastic energies brings speed up and regularization…
August 8, 2012 Alec Jacobson 35
Full ARAP solution
Our smooth subspace solution
#
Local step: 3x3 SVD for each rotation in
Global step: small, dense linear solve
We reduce any as-rigid-as-possible energy
August 8, 2012
But #rotations ~ full mesh discretization
Alec Jacobson 36
Full energies
R
Local/Global optimization
T = A�1b
Substitute
#
Global step: small, dense linear solve
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 37
Full energies
R
Local/Global optimization
Substitute
T = A�1b
Local step: 3x3 SVD for each rotation in Cluster
Ek
#
Rotation evaluations may be reduced by clustering in weight space
August 8, 2012 Alec Jacobson 38
Full energies
triangles Liu et al. 08
“spokes” Sorkine & Alexa 07
“spokes and rims” Chao et al. 10
tetrahedra Chao et al. 10
#
Rotation evaluations may be reduced by k-means clustering in weight space
August 8, 2012 Alec Jacobson 39
Full energies
xj =
2
6664
w1(vj)w2(vj)
...wm(vj)
3
7775
weight space
#
Rotation evaluations may be reduced by clustering in weight space
August 8, 2012 Alec Jacobson 40
Full energies
r = 2 r = 4 r = 64
#
Rotation evaluations may be reduced by clustering in weight space
August 8, 2012 Alec Jacobson 41
Full energies
r = 2 r = 4 r = 64
#
Global step: small, dense linear solve
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 42
Full energies
R
Local/Global optimization
T = A�1b
Local step: 3x3 SVD for each rotation in
#rotations ~ #T, independent of full mesh resolution
Substitute
Cluster
Ek
#
Real-time automatic degrees of freedom
August 8, 2012 Alec Jacobson 43
#
Real-time automatic degrees of freedom
August 8, 2012 Alec Jacobson 44
#
With more and more user constraints we fall back to standard skinning
August 8, 2012 Alec Jacobson 45
#
With more and more user constraints we fall back to standard skinning
August 8, 2012 Alec Jacobson 46
#
With more and more user constraints we fall back to standard skinning
August 8, 2012 Alec Jacobson 47
#
With more and more user constraints we fall back to standard skinning
August 8, 2012 Alec Jacobson 48
#
Extra weights would expand subspace…
August 8, 2012 Alec Jacobson 49
#
Extra weights would expand subspace…
August 8, 2012 Alec Jacobson 50
#
Extra weights would expand subspace…
August 8, 2012 Alec Jacobson 51
#
Overlapping b-spline “bumps” in weight space
August 8, 2012 Alec Jacobson 52
farthest point sampling
xj =
2
6664
w1(vj)w2(vj)
...wm(vj)
3
7775
weight space
#
Overlapping b-spline “bumps” in weight space
August 8, 2012 Alec Jacobson 53
b-spline basis parameterized by distance in weight space
in weight space
xj =
2
6664
w1(vj)w2(vj)
...wm(vj)
3
7775
weight space
#
Overlapping b-spline “bumps” in weight space
August 8, 2012 Alec Jacobson 54
b-spline basis parameterized by distance in weight space
in weight space
xj =
2
6664
w1(vj)w2(vj)
...wm(vj)
3
7775
weight space
#
no extra weights
Extra weights expand deformation subspace
August 8, 2012 Alec Jacobson 55
15 extra weights
#
no extra weights
Extra weights expand deformation subspace
August 8, 2012 Alec Jacobson 56
15 extra weights
#
Subspace now rich enough for fast variational modeling
August 8, 2012 Alec Jacobson 57 Full non-linear optimization
[Botsch et al. 2006]
Our reduced method
#
Subspace now rich enough for fast variational modeling
August 8, 2012 Alec Jacobson 58 Full non-linear optimization
[Botsch et al. 2006]
Our reduced method
#
Subspace now rich enough for fast variational modeling
August 8, 2012 Alec Jacobson 59 Full non-linear optimization
[Botsch et al. 2006]
Our reduced method
#
Subspace now rich enough for fast variational modeling
August 8, 2012 Alec Jacobson 60 Full non-linear optimization
[Botsch et al. 2006]
Our reduced method
#
Subspace now rich enough for fast variational modeling
August 8, 2012 Alec Jacobson 61 Full non-linear optimization
[Botsch et al. 2006]
Our reduced method
#
Subspace now rich enough for fast variational modeling
August 8, 2012 Alec Jacobson 62 Full non-linear optimization
[Botsch et al. 2006]
Our reduced method
#
Final algorithm is simple and FAST
August 8, 2012 Alec Jacobson 63
Precomputation per shape+rig - Compute any additional weights - Construct, prefactor system matrices
For a 50K triangle mesh: 12 seconds
2.7 seconds
#
Final algorithm is simple and FAST
August 8, 2012 Alec Jacobson 64
Precomputation per shape+rig - Compute any additional weights - Construct, prefactor system matrices
Precomputation when switching constraint type - Re-factor global step system
For a 50K triangle mesh: 12 seconds
2.7 seconds
6 milliseconds
#
Final algorithm is simple and FAST
August 8, 2012 Alec Jacobson 65
Precomputation per shape+rig - Compute any additional weights - Construct, prefactor system matrices
Precomputation when switching constraint type - Re-factor global step system
~30 iterations global: #weights by #weights linear solve local: #rotations SVDs
For a 50K triangle mesh: 12 seconds
2.7 seconds
6 milliseconds
22 microseconds
[McAdams et al. 2011]
# August 8, 2012 Alec Jacobson 66
Demo
Lightning FAST automatic skinning transformations
#
Extra weights and disjoint skeletons make flexible control easy
August 8, 2012 Alec Jacobson 67
From Cartoon Animation by Preston Blair
#
Extra weights and disjoint skeletons make flexible control easy
August 8, 2012 Alec Jacobson 68
#
Extra weights and disjoint skeletons make flexible control easy
August 8, 2012 Alec Jacobson 69
#
Extra weights and disjoint skeletons make flexible control easy
August 8, 2012 Alec Jacobson 70
#
Our reduction preserves nature of different energies, at no extra cost
August 8, 2012 Alec Jacobson 71
Surface ARAP Volumetric ARAP
V0surf = MsurfT V0
vol
= Mvol
T
#
Our reduction preserves nature of different energies, at no extra cost
August 8, 2012 Alec Jacobson 72
Surface ARAP Volumetric ARAP
V0surf = MsurfT V0
vol
= Mvol
T
#
Simple drag-only interface for point handles
August 8, 2012 Alec Jacobson 73
#
Simple drag-only interface for point handles
August 8, 2012 Alec Jacobson 74
#
Simple drag-only interface for point handles
August 8, 2012 Alec Jacobson 75
#
Skinning rig enables FAST deformation
● Substitute to reduce DOFs
August 8, 2012 Alec Jacobson 76
#
Skinning rig enables FAST deformation
● Substitute to reduce DOFs ● Cluster rotations to reduce energy eval.
August 8, 2012 Alec Jacobson 77
#
Skinning rig enables FAST deformation
● Substitute to reduce DOFs ● Cluster rotations to reduce energy eval. ● Additional weights to expand subspace
August 8, 2012 Alec Jacobson 78
#
Skinning rig enables FAST deformation
● Substitute to reduce DOFs ● Cluster rotations to reduce energy eval. ● Additional weights to expand subspace
August 8, 2012 Alec Jacobson 79
Each innovation takes advantage of input skinning rig
#
Future work and discussion
● Alternative additional weights: sparsity? ● Joint limits, balance, etc.
August 8, 2012 Alec Jacobson 80
#
Acknowledgements
We are grateful to Peter Schröder, Emily Whiting, and Maurizio Nitti. We thank Eftychios Sifakis for his open source fast 3×3 SVD code. This work was supported in part by an SNF award 200021_137879 and by a gift from Adobe Systems.
August 8, 2012 Alec Jacobson 81
Fast Automatic Skinning Transformations http://igl.ethz.ch/projects/fast Alec Jacobson ([email protected]), Ilya Baran, Ladislav Kavan, Jovan Popović, Olga Sorkine
Top Related