58
© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 Subdivision overview CS4620 Lecture 18 1

Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Subdivision overview

CS4620 Lecture 18

1

Page 2: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

• Piecewise linear curve too jagged for you? Lop off the corners!– results in a curve with twice as many corners

• Still too jagged? Cut off the new corners– process converges

to a smooth curve– Chaikin’s algorithm

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Introduction: corner cutting

2

http://www.multires.caltech.edu/teaching/demos/java/chaikin.htm

Page 3: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

1 12

• Piecewise linear curve too jagged for you? Lop off the corners!– results in a curve with twice as many corners

• Still too jagged? Cut off the new corners– process converges

to a smooth curve– Chaikin’s algorithm

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Introduction: corner cutting

2

http://www.multires.caltech.edu/teaching/demos/java/chaikin.htm

Page 4: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

• Piecewise linear curve too jagged for you? Lop off the corners!– results in a curve with twice as many corners

• Still too jagged? Cut off the new corners– process converges

to a smooth curve– Chaikin’s algorithm

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Introduction: corner cutting

2

http://www.multires.caltech.edu/teaching/demos/java/chaikin.htm

Page 5: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

• Piecewise linear curve too jagged for you? Lop off the corners!– results in a curve with twice as many corners

• Still too jagged? Cut off the new corners– process converges

to a smooth curve– Chaikin’s algorithm

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Introduction: corner cutting

2

http://www.multires.caltech.edu/teaching/demos/java/chaikin.htm

Page 6: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

• Piecewise linear curve too jagged for you? Lop off the corners!– results in a curve with twice as many corners

• Still too jagged? Cut off the new corners– process converges

to a smooth curve– Chaikin’s algorithm

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Introduction: corner cutting

2

http://www.multires.caltech.edu/teaching/demos/java/chaikin.htm

Page 7: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Corner cutting in equations

• New points are linear combinations of old ones• Different treatment for odd-numbered and even-

numbered points.

3

pk2i = (3pk�1i + pk�1

i+1 )/4

pk2i+1 = (pk�1i + 3pk�1

i+1 )/4

pk2i

pk2i+1

pk�1i+1

pk�1i

Page 8: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Spline-splitting math for B-splines

• Can use spline-matrix math from previous lecture to split a B-spline segment in two at s = t = 0.5.

• Result is especially nice because the rules for adjacent segments agree (not true for all splines).

4

SL =

2

664

s3

s2

s1

3

775

SR =

2

664

s3

3s2(1� s) s2

3s(1� s)2 2s(1� s) s(1� s)3 (1� s)2 (1� s) 1

3

775

PL = M�1SLMP

PR = M�1SRMP

PR =

2

664

1 6 1 00 4 4 00 1 6 10 0 4 4

3

775

PL =

2

664

4 4 0 01 6 1 00 4 4 00 1 6 1

3

775

Page 9: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Subdivision for B-splines

• Control vertices of refined spline are linear combinations of the c.v.s of the coarse spline

ODD EVEN

5

Page 10: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Drawing a picture of the rule

• Conventionally illustrate subdivision rules as a “mask” that you match against the neighborhood– often implied denominator = sum of weights

6

B-spline

corner-cutting

odd

even

odd

even

1 6

4 4

3 1

1

1 3

Page 11: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7[Stanford CS468 Fall 2010 slides]

Page 12: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

[Stanford CS468 Fall 2010 slides]

Page 13: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

[Stanford CS468 Fall 2010 slides]

Page 14: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

Cubic B-SplineCubic B Spline

evenodd

28

[Stanford CS468 Fall 2010 slides]

Page 15: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

Cubic B-SplineCubic B Spline

evenodd

28

Cubic B-SplineCubic B Spline

evenodd

29

[Stanford CS468 Fall 2010 slides]

Page 16: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

Cubic B-SplineCubic B Spline

evenodd

28

Cubic B-SplineCubic B Spline

evenodd

29

Cubic B-SplineCubic B Spline

evenodd

30

[Stanford CS468 Fall 2010 slides]

Page 17: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

Cubic B-SplineCubic B Spline

evenodd

28

Cubic B-SplineCubic B Spline

evenodd

29

Cubic B-SplineCubic B Spline

evenodd

30

Cubic B-SplineCubic B Spline

evenodd

31

[Stanford CS468 Fall 2010 slides]

Page 18: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

Cubic B-SplineCubic B Spline

evenodd

28

Cubic B-SplineCubic B Spline

evenodd

29

Cubic B-SplineCubic B Spline

evenodd

30

Cubic B-SplineCubic B Spline

evenodd

31

Cubic B-SplineCubic B Spline

evenodd

32

[Stanford CS468 Fall 2010 slides]

Page 19: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

Cubic B-SplineCubic B Spline

evenodd

28

Cubic B-SplineCubic B Spline

evenodd

29

Cubic B-SplineCubic B Spline

evenodd

30

Cubic B-SplineCubic B Spline

evenodd

31

Cubic B-SplineCubic B Spline

evenodd

32

Cubic B-SplineCubic B Spline

evenodd

33

[Stanford CS468 Fall 2010 slides]

Page 20: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

Cubic B-SplineCubic B Spline

evenodd

28

Cubic B-SplineCubic B Spline

evenodd

29

Cubic B-SplineCubic B Spline

evenodd

30

Cubic B-SplineCubic B Spline

evenodd

31

Cubic B-SplineCubic B Spline

evenodd

32

Cubic B-SplineCubic B Spline

evenodd

33

Cubic B-SplineCubic B Spline

evenodd

34

[Stanford CS468 Fall 2010 slides]

Page 21: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

Cubic B-SplineCubic B Spline

evenodd

28

Cubic B-SplineCubic B Spline

evenodd

29

Cubic B-SplineCubic B Spline

evenodd

30

Cubic B-SplineCubic B Spline

evenodd

31

Cubic B-SplineCubic B Spline

evenodd

32

Cubic B-SplineCubic B Spline

evenodd

33

Cubic B-SplineCubic B Spline

evenodd

34

Cubic B-SplineCubic B Spline

evenodd

35

[Stanford CS468 Fall 2010 slides]

Page 22: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

Cubic B-SplineCubic B Spline

evenodd

28

Cubic B-SplineCubic B Spline

evenodd

29

Cubic B-SplineCubic B Spline

evenodd

30

Cubic B-SplineCubic B Spline

evenodd

31

Cubic B-SplineCubic B Spline

evenodd

32

Cubic B-SplineCubic B Spline

evenodd

33

Cubic B-SplineCubic B Spline

evenodd

34

Cubic B-SplineCubic B Spline

evenodd

35

Cubic B-SplineCubic B Spline

evenodd

36

[Stanford CS468 Fall 2010 slides]

Page 23: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

Cubic B-SplineCubic B Spline

evenodd

28

Cubic B-SplineCubic B Spline

evenodd

29

Cubic B-SplineCubic B Spline

evenodd

30

Cubic B-SplineCubic B Spline

evenodd

31

Cubic B-SplineCubic B Spline

evenodd

32

Cubic B-SplineCubic B Spline

evenodd

33

Cubic B-SplineCubic B Spline

evenodd

34

Cubic B-SplineCubic B Spline

evenodd

35

Cubic B-SplineCubic B Spline

evenodd

36

Cubic B-SplineCubic B Spline

evenodd

37

[Stanford CS468 Fall 2010 slides]

Page 24: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18 7

Cubic B-SplineCubic B Spline

even odd

26

Cubic B-SplineCubic B Spline

evenodd

27

Cubic B-SplineCubic B Spline

evenodd

28

Cubic B-SplineCubic B Spline

evenodd

29

Cubic B-SplineCubic B Spline

evenodd

30

Cubic B-SplineCubic B Spline

evenodd

31

Cubic B-SplineCubic B Spline

evenodd

32

Cubic B-SplineCubic B Spline

evenodd

33

Cubic B-SplineCubic B Spline

evenodd

34

Cubic B-SplineCubic B Spline

evenodd

35

Cubic B-SplineCubic B Spline

evenodd

36

Cubic B-SplineCubic B Spline

evenodd

37

Cubic B-SplineCubic B Spline

evenodd

38

[Stanford CS468 Fall 2010 slides]

Page 25: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Subdivision curves

• Key idea: let go of the polynomials as the definition of the curve, and let the refinement rule define the curve

• Curve is defined as the limit of a refinement process– properties of curve depend on the rules– some rules make polynomial curves, some don’t– complexity shifts from implementations to proofs

8

Page 26: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Playing with the rules

• Once a curve is defined using subdivision we can customize its behavior by making exceptions to the rules.

• Example: handle endpoints by simply using the mask [1] at that point.

• Resulting curve is a uniform B-spline in the middle, but near the exceptional points it is something different.– it might not be a polynomial– but it is still linear, still has basis functions– the three coordinates of a surface point are still separate

9

Page 27: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

From curves to surfaces

[Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

10

SubdivisionSubdivision

“Subdivision defines a smooth curve or surface asSubdivision defines a smooth curve or surface as the limit of a sequence of successive refinements”refinements

4 [Sta

nfor

d C

S468

Fal

l 201

0 sl

ides

]

Page 28: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Subdivision surfaces

[Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

11

Page 29: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Generalizing from curves to surfaces

• Two parts to subdivision process• Subdividing the mesh (computing new topology)

– For curves: replace every segment with two segments– For surfaces: replace every face with some new faces

• Positioning the vertices (computing new geometry)– For curves: two rules (one for odd vertices, one for even)

• New vertex’s position is a weighted average of positions of old vertices that are nearby along the sequence

– For surfaces: two kinds of rules (still called odd and even)• New vertex’s position is a weighted average of positions

of old vertices that are nearby in the mesh

12

Page 30: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Subdivision of meshes

• Quadrilaterals– Catmull-Clark 1978

• Triangles– Loop 1987

[Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

13

Page 31: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop regular rules

[Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

14

Page 32: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Catmull-Clark regular rules

15

Page 33: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Creases

• With splines, make creases by turning off continuity constraints

• With subdivision surfaces, make creases by marking edges “sharp”– use different rules for vertices with sharp edges– these rules produce B-splines that depend only on vertices

along crease

[Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

16

Page 34: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Boundaries

• At boundaries the masks do not work– mesh is not manifold; edges do not have two triangles

• Solution: same as crease– shape of boundary is controlled only by vertices along

boundary

[Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

17

Page 35: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Extraordinary vertices

• Vertices that don’t have the “standard” valence• Unavoidable for most topologies• Difference from splines

– treatment of extraordinary vertices is really the only way subdivision surfaces are different from spline patches

[Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

18

Page 36: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Full Loop rules (triangle mesh)

[Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

19

Page 37: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Full Catmull-Clark rules (quad mesh)

[Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

20

Page 38: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

control polyhedron21

Page 39: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

refined control polyhedron

22

Page 40: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

oddsubdivision mask

23

Page 41: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

subdivision level 124

Page 42: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

evensubdivision mask(ordinary vertex)

25

Page 43: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

subdivision level 126

Page 44: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

evensubdivision mask

(extraordinary vertex) 27

Page 45: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

subdivision level 128

Page 46: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

subdivision level 129

Page 47: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

subdivision level 230

Page 48: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

subdivision level 331

Page 49: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

subdivision level 432

Page 50: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop Subdivision Example

limit surface33

Page 51: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Relationship to splines

• In regular regions, behavior is identical• At extraordinary vertices, achieve C1

– near extraordinary, different from splines

• Linear everywhere– mapping from parameter space to 3D is a linear combination

of the control points– “emergent” basis functions per control point

• match the splines in regular regions• “custom” basis functions around extraordinary vertices

34

Page 52: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop vs. Catmull-Clark

[Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

35

Page 53: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop vs. Catmull-Clark

[Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

36

Page 54: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop vs. Catmull-Clark

Loop(after splitting faces)

Catmull-Clark [Sch

röde

r &

Zor

in S

IGG

RA

PH 2

000

cour

se 2

3]

37

Page 55: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Loop with creases

[Hug

ues

Hop

pe]

38

Page 56: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Catmull-Clark with creases

[DeR

ose

et a

l. SI

GG

RA

PH 1

998]

39

Page 57: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Variable sharpness creases

• Idea: subdivide for a few levels using the crease rules, then proceed with the normal smooth rules.

• Result: a soft crease that gets sharper as we increase the number of levels of sharp subdivision steps

40

Clark scheme to admit semi-sharp creases – that is, creases of con-trollable sharpness, a simple example of which is shown in Figure 7.

(a) (b)

(c) (d)

(e)

Figure 7: An example of a semi-sharp crease. The control mesh foreach of these surfaces is the unit cube, drawn in wireframe, wherecrease edges are red and smooth edges are yellow. In (a) the creasesharpness is 0, meaning that all edges are smooth. The sharpnessesfor (b), (c), (d), and (e) are 1, 2, 3, and infinite, respectively.

One approach to achieve semi-sharp creases is to develop subdi-vision rules whose weights are parametrized by the sharpness s ofthe crease. This approach is difficult because it can be quite hardto discover rules that lead to the desired smoothness properties ofthe limit surfaces. One of the roadblocks is that subdivision rulesaround a crease break a symmetry possessed by the smooth rules:typical smooth rules (such as the Catmull-Clark rules) are invariantunder cyclic reindexing, meaning that discrete Fourier transformscan be used to prove properties for vertices of arbitrary valence (cf.Zorin [19]). In the absence of this invariance, each valence mustcurrently be considered separately, as was done by Schweitzer [15].Another difficulty is that such an approach is likely to lead to azoo of rules depending on the number and configuration of creasesthrough a vertex. For instance, a vertex with two semi-sharp creasespassing through it would use a different set of rules than a vertexwith just one crease through it.Our approach is to use a very simple process we call hybrid sub-

division. The general idea is to use one set of rules for a finite but

arbitrary number of subdivision steps, followed by another set ofrules that are applied to the limit. Smoothness therefore dependsonly on the second set of rules. Hybrid subdivision can be used toobtain semi-sharp creases by using infinitely sharp rules during thefirst few subdivision steps, followed by use of the smooth rules forsubsequent subdivision steps. Intuitively this leads to surfaces thatare sharp at coarse scales, but smooth at finer scales.Now the details. To set the stage for the general situation where

the sharpness can vary along a crease, we consider two illustrativespecial cases.Case 1: A constant integer sharpness s crease: We subdivide

s times using the infinitely sharp rules, then switch to the smoothrules. In other words, an edge of sharpness s 0 is subdivided us-ing the sharp edge rule. The two subedges created each have sharp-ness s 1. A sharpness s 0 edge is considered smooth, and itstays smooth for remaining subdivisions. In the limit where s ∞the sharp rules are used for all steps, leading to an infinitely sharpcrease. An example of integer sharpness creases is shown in Fig-ure 7. A more complicated example where two creases of differentsharpnesses intersect is shown in Figure 8.

(a) (b)

(c) (d)

Figure 8: A pair of crossing semi-sharp creases. The control meshfor all surfaces is the octahedron drawn in wire frame. Yellow de-notes smooth edges, red denotes the edges of the first crease, andmagenta denotes the edges of the second crease. In (a) the creasesharpnesses are both zero; in (b), (c), and (d) the sharpness of thered crease is 4. The sharpness of the magenta crease in (b), (c), and(d) is 0, 2, and 4, respectively.

Case 2: A constant, but not necessarily integer sharpness s: themain idea here is to interpolate between adjacent integer sharp-nesses. Let s and s denote the floor and ceiling of s, respectively.Imagine creating two versions of the crease: the first obtained bysubdividing s times using the sharp rules, then subdividing one ad-ditional time using the smooth rules. Call the vertices of this firstversion v 0 v 1 . The second version, the vertices of which wedenote by v 0 v 1 , is created by subdividing s times using thesharp rules. We take the s -times subdivided semi-sharp crease to

Clark scheme to admit semi-sharp creases – that is, creases of con-trollable sharpness, a simple example of which is shown in Figure 7.

(a) (b)

(c) (d)

(e)

Figure 7: An example of a semi-sharp crease. The control mesh foreach of these surfaces is the unit cube, drawn in wireframe, wherecrease edges are red and smooth edges are yellow. In (a) the creasesharpness is 0, meaning that all edges are smooth. The sharpnessesfor (b), (c), (d), and (e) are 1, 2, 3, and infinite, respectively.

One approach to achieve semi-sharp creases is to develop subdi-vision rules whose weights are parametrized by the sharpness s ofthe crease. This approach is difficult because it can be quite hardto discover rules that lead to the desired smoothness properties ofthe limit surfaces. One of the roadblocks is that subdivision rulesaround a crease break a symmetry possessed by the smooth rules:typical smooth rules (such as the Catmull-Clark rules) are invariantunder cyclic reindexing, meaning that discrete Fourier transformscan be used to prove properties for vertices of arbitrary valence (cf.Zorin [19]). In the absence of this invariance, each valence mustcurrently be considered separately, as was done by Schweitzer [15].Another difficulty is that such an approach is likely to lead to azoo of rules depending on the number and configuration of creasesthrough a vertex. For instance, a vertex with two semi-sharp creasespassing through it would use a different set of rules than a vertexwith just one crease through it.Our approach is to use a very simple process we call hybrid sub-

division. The general idea is to use one set of rules for a finite but

arbitrary number of subdivision steps, followed by another set ofrules that are applied to the limit. Smoothness therefore dependsonly on the second set of rules. Hybrid subdivision can be used toobtain semi-sharp creases by using infinitely sharp rules during thefirst few subdivision steps, followed by use of the smooth rules forsubsequent subdivision steps. Intuitively this leads to surfaces thatare sharp at coarse scales, but smooth at finer scales.Now the details. To set the stage for the general situation where

the sharpness can vary along a crease, we consider two illustrativespecial cases.Case 1: A constant integer sharpness s crease: We subdivide

s times using the infinitely sharp rules, then switch to the smoothrules. In other words, an edge of sharpness s 0 is subdivided us-ing the sharp edge rule. The two subedges created each have sharp-ness s 1. A sharpness s 0 edge is considered smooth, and itstays smooth for remaining subdivisions. In the limit where s ∞the sharp rules are used for all steps, leading to an infinitely sharpcrease. An example of integer sharpness creases is shown in Fig-ure 7. A more complicated example where two creases of differentsharpnesses intersect is shown in Figure 8.

(a) (b)

(c) (d)

Figure 8: A pair of crossing semi-sharp creases. The control meshfor all surfaces is the octahedron drawn in wire frame. Yellow de-notes smooth edges, red denotes the edges of the first crease, andmagenta denotes the edges of the second crease. In (a) the creasesharpnesses are both zero; in (b), (c), and (d) the sharpness of thered crease is 4. The sharpness of the magenta crease in (b), (c), and(d) is 0, 2, and 4, respectively.

Case 2: A constant, but not necessarily integer sharpness s: themain idea here is to interpolate between adjacent integer sharp-nesses. Let s and s denote the floor and ceiling of s, respectively.Imagine creating two versions of the crease: the first obtained bysubdividing s times using the sharp rules, then subdividing one ad-ditional time using the smooth rules. Call the vertices of this firstversion v 0 v 1 . The second version, the vertices of which wedenote by v 0 v 1 , is created by subdividing s times using thesharp rules. We take the s -times subdivided semi-sharp crease to

Clark scheme to admit semi-sharp creases – that is, creases of con-trollable sharpness, a simple example of which is shown in Figure 7.

(a) (b)

(c) (d)

(e)

Figure 7: An example of a semi-sharp crease. The control mesh foreach of these surfaces is the unit cube, drawn in wireframe, wherecrease edges are red and smooth edges are yellow. In (a) the creasesharpness is 0, meaning that all edges are smooth. The sharpnessesfor (b), (c), (d), and (e) are 1, 2, 3, and infinite, respectively.

One approach to achieve semi-sharp creases is to develop subdi-vision rules whose weights are parametrized by the sharpness s ofthe crease. This approach is difficult because it can be quite hardto discover rules that lead to the desired smoothness properties ofthe limit surfaces. One of the roadblocks is that subdivision rulesaround a crease break a symmetry possessed by the smooth rules:typical smooth rules (such as the Catmull-Clark rules) are invariantunder cyclic reindexing, meaning that discrete Fourier transformscan be used to prove properties for vertices of arbitrary valence (cf.Zorin [19]). In the absence of this invariance, each valence mustcurrently be considered separately, as was done by Schweitzer [15].Another difficulty is that such an approach is likely to lead to azoo of rules depending on the number and configuration of creasesthrough a vertex. For instance, a vertex with two semi-sharp creasespassing through it would use a different set of rules than a vertexwith just one crease through it.Our approach is to use a very simple process we call hybrid sub-

division. The general idea is to use one set of rules for a finite but

arbitrary number of subdivision steps, followed by another set ofrules that are applied to the limit. Smoothness therefore dependsonly on the second set of rules. Hybrid subdivision can be used toobtain semi-sharp creases by using infinitely sharp rules during thefirst few subdivision steps, followed by use of the smooth rules forsubsequent subdivision steps. Intuitively this leads to surfaces thatare sharp at coarse scales, but smooth at finer scales.Now the details. To set the stage for the general situation where

the sharpness can vary along a crease, we consider two illustrativespecial cases.Case 1: A constant integer sharpness s crease: We subdivide

s times using the infinitely sharp rules, then switch to the smoothrules. In other words, an edge of sharpness s 0 is subdivided us-ing the sharp edge rule. The two subedges created each have sharp-ness s 1. A sharpness s 0 edge is considered smooth, and itstays smooth for remaining subdivisions. In the limit where s ∞the sharp rules are used for all steps, leading to an infinitely sharpcrease. An example of integer sharpness creases is shown in Fig-ure 7. A more complicated example where two creases of differentsharpnesses intersect is shown in Figure 8.

(a) (b)

(c) (d)

Figure 8: A pair of crossing semi-sharp creases. The control meshfor all surfaces is the octahedron drawn in wire frame. Yellow de-notes smooth edges, red denotes the edges of the first crease, andmagenta denotes the edges of the second crease. In (a) the creasesharpnesses are both zero; in (b), (c), and (d) the sharpness of thered crease is 4. The sharpness of the magenta crease in (b), (c), and(d) is 0, 2, and 4, respectively.

Case 2: A constant, but not necessarily integer sharpness s: themain idea here is to interpolate between adjacent integer sharp-nesses. Let s and s denote the floor and ceiling of s, respectively.Imagine creating two versions of the crease: the first obtained bysubdividing s times using the sharp rules, then subdividing one ad-ditional time using the smooth rules. Call the vertices of this firstversion v 0 v 1 . The second version, the vertices of which wedenote by v 0 v 1 , is created by subdividing s times using thesharp rules. We take the s -times subdivided semi-sharp crease to

Clark scheme to admit semi-sharp creases – that is, creases of con-trollable sharpness, a simple example of which is shown in Figure 7.

(a) (b)

(c) (d)

(e)

Figure 7: An example of a semi-sharp crease. The control mesh foreach of these surfaces is the unit cube, drawn in wireframe, wherecrease edges are red and smooth edges are yellow. In (a) the creasesharpness is 0, meaning that all edges are smooth. The sharpnessesfor (b), (c), (d), and (e) are 1, 2, 3, and infinite, respectively.

One approach to achieve semi-sharp creases is to develop subdi-vision rules whose weights are parametrized by the sharpness s ofthe crease. This approach is difficult because it can be quite hardto discover rules that lead to the desired smoothness properties ofthe limit surfaces. One of the roadblocks is that subdivision rulesaround a crease break a symmetry possessed by the smooth rules:typical smooth rules (such as the Catmull-Clark rules) are invariantunder cyclic reindexing, meaning that discrete Fourier transformscan be used to prove properties for vertices of arbitrary valence (cf.Zorin [19]). In the absence of this invariance, each valence mustcurrently be considered separately, as was done by Schweitzer [15].Another difficulty is that such an approach is likely to lead to azoo of rules depending on the number and configuration of creasesthrough a vertex. For instance, a vertex with two semi-sharp creasespassing through it would use a different set of rules than a vertexwith just one crease through it.Our approach is to use a very simple process we call hybrid sub-

division. The general idea is to use one set of rules for a finite but

arbitrary number of subdivision steps, followed by another set ofrules that are applied to the limit. Smoothness therefore dependsonly on the second set of rules. Hybrid subdivision can be used toobtain semi-sharp creases by using infinitely sharp rules during thefirst few subdivision steps, followed by use of the smooth rules forsubsequent subdivision steps. Intuitively this leads to surfaces thatare sharp at coarse scales, but smooth at finer scales.Now the details. To set the stage for the general situation where

the sharpness can vary along a crease, we consider two illustrativespecial cases.Case 1: A constant integer sharpness s crease: We subdivide

s times using the infinitely sharp rules, then switch to the smoothrules. In other words, an edge of sharpness s 0 is subdivided us-ing the sharp edge rule. The two subedges created each have sharp-ness s 1. A sharpness s 0 edge is considered smooth, and itstays smooth for remaining subdivisions. In the limit where s ∞the sharp rules are used for all steps, leading to an infinitely sharpcrease. An example of integer sharpness creases is shown in Fig-ure 7. A more complicated example where two creases of differentsharpnesses intersect is shown in Figure 8.

(a) (b)

(c) (d)

Figure 8: A pair of crossing semi-sharp creases. The control meshfor all surfaces is the octahedron drawn in wire frame. Yellow de-notes smooth edges, red denotes the edges of the first crease, andmagenta denotes the edges of the second crease. In (a) the creasesharpnesses are both zero; in (b), (c), and (d) the sharpness of thered crease is 4. The sharpness of the magenta crease in (b), (c), and(d) is 0, 2, and 4, respectively.

Case 2: A constant, but not necessarily integer sharpness s: themain idea here is to interpolate between adjacent integer sharp-nesses. Let s and s denote the floor and ceiling of s, respectively.Imagine creating two versions of the crease: the first obtained bysubdividing s times using the sharp rules, then subdividing one ad-ditional time using the smooth rules. Call the vertices of this firstversion v 0 v 1 . The second version, the vertices of which wedenote by v 0 v 1 , is created by subdividing s times using thesharp rules. We take the s -times subdivided semi-sharp crease to

sharpness 0 sharpness 1 sharpness 2 sharpness 3

Page 58: Subdivision overview - Cornell University · 2013-11-15 · • With subdivision surfaces, make creases by marking edges “sharp” – use different rules for vertices with sharp

© 2013 Steve Marschner • Cornell CS4620 Fall 2013 • Lecture 18

Geri’s Game

• Pixar short film to test subdivision in production– Catmull-Clark (quad mesh)

surfaces– complex geometry– extensive use of creases– subdivision surfaces to support

cloth dynamics

[DeR

ose

et a

l. SI

GG

RA

PH 1

998]

41