fast automatic skinning transformations

Post on 11-Sep-2021

21 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related