Skinning Cubic Bzier Splines and Catmull-Clark Subdivision Surfaces - - PowerPoint PPT Presentation

skinning cubic b zier splines and catmull clark
SMART_READER_LITE
LIVE PREVIEW

Skinning Cubic Bzier Splines and Catmull-Clark Subdivision Surfaces - - PowerPoint PPT Presentation

Skinning Cubic Bzier Splines and Catmull-Clark Subdivision Surfaces Songrun Liu George Mason University Alec Jacobson Columbia University Yotam Gingold George Mason University SPONSORED BY SA2014.SIGGRAPH.ORG Raster Deformation


slide-1
SLIDE 1

SPONSORED BY SA2014.SIGGRAPH.ORG

Skinning Cubic Bézier Splines and Catmull-Clark Subdivision Surfaces

Songrun Liu Alec Jacobson Yotam Gingold George Mason University Columbia University George Mason University

slide-2
SLIDE 2

SA2014.SIGGRAPH.ORG SPONSORED BY

Raster Deformation

slide-3
SLIDE 3

SA2014.SIGGRAPH.ORG SPONSORED BY

Raster Deformation

slide-4
SLIDE 4

SA2014.SIGGRAPH.ORG SPONSORED BY

Vector Graphics Deformation

slide-5
SLIDE 5

SA2014.SIGGRAPH.ORG SPONSORED BY

Vector Graphics Deformation

slide-6
SLIDE 6

SA2014.SIGGRAPH.ORG SPONSORED BY

Vector Graphics Deformation

slide-7
SLIDE 7

SA2014.SIGGRAPH.ORG SPONSORED BY

Our Approach

slide-8
SLIDE 8

SA2014.SIGGRAPH.ORG SPONSORED BY

Our Approach

slide-9
SLIDE 9

SA2014.SIGGRAPH.ORG SPONSORED BY

Our Approach

slide-10
SLIDE 10

SA2014.SIGGRAPH.ORG SPONSORED BY

Our Approach

Deforming All Control Points

slide-11
SLIDE 11

SA2014.SIGGRAPH.ORG SPONSORED BY

Our Approach

Deforming All Control Points Deforming Joint Control Points

slide-12
SLIDE 12

SA2014.SIGGRAPH.ORG SPONSORED BY

Related Work

slide-13
SLIDE 13

SA2014.SIGGRAPH.ORG SPONSORED BY

2D Vector Graphics

  • Splines in 2D — Cubic Bézier splines.

BC(t) =

n

X

i=0

bi,n(t)Ci, t ∈ [0, 1]

slide-14
SLIDE 14

SA2014.SIGGRAPH.ORG SPONSORED BY

2D Vector Graphics

  • Splines in 2D — Cubic Bézier splines.

BC(t) =

n

X

i=0

bi,n(t)Ci, t ∈ [0, 1]

slide-15
SLIDE 15

SA2014.SIGGRAPH.ORG SPONSORED BY

2D Vector Graphics

  • Splines in 2D — Cubic Bézier splines.

Siggraph

BC(t) =

n

X

i=0

bi,n(t)Ci, t ∈ [0, 1]

slide-16
SLIDE 16

SA2014.SIGGRAPH.ORG SPONSORED BY

2D Vector Graphics

  • Splines in 2D — Cubic Bézier splines.

Siggraph

BC(t) =

n

X

i=0

bi,n(t)Ci, t ∈ [0, 1]

slide-17
SLIDE 17

SA2014.SIGGRAPH.ORG SPONSORED BY

3D Vector Graphics

  • Subdivision Surfaces in 3D — Catmull-Clark Subdivision Surfaces.
slide-18
SLIDE 18

SA2014.SIGGRAPH.ORG SPONSORED BY

3D Vector Graphics

  • Subdivision Surfaces in 3D — Catmull-Clark Subdivision Surfaces.
slide-19
SLIDE 19

SA2014.SIGGRAPH.ORG SPONSORED BY

3D Vector Graphics

  • Inherently C2 everywhere except extraordinary vertices (C1)

normal control point

  • Subdivision Surfaces in 3D — Catmull-Clark Subdivision Surfaces.
slide-20
SLIDE 20

SA2014.SIGGRAPH.ORG SPONSORED BY

3D Vector Graphics

  • Inherently C2 everywhere except extraordinary vertices (C1)
  • Sharp creases can also be specified
  • Subdivision Surfaces in 3D — Catmull-Clark Subdivision Surfaces.

sharp crease

slide-21
SLIDE 21

SA2014.SIGGRAPH.ORG SPONSORED BY

Linear Blend Skinning(LBS)

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆

slide-22
SLIDE 22

SA2014.SIGGRAPH.ORG SPONSORED BY

Linear Blend Skinning(LBS)

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆ H

slide-23
SLIDE 23

SA2014.SIGGRAPH.ORG SPONSORED BY

Linear Blend Skinning(LBS)

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆ wj H

slide-24
SLIDE 24

SA2014.SIGGRAPH.ORG SPONSORED BY

Linear Blend Skinning(LBS)

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆ wj Tj H

slide-25
SLIDE 25

SA2014.SIGGRAPH.ORG SPONSORED BY

Linear Blend Skinning(LBS)

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆ wj Tj H

slide-26
SLIDE 26

SA2014.SIGGRAPH.ORG SPONSORED BY

Linear Blend Skinning(LBS)

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆

slide-27
SLIDE 27

SA2014.SIGGRAPH.ORG SPONSORED BY

Difficulty Skinning Cubic Bézier Curve

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆

v = BC(t)

Apply skinning to

slide-28
SLIDE 28

SA2014.SIGGRAPH.ORG SPONSORED BY

Difficulty in Deforming A Cubic Bézier Curve

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆

v = BC(t)

Apply skinning to

v

slide-29
SLIDE 29

SA2014.SIGGRAPH.ORG SPONSORED BY

Difficulty in Deforming A Cubic Bézier Curve

v = BC(t)

Apply skinning to

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆

v

slide-30
SLIDE 30

SA2014.SIGGRAPH.ORG SPONSORED BY

Difficulty in Deforming A Cubic Bézier Curve

v = BC(t)

Apply skinning to

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆

v

slide-31
SLIDE 31

SA2014.SIGGRAPH.ORG SPONSORED BY

Difficulty in Deforming A Cubic Bézier Curve

v = BC(t)

Apply skinning to

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆

slide-32
SLIDE 32

SA2014.SIGGRAPH.ORG SPONSORED BY

Difficulty in Deforming A Cubic Bézier Curve

v = BC(t)

Apply skinning to

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆

slide-33
SLIDE 33

SA2014.SIGGRAPH.ORG SPONSORED BY

Difficulty in Deforming A Cubic Bézier Curve

No longer a cubic Bézier curve!

v = BC(t)

Apply skinning to

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆

slide-34
SLIDE 34

SA2014.SIGGRAPH.ORG SPONSORED BY

Difficulty in Deforming A Cubic Bézier Curve

Target(t)

No longer a cubic Bézier curve!

v = BC(t)

Apply skinning to

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆

slide-35
SLIDE 35

SA2014.SIGGRAPH.ORG SPONSORED BY

How it works

  • Minimizing the L2 norm

Target(t)

slide-36
SLIDE 36

SA2014.SIGGRAPH.ORG SPONSORED BY

How it works

  • Minimizing the L2 norm

BC0(t)− Target(t)

slide-37
SLIDE 37

SA2014.SIGGRAPH.ORG SPONSORED BY

E(C0) = Z

L

kBC0(t) Target(t)k2 dt

How it works

  • Minimizing the L2 norm
slide-38
SLIDE 38

SA2014.SIGGRAPH.ORG SPONSORED BY

E(C0) = Z

L

kBC0(t) Target(t)k2 dt

How it works

  • Minimizing the L2 norm
slide-39
SLIDE 39

SA2014.SIGGRAPH.ORG SPONSORED BY

E(C0) = Z

L

kBC0(t) Target(t)k2 dt

How it works

  • Minimizing the L2 norm
slide-40
SLIDE 40

SA2014.SIGGRAPH.ORG SPONSORED BY

How it works

  • Minimizing the L2 norm

E(C0) = Z

L

kBC0(t) Target(t)k2 dt

slide-41
SLIDE 41

SA2014.SIGGRAPH.ORG SPONSORED BY

How it works

  • Minimizing the L2 norm

E(C0) = Z

L

kBC0(t) Target(t)k2 dt

C0 = X

j2H

Tj ˆ Wj ˆ A1

slide-42
SLIDE 42

SA2014.SIGGRAPH.ORG SPONSORED BY

How it works

  • Minimizing the L2 norm

Pre-computed

E(C0) = Z

L

kBC0(t) Target(t)k2 dt

C0 = X

j2H

Tj ˆ Wj ˆ A1

slide-43
SLIDE 43

SA2014.SIGGRAPH.ORG SPONSORED BY

How it works

  • Minimizing the L2 norm

Pre-computed

LBS: v0 =

X

j2H

wj(v)Tj ✓ v 1 ◆

E(C0) = Z

L

kBC0(t) Target(t)k2 dt

C0 = X

j2H

Tj ˆ Wj ˆ A1

slide-44
SLIDE 44

SA2014.SIGGRAPH.ORG SPONSORED BY

How it works

  • Minimizing the L2 norm

Pre-computed

LBS: v0 = X

j2H

Tjwj(v) ✓ v 1 ◆

E(C0) = Z

L

kBC0(t) Target(t)k2 dt

C0 = X

j2H

Tj ˆ Wj ˆ A1

slide-45
SLIDE 45

SA2014.SIGGRAPH.ORG SPONSORED BY

Our approach extends to 3D

E(C0) = Z

L

kBC0(t) Target(t)k2 dt

slide-46
SLIDE 46

SA2014.SIGGRAPH.ORG SPONSORED BY

Our approach extends to 3D

E(C0) = Z

D

kGC0(u, v) Target(u, v)k2 dudv

slide-47
SLIDE 47

SA2014.SIGGRAPH.ORG SPONSORED BY

3D Live Demo

slide-48
SLIDE 48

SA2014.SIGGRAPH.ORG SPONSORED BY

3D Results

Original Original Original Original

slide-49
SLIDE 49

SA2014.SIGGRAPH.ORG SPONSORED BY

Why 2D is more complicated?

slide-50
SLIDE 50

SA2014.SIGGRAPH.ORG SPONSORED BY

Why 2D is more complicated? In practice:

slide-51
SLIDE 51

SA2014.SIGGRAPH.ORG SPONSORED BY

Why 2D is more complicated? In practice:

slide-52
SLIDE 52

SA2014.SIGGRAPH.ORG SPONSORED BY

Why 2D is more complicated? In practice:

slide-53
SLIDE 53

SA2014.SIGGRAPH.ORG SPONSORED BY

Bézier Spline Junctions

Angle C0 C1 Original Deformed G1 flexible

(optional)

default

slide-54
SLIDE 54

SA2014.SIGGRAPH.ORG SPONSORED BY

Bézier Spline Junctions

Angle C0 C1 Original Deformed G1 flexible

(optional)

default

slide-55
SLIDE 55

SA2014.SIGGRAPH.ORG SPONSORED BY

Bézier Spline Junctions

Angle C0 C1 Original Deformed G1 flexible

(optional)

default

slide-56
SLIDE 56

SA2014.SIGGRAPH.ORG SPONSORED BY

Bézier Spline Junctions

Angle C0 C1 Original Deformed G1 flexible

(optional)

default

slide-57
SLIDE 57

SA2014.SIGGRAPH.ORG SPONSORED BY

2D Live Demo

slide-58
SLIDE 58

SA2014.SIGGRAPH.ORG SPONSORED BY

Applied on different weights

Harmonic Coordinates [Joshi et al. 2007] Shepard’s Weights [Shepard 1968] Bounded Biharmonic Weights [Jacobson et al. 2011]

slide-59
SLIDE 59

SA2014.SIGGRAPH.ORG SPONSORED BY

Performance

# faces pre-compute time(secs) seconds per update 4150 9 0.0002

in C++

# curves pre-compute time(secs) seconds per update 1324 3.2 0.03

in Python

slide-60
SLIDE 60

SA2014.SIGGRAPH.ORG SPONSORED BY

Limitation and Future Work

slide-61
SLIDE 61

SA2014.SIGGRAPH.ORG SPONSORED BY

Limitation and Future Work

  • Other primitives in vector graphics
  • circular arcs, NURBS, clothoid splines.
  • linear or radial gradients, diffusion curves, texture.
slide-62
SLIDE 62

SA2014.SIGGRAPH.ORG SPONSORED BY

Limitation and Future Work

  • Other primitives in vector graphics
  • circular arcs, NURBS, clothoid splines.
  • linear or radial gradients, diffusion curves, texture.

Additional Control Points Deformed Original

no control points

  • Adaptivity
slide-63
SLIDE 63

SA2014.SIGGRAPH.ORG SPONSORED BY

Limitation and Future Work

Additional Control Points Deformed Original

no control points

slide-64
SLIDE 64

SA2014.SIGGRAPH.ORG SPONSORED BY

Limitation and Future Work

[Schneider 1990]

slide-65
SLIDE 65

SA2014.SIGGRAPH.ORG SPONSORED BY

Limitation and Future Work

[Schneider 1990] [Our approach]

slide-66
SLIDE 66

SA2014.SIGGRAPH.ORG SPONSORED BY

Limitation and Future Work

Additional Control Points Deformed Original

no control points

  • Adaptivity

[Schneider 1990] [Our approach]

  • Other primitives in vector graphics
  • circular arcs, NURBS, clothoid splines.
  • linear or radial gradients, diffusion curves, texture.
slide-67
SLIDE 67

SA2014.SIGGRAPH.ORG SPONSORED BY

Limitation and Future Work

Additional Control Points Deformed Original

no control points

  • Adaptivity
  • Other applications
  • motion path planning

[Schneider 1990] [Our approach]

  • Other primitives in vector graphics
  • circular arcs, NURBS, clothoid splines.
  • linear or radial gradients, diffusion curves, texture.
slide-68
SLIDE 68

SA2014.SIGGRAPH.ORG SPONSORED BY

Thank You.

Songrun Liu, sliu11@gmu.edu Alec Jacobson, jacobson@cs.columbia.edu Yotam Gingold, ygingold@gmu.edu project webpage: http://cs.gmu.edu/~ygingold/splineskin/, code coming soon.

Acknowledgements: We thank support from NSF, Google, Intel, The Walt Disney Company, and Autodesk. Special thanks to Michelle Lee for her 2D artwork and Blender Foundation for 3D models from “Big Buck Bunny”.

slide-69
SLIDE 69

SA2014.SIGGRAPH.ORG SPONSORED BY

Junction between Curves (smooth) C1 continuity G1 flexibility

slide-70
SLIDE 70

SA2014.SIGGRAPH.ORG SPONSORED BY

Junction between Curves (smooth) C1 continuity G1 flexibility

slide-71
SLIDE 71

SA2014.SIGGRAPH.ORG SPONSORED BY

Junction between Curves (smooth) C1 continuity G1 flexibility

slide-72
SLIDE 72

SA2014.SIGGRAPH.ORG SPONSORED BY

Junction between Curves (sharp) No Angle Preservation Angle Preservation

slide-73
SLIDE 73

SA2014.SIGGRAPH.ORG SPONSORED BY

Junction between Curves (sharp) No Angle Preservation Angle Preservation

slide-74
SLIDE 74

SA2014.SIGGRAPH.ORG SPONSORED BY

2D Vector Graphics

BC(t) = CM¯ t = C     −1 3 −3 1 3 −6 3 −3 3 1         t3 t2 t 1     = Cmt,

  • Splines in 2D — Cubic Bézier splines.
slide-75
SLIDE 75

SA2014.SIGGRAPH.ORG SPONSORED BY

2D Vector Graphics

BC(t) = CM¯ t = C     −1 3 −3 1 3 −6 3 −3 3 1         t3 t2 t 1     = Cmt,

  • Splines in 2D — Cubic Bézier splines.
slide-76
SLIDE 76

SA2014.SIGGRAPH.ORG SPONSORED BY

2D Vector Graphics

BC(t) = CM¯ t = C     −1 3 −3 1 3 −6 3 −3 3 1         t3 t2 t 1     = Cmt,

  • Splines in 2D — Cubic Bézier splines.
slide-77
SLIDE 77

SA2014.SIGGRAPH.ORG SPONSORED BY

2D Vector Graphics

BC(t) = CM¯ t = C     −1 3 −3 1 3 −6 3 −3 3 1         t3 t2 t 1     = Cmt,

  • Splines in 2D — Cubic Bézier splines.
slide-78
SLIDE 78

SA2014.SIGGRAPH.ORG SPONSORED BY

How it works

E(C0) = Z

D

  • GC0(p) −

h

X

i=1

wi(GC(p))TiGC(p)

  • 2

dp

A(p) = mpmT

p

ˆ A = Z

D

A(p) dp C0 =

h

X

i=1

Ti ˆ Wi ˆ A1 ˆ Wi = C Z

D

wi(Cmp)A(p) dp

Pre-computed

  • Minimizing the L2 norm
slide-79
SLIDE 79

SA2014.SIGGRAPH.ORG SPONSORED BY

How it works

E(C0) = Z

D

  • GC0(p) −

h

X

i=1

wi(GC(p))TiGC(p)

  • 2

dp

A(p) = mpmT

p

ˆ A = Z

D

A(p) dp C0 =

h

X

i=1

Ti ˆ Wi ˆ A1 ˆ Wi = C Z

D

wi(Cmp)A(p) dp

Pre-computed

v0 = X

j2H

wj(v)Tj ✓ v 1 ◆

LBS:

  • Minimizing the L2 norm
slide-80
SLIDE 80

SA2014.SIGGRAPH.ORG SPONSORED BY

How it works

E(C0) = Z

D

  • GC0(p) −

h

X

i=1

wi(GC(p))TiGC(p)

  • 2

dp

C0 =

h

X

i=1

Ti ˆ Wi ˆ A1 ˆ Wi = C Z

D

wi(Cmp)A(p) dp ˆ A−1 =     16 −24 16 −4. −24 69 1

3

−57 1

3

16 16 −57 1

3

69 1

3

−24 −4 16 −24 16    

Pre-computed

  • Play the video of minimizing the L2 norm
slide-81
SLIDE 81

SA2014.SIGGRAPH.ORG SPONSORED BY

# control vertices # control faces precompute time (secs) seconds per update example pyramid 5 5 1e-3 6e-6 torus 32 32 8e-3 6e-6 butterfly 1216 1222 0.3 5e-5 squirrel 4307 4278 4 2e-4 rabbit 4139 4150 9 2e-4

3D Performance Dual-core, 2.4 GHz Intel Core i5, in C++.

slide-82
SLIDE 82

SA2014.SIGGRAPH.ORG SPONSORED BY

# control vertices # control faces precompute time (secs) seconds per update example pyramid 5 5 1e-3 6e-6 torus 32 32 8e-3 6e-6 butterfly 1216 1222 0.3 5e-5 squirrel 4307 4278 4 2e-4 rabbit 4139 4150 9 2e-4

3D Performance Dual-core, 2.4 GHz Intel Core i5, in C++.

slide-83
SLIDE 83

SA2014.SIGGRAPH.ORG SPONSORED BY

# G1 & angle constraints precomp. secs

seconds per update example

# curves # handles

regular flexible Boxes (Fig. 6) 4 2 4 0.03 2e-4 0.008 Spoon (Fig. 3) 7 2 7 0.08 2e-4 0.02 Clam (Fig. 1) 56 3 50 0.1 8e-4 0.1 Boy 226 5 118 0.7 5e-3 0.4 Zapfino 379 3 316 1.4 4e-3 0.65 Worm 395 2 261 8.1 3e-2 2.75 Penguin on Lion 400 9 168 2.5 1e-2 0.64 Man 516 4 240 1.3 1e-2 0.78 Seven Turtles 1324 5 914 3.2 3e-2 2.5 Octopus 1706 8 1181 11 2e-2 4.2 Coat of Arms 9496 4 8159 42 1e-1 16.1

2D Performance Dual-core, 2 GHz Intel Core i7, in Python.

slide-84
SLIDE 84

SA2014.SIGGRAPH.ORG SPONSORED BY

# G1 & angle constraints precomp. secs

seconds per update example

# curves # handles

regular flexible Boxes (Fig. 6) 4 2 4 0.03 2e-4 0.008 Spoon (Fig. 3) 7 2 7 0.08 2e-4 0.02 Clam (Fig. 1) 56 3 50 0.1 8e-4 0.1 Boy 226 5 118 0.7 5e-3 0.4 Zapfino 379 3 316 1.4 4e-3 0.65 Worm 395 2 261 8.1 3e-2 2.75 Penguin on Lion 400 9 168 2.5 1e-2 0.64 Man 516 4 240 1.3 1e-2 0.78 Seven Turtles 1324 5 914 3.2 3e-2 2.5 Octopus 1706 8 1181 11 2e-2 4.2 Coat of Arms 9496 4 8159 42 1e-1 16.1

2D Performance Dual-core, 2 GHz Intel Core i7, in Python.

slide-85
SLIDE 85

SA2014.SIGGRAPH.ORG SPONSORED BY

# G1 & angle constraints precomp. secs

seconds per update example

# curves # handles

regular flexible Boxes (Fig. 6) 4 2 4 0.03 2e-4 0.008 Spoon (Fig. 3) 7 2 7 0.08 2e-4 0.02 Clam (Fig. 1) 56 3 50 0.1 8e-4 0.1 Boy 226 5 118 0.7 5e-3 0.4 Zapfino 379 3 316 1.4 4e-3 0.65 Worm 395 2 261 8.1 3e-2 2.75 Penguin on Lion 400 9 168 2.5 1e-2 0.64 Man 516 4 240 1.3 1e-2 0.78 Seven Turtles 1324 5 914 3.2 3e-2 2.5 Octopus 1706 8 1181 11 2e-2 4.2 Coat of Arms 9496 4 8159 42 1e-1 16.1

2D Performance Dual-core, 2 GHz Intel Core i7, in Python.