View
23
Download
0
Category
Preview:
Citation preview
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 (jacobson@inf.ethz.ch), Ilya Baran, Ladislav Kavan, Jovan Popović, Olga Sorkine
Recommended