48
Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser, Adam Finkelstein and David Dobkin

Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision Surfaces

Connelly Barnes

CS 4810: Graphics

Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser, Adam Finkelstein and David Dobkin

Page 2: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision• How do you make a smooth curve?

Zorin & Schroeder SIGGRAPH 99 Course Notes

We want to “smooth out” severe angles

Page 3: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision• How do you make a smooth curve?

Zorin & Schroeder SIGGRAPH 99 Course Notes

We want to “smooth out” severe angles

Page 4: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision• How do you make a smooth curve?

Zorin & Schroeder SIGGRAPH 99 Course Notes

We want to “smooth out” severe angles

Page 5: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision Surfaces• Coarse mesh & subdivision ruleoDefine smooth surface as limit of

sequence of refinements

Zorin & Schroeder SIGGRAPH 99 Course Notes

Page 6: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Key Questions• How to subdivide the mesh?oAim for properties like smoothness

• How to store the mesh?oAim for efficiency of implementing subdivision rules

Zorin & Schroeder SIGGRAPH 99 Course Notes

Page 7: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

General Subdivision Scheme• How to subdivide the mesh?

Two parts:»Refinement:

–Add new vertices and connect (topological)»Smoothing:

–Move vertex positions (geometric)

Page 8: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Loop Subdivision Scheme• How to subdivide the mesh?

Refinement:»Subdivide each triangle into 4 triangles by splitting each edge and connecting new vertices

Zorin & Schroeder SIGGRAPH 99 Course Notes

Page 9: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Loop Subdivision Scheme

Zorin & Schroeder SIGGRAPH 99 Course Notes

Existing vertex being moved from one level to the next

• How to subdivide the mesh:RefinementSmoothing: »Existing Vertices: Choose new location as weighted average of original vertex and its neighbors

Page 10: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Loop Subdivision Scheme• General rule for moving existing interior vertices:

Zorin & Schroeder SIGGRAPH 99 Course Notes

What about vertices that have more Or less than 6 neighboring faces?

new_position = (1-kβ)original_position + sum(β*each_original_vertex)

What about vertices that have more or less than 6 neighboring faces?

Page 11: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Loop Subdivision Scheme• General rule for moving existing interior vertices:

Zorin & Schroeder SIGGRAPH 99 Course Notes

What about vertices that have more Or less than 6 neighboring faces?

new_position = (1-kβ)original_position + sum(β*each_original_vertex)

What about vertices that have more or less than 6 neighboring faces?

0≤ β ≤1/k:

• As β increases, the contribution from adjacent vertices plays a more important role.

Page 12: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Where do existing vertices move?• How to choose β?oAnalyze properties of limit surfaceoInterested in continuity of surface and smoothnessoInvolves calculating eigenvalues of matrices

»Original Loop

»Warren

Page 13: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Loop Subdivision Scheme• How to subdivide the mesh:

RefinementSmoothing:»Inserted Vertices: Choose location as weighted average of original vertices in local neighborhood

New vertex being inserted

Zorin & Schroeder SIGGRAPH 99 Course Notes

Page 14: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Boundary Cases?• What about extraordinary vertices and boundary

edges?:oExisting vertex adjacent to a missing triangleoNew vertex bordered by only one triangle

Zorin & Schroeder SIGGRAPH 99 Course Notes

Page 15: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Boundary Cases?• Rules for extraordinary vertices and boundaries:

Zorin & Schroeder SIGGRAPH 99 Course Notes

1/2 1/2 1/8 1/83/4

Page 16: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Loop Subdivision Scheme

Pixar

Page 17: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Loop Subdivision Scheme

PixarZorin & Schroeder SIGGRAPH 99 Course Notes

Page 18: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Loop Subdivision Scheme

Geri’s Game, Pixar

Page 19: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision Schemes• There are different subdivision schemesoDifferent methods for refining topology oDifferent rules for positioning vertices

»Interpolating versus approximating

Zorin & Schroeder, SIGGRAPH 99 , Course Notes

Page 20: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision Schemes

Zorin & Schroeder SIGGRAPH 99 Course Notes

Page 21: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

21

Page 22: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Key Questions• How to refine the mesh?oAim for properties like smoothness

• How to store the mesh?oAim for efficiency for implementing subdivision rules

Zorin & Schroeder SIGGRAPH 99 Course Notes

Page 23: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision SmoothnessTo determine the smoothness of the subdivision:

• Repeatedly apply the subdivision scheme

• Look at the neighborhood in the limit.

Page 24: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision SmoothnessTo determine the smoothness of the subdivision:

• Repeatedly apply the subdivision scheme

• Look at the neighborhood in the limit.

Page 25: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision SmoothnessTo determine the smoothness of the subdivision:

• Repeatedly apply the subdivision scheme

• Look at the neighborhood in the limit.

Page 26: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision SmoothnessTo determine the smoothness of the subdivision:

• Repeatedly apply the subdivision scheme

• Look at the neighborhood in the limit.

Page 27: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision SmoothnessTo determine the smoothness of the subdivision:

• Repeatedly apply the subdivision scheme

• Look at the neighborhood in the limit.

Page 28: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision SmoothnessTo determine the smoothness of the subdivision:

• Repeatedly apply the subdivision scheme

• Look at the neighborhood in the limit.

Page 29: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision SmoothnessTo determine the smoothness of the subdivision:

• Repeatedly apply the subdivision scheme

• Look at the neighborhood in the limit.

Page 30: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision SmoothnessTo determine the smoothness of the subdivision:

• Repeatedly apply the subdivision scheme

• Look at the neighborhood in the limit.

Page 31: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision SmoothnessTo determine the smoothness of the subdivision:

• Repeatedly apply the subdivision scheme

• Look at the neighborhood in the limit.

Page 32: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision SmoothnessTo determine the smoothness of the subdivision:

• Repeatedly apply the subdivision scheme

• Look at the neighborhood in the limit.

Page 33: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision SmoothnessTo determine the smoothness of the subdivision:

• Repeatedly apply the subdivision scheme

• Look at the neighborhood in the limit.

Computing infinitely many iterations is computationally prohibitive!!!

Page 34: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision Matrix• Compute the new positions/vertices as a linear

combination of previous ones.

p0

p1p6

p5

p4 p3

p2 p0’p5’

p4’ p3’

p2’

p1’p6’

Page 35: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision Matrix• Compute the new positions/vertices as a linear

combination of previous ones.

p0

p1p6

p5

p4 p3

p2 p0’p5’

p4’ p3’

p2’

p1’p6’

Subdivision Matrix0

BBBBBBBB@

p00

p01

p02

p03

p04

p05

p06

1

CCCCCCCCA

=116

0

BBBBBBBB@

10 1 1 1 1 1 16 6 2 0 0 0 26 2 6 2 0 0 06 0 2 6 2 0 06 0 0 2 6 2 06 0 0 0 2 6 26 2 0 0 2 2 6

1

CCCCCCCCA

0

BBBBBBBB@

p0

p1

p2

p3

p4

p5

p6

1

CCCCCCCCA

Page 36: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision Matrix• Compute the new positions/vertices as a linear

combination of previous ones.

• To find the limit position of p0, repeatedly apply the subdivision matrix.

0

BBBBBBBBBB@

p(n)0

p(n)1

p(n)2

p(n)3

p(n)4

p(n)5

p(n)6

1

CCCCCCCCCCA

=116

0

BBBBBBBB@

10 1 1 1 1 1 16 6 2 0 0 0 26 2 6 2 0 0 06 0 2 6 2 0 06 0 0 2 6 2 06 0 0 0 2 6 26 2 0 0 2 2 6

1

CCCCCCCCA

n 0

BBBBBBBB@

p0

p1

p2

p3

p4

p5

p6

1

CCCCCCCCA

Page 37: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision Matrix• Compute the new positions/vertices as a linear

combination of previous ones.

• To find the limit position of p0, repeatedly apply the subdivision matrix.

0

BBBBBBBBBB@

p(n)0

p(n)1

p(n)2

p(n)3

p(n)4

p(n)5

p(n)6

1

CCCCCCCCCCA

=116

0

BBBBBBBB@

10 1 1 1 1 1 16 6 2 0 0 0 26 2 6 2 0 0 06 0 2 6 2 0 06 0 0 2 6 2 06 0 0 0 2 6 26 2 0 0 2 2 6

1

CCCCCCCCA

n 0

BBBBBBBB@

p0

p1

p2

p3

p4

p5

p6

1

CCCCCCCCA

If, after a change of basis we have M=A-1DA, where D is a diagonal matrix, then:

Mn=A-1DnA,

Since D is diagonal, raising D to the n-th power just amounts to raising each of the diagonal entries of D to the n-th power.

Page 38: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Subdivision Modeling• ZBrush Modeling Session

38

Page 39: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Key Questions• How to refine the mesh?oAim for properties like smoothness

• How to store the mesh?oAim for efficiency for implementing subdivision rules

Zorin & Schroeder SIGGRAPH 99 Course Notes

Page 40: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Polygon Meshes• Mesh RepresentationsoIndependent facesoVertex and face tablesoAdjacency listsoWinged-Edge

Page 41: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Independent Faces• Each face lists vertex coordinates

Page 42: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Independent Faces• Each face lists vertex coordinates

ûRedundant verticesûNo topology information

Page 43: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Vertex and Face Tables• Each face lists vertex references

Page 44: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Vertex and Face Tables• Each face lists vertex references

üShared vertices

Page 45: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Vertex and Face Tables• Each face lists vertex references

üShared verticesûStill no topology information

Page 46: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Adjacency Lists• Store all vertex, edge, and face adjacencies

Page 47: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Adjacency Lists• Store all vertex, edge, and face adjacencies

üEfficient topology traversal

Page 48: Subdivision Surfaces - Connelly Barnes€¦ · Subdivision Surfaces Connelly Barnes CS 4810: Graphics Acknowledgment: slides by Jason Lawrence, Misha Kazhdan, Allison Klein, Tom Funkhouser,

Adjacency Lists• Store all vertex, edge, and face adjacencies

üEfficient topology traversalûExtra storageûVariable size arrays