# Fast Automatic Skinning Transformations

of 82
/82

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

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