Fast Automatic Skinning Transformations Alec Jacobson ETH Zurich Ilya Baran Disney Research Zurich Ladislav Kavan ETH Zurich Jovan Popovi ć Adobe Systems, Inc. Olga Sorkine ETH Zurich August 8, 2012
Real-time performance critical for interactive design and animation 2D 3D August 8, 2012 Alec Jacobson # 2
Real-time performance critical for interactive design and animation 2D 3D August 8, 2012 Alec Jacobson # 3
We want speeds measured in microseconds 80k triangles 20µs per iteration August 8, 2012 Alec Jacobson # 4
We want speeds measured in microseconds 80k triangles 20µs per iteration August 8, 2012 Alec Jacobson # 5
This means speed comparable to rendering 30fps August 8, 2012 Alec Jacobson # 6
Linear Blend Skinning preferred for real-time performance place skeleton in shape August 8, 2012 Alec Jacobson # 7
Linear Blend Skinning preferred for real-time performance place skeleton in shape compute/paint weights August 8, 2012 Alec Jacobson # 8
Linear Blend Skinning preferred for real-time performance place skeleton in shape compute/paint weights deform bones August 8, 2012 Alec Jacobson # 9
Linear Blend Skinning preferred for real-time performance m ✓ v i ◆ X v 0 i = w j ( v i ) T j 1 j =1 place skeleton in shape compute/paint weights deform bones August 8, 2012 Alec Jacobson # 10
Linear Blend Skinning preferred for real-time performance place skeleton in shape compute/paint weights deform bones August 8, 2012 Alec Jacobson # 11
Linear Blend Skinning preferred for real-time performance place skeleton in shape compute/paint weights deform bones August 8, 2012 Alec Jacobson # 12
Linear Blend Skinning preferred for real-time performance place skeleton in shape compute/paint weights deform bones August 8, 2012 Alec Jacobson # 13
Linear Blend Skinning preferred for real-time performance 15 bones * 3x4 matrix = 180 degrees of freedom place skeleton in shape compute/paint weights deform bones August 8, 2012 Alec Jacobson # 14
LBS generalizes to different handle types m ✓ v i ◆ X v 0 i = w j ( v i ) T j 1 j =1 skeletons August 8, 2012 Alec Jacobson # 15
LBS generalizes to different handle types m ✓ v i ◆ X v 0 i = w j ( v i ) T j 1 j =1 regions skeletons August 8, 2012 Alec Jacobson # 16
LBS generalizes to different handle types m ✓ v i ◆ X v 0 i = w j ( v i ) T j 1 j =1 regions skeletons August 8, 2012 Alec Jacobson # 17
LBS generalizes to different handle types m ✓ v i ◆ X v 0 i = w j ( v i ) T j 1 j =1 regions points skeletons August 8, 2012 Alec Jacobson # 18
LBS generalizes to different handle types m ✓ v i ◆ X v 0 i = w j ( v i ) T j 1 j =1 regions points skeletons August 8, 2012 Alec Jacobson # 19
User specifies subset of parameters, optimize to find remaining ones Full optimization Mesh vertex positions August 8, 2012 Alec Jacobson # 20
User specifies subset of parameters, optimize to find remaining ones Full optimization Reduced model Skinning degrees of freedom August 8, 2012 Alec Jacobson # 21
User specifies subset of parameters, optimize to find remaining ones Full optimization Reduced model Matrix form August 8, 2012 Alec Jacobson # 22
User specifies subset of parameters, optimize to find remaining ones Full optimization Reduced model Matrix form Reduced optimization August 8, 2012 Alec Jacobson # 23
Enforce user constraints as linear equalities Reduced optimization User constraints Full Position only Unconstrained August 8, 2012 Alec Jacobson # 24
Enforce user constraints as linear equalities Reduced optimization User constraints Full Position only Unconstrained August 8, 2012 Alec Jacobson # 25
Enforce user constraints as linear equalities Reduced optimization User constraints Full Position only Unconstrained August 8, 2012 Alec Jacobson # 26
We reduce any as-rigid-as-possible energy Full energies August 8, 2012 Alec Jacobson # 27
We reduce any as-rigid-as-possible energy Full energies triangles tetrahedra “spokes” “spokes and rims” Chao et al. 10 Liu et al. 08 Chao et al. 10 Sorkine & Alexa 07 August 8, 2012 Alec Jacobson # 28
We reduce any as-rigid-as-possible energy Full energies Local/Global optimization Global step: Fix , minimize with respect to V 0 R Local step: Fix , minimize with respect to R V 0 August 8, 2012 Alec Jacobson # 29
We reduce any as-rigid-as-possible energy Full energies Local/Global optimization precompute V 0 = A � 1 b Global step: large, sparse linear solve Local step: Fix , minimize with respect to R V 0 August 8, 2012 Alec Jacobson # 30
We reduce any as-rigid-as-possible energy Full energies Local/Global optimization Global step: large, sparse linear solve V 0 = A � 1 b Local step: 3x3 SVD for each rotation in R August 8, 2012 Alec Jacobson # 31
We reduce any as-rigid-as-possible energy Full energies Local/Global optimization precompute Substitute A − 1 ˜ T = ˜ Global step: small, dense linear solve b Similar to: Local step: 3x3 SVD for each rotation in R [Huang et al. 06] [Der et al. 06] [Au et al. 07] [Hildebrandt et al. 12] August 8, 2012 Alec Jacobson # 32
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… Full ARAP solution August 8, 2012 Alec Jacobson # 34
Direct reduction of elastic energies brings speed up and regularization… Full ARAP solution Our smooth subspace solution August 8, 2012 Alec Jacobson # 35
We reduce any as-rigid-as-possible energy Full energies Local/Global optimization Substitute A − 1 ˜ T = ˜ Global step: small, dense linear solve b Local step: 3x3 SVD for each rotation in R But #rotations ~ full mesh discretization August 8, 2012 Alec Jacobson # 36
We reduce any as-rigid-as-possible energy Full energies Local/Global optimization Substitute A − 1 ˜ T = ˜ Global step: small, dense linear solve b Cluster Local step: 3x3 SVD for each rotation in R E k August 8, 2012 Alec Jacobson # 37
Rotation evaluations may be reduced by clustering in weight space Full energies triangles tetrahedra “spokes” “spokes and rims” Sorkine & Alexa 07 Chao et al. 10 Liu et al. 08 Chao et al. 10 August 8, 2012 Alec Jacobson # 38
Rotation evaluations may be reduced by k-means clustering in weight space Full energies weight space w 1 ( v j ) w 2 ( v j ) x j = . . . w m ( v j ) August 8, 2012 Alec Jacobson # 39
Rotation evaluations may be reduced by clustering in weight space Full energies r = 2 r = 4 r = 64 August 8, 2012 Alec Jacobson # 40
Rotation evaluations may be reduced by clustering in weight space Full energies r = 2 r = 4 r = 64 August 8, 2012 Alec Jacobson # 41
We reduce any as-rigid-as-possible energy Full energies Local/Global optimization Substitute A − 1 ˜ T = ˜ Global step: small, dense linear solve b Cluster Local step: 3x3 SVD for each rotation in R E k #rotations ~ #T , independent of full mesh resolution August 8, 2012 Alec Jacobson # 42
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 weight space w 1 ( v j ) w 2 ( v j ) x j = . . . w m ( v j ) farthest point sampling August 8, 2012 Alec Jacobson # 52
Overlapping b-spline “bumps” in weight space in weight space weight space w 1 ( v j ) w 2 ( v j ) x j = . . . w m ( v j ) b-spline basis parameterized by distance in weight space August 8, 2012 Alec Jacobson # 53
Overlapping b-spline “bumps” in weight space in weight space weight space w 1 ( v j ) w 2 ( v j ) x j = . . . w m ( v j ) b-spline basis parameterized by distance in weight space August 8, 2012 Alec Jacobson # 54
Extra weights expand deformation subspace no extra weights 15 extra weights August 8, 2012 Alec Jacobson # 55
Extra weights expand deformation subspace no extra weights 15 extra weights August 8, 2012 Alec Jacobson # 56
Recommend
More recommend