Fast Automatic Skinning Transformations

of 82 /82
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

Embed Size (px)

Transcript of Fast Automatic Skinning Transformations

Fast Automatic Skinning Transformations Alec Jacobson Ilya Baran Ladislav Kavan Jovan Popovi Olga Sorkine
August 8, 2012
ETH Zurich
August 8, 2012 Alec Jacobson 2
2D 3D
August 8, 2012 Alec Jacobson 3
2D 3D
80k triangles 20µs per iteration
# August 8, 2012 Alec Jacobson 5
We want speeds measured in microseconds
80k triangles 20µs per iteration
#
August 8, 2012 Alec Jacobson 6 30fps
#
August 8, 2012 Alec Jacobson 7
place skeleton in shape
August 8, 2012 Alec Jacobson 8
place skeleton in shape compute/paint weights
#
August 8, 2012 Alec Jacobson 9
place skeleton in shape compute/paint weights deform bones
#
August 8, 2012 Alec Jacobson 10
place skeleton in shape compute/paint weights deform bones
v0 i =
August 8, 2012 Alec Jacobson 11
place skeleton in shape compute/paint weights deform bones
#
August 8, 2012 Alec Jacobson 12
place skeleton in shape compute/paint weights deform bones
#
August 8, 2012 Alec Jacobson 13
place skeleton in shape compute/paint weights deform bones
#
August 8, 2012 Alec Jacobson 14
place skeleton in shape compute/paint weights deform bones
15 bones * 3x4 matrix =
180 degrees of freedom
skeletons
skeletons
skeletons
skeletons points
v0 i =
skeletons points
v0 i =
User specifies subset of parameters, optimize to find remaining ones
August 8, 2012 Alec Jacobson 20
Full optimization
User specifies subset of parameters, optimize to find remaining ones
August 8, 2012 Alec Jacobson 21
Full optimization
Reduced model
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
User constraints
Reduced optimization
User constraints
Reduced optimization
User constraints
Reduced optimization
August 8, 2012 Alec Jacobson 27
Full energies
August 8, 2012 Alec Jacobson 28
Full energies
“spokes” Sorkine & Alexa 07
tetrahedra Chao et al. 10
#
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 29
Full energies
Local/Global optimization
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 30
Full energies
Local/Global optimization
August 8, 2012 Alec Jacobson 31
Full energies
Local/Global optimization
#
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 32
Full energies
Local/Global optimization
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
Global step: small, dense linear solve
We reduce any as-rigid-as-possible energy
August 8, 2012
Alec Jacobson 36
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 37
Full energies
Ek
Rotation evaluations may be reduced by clustering in weight space
August 8, 2012 Alec Jacobson 38
Full energies
“spokes” Sorkine & Alexa 07
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
Rotation evaluations may be reduced by clustering in weight space
August 8, 2012 Alec Jacobson 40
Full energies
#
Rotation evaluations may be reduced by clustering in weight space
August 8, 2012 Alec Jacobson 41
Full energies
#
We reduce any as-rigid-as-possible energy
August 8, 2012 Alec Jacobson 42
Full energies
#rotations ~ #T, independent of full mesh resolution
Substitute
Cluster
Ek
August 8, 2012 Alec Jacobson 43
#
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
#
August 8, 2012 Alec Jacobson 49
#
August 8, 2012 Alec Jacobson 50
#
August 8, 2012 Alec Jacobson 51
#
farthest point sampling
b-spline basis parameterized by distance in weight space
in weight space
b-spline basis parameterized by distance in weight space
in weight space
August 8, 2012 Alec Jacobson 55
15 extra weights
August 8, 2012 Alec Jacobson 56
15 extra weights
August 8, 2012 Alec Jacobson 57 Full non-linear optimization
[Botsch et al. 2006]
August 8, 2012 Alec Jacobson 58 Full non-linear optimization
[Botsch et al. 2006]
August 8, 2012 Alec Jacobson 59 Full non-linear optimization
[Botsch et al. 2006]
August 8, 2012 Alec Jacobson 60 Full non-linear optimization
[Botsch et al. 2006]
August 8, 2012 Alec Jacobson 61 Full non-linear optimization
[Botsch et al. 2006]
August 8, 2012 Alec Jacobson 62 Full non-linear optimization
[Botsch et al. 2006]
Precomputation per shape+rig - Compute any additional weights - Construct, prefactor system matrices
For a 50K triangle mesh: 12 seconds
2.7 seconds
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
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
Demo
#
August 8, 2012 Alec Jacobson 67
From Cartoon Animation by Preston Blair
#
August 8, 2012 Alec Jacobson 68
#
August 8, 2012 Alec Jacobson 69
#
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
V0 surf = MsurfT V0
#
Our reduction preserves nature of different energies, at no extra cost
August 8, 2012 Alec Jacobson 72
Surface ARAP Volumetric ARAP
V0 surf = MsurfT V0
#
#
#
Substitute to reduce DOFs
#
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
#
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