50
Introduction to Subdivision Surfaces Adi Levin

Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Introduction toSubdivision Surfaces

Adi Levin

Page 2: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Subdivision Curves and Surfaces

!Subdivision curves– The basic concepts of subdivision.

!Subdivision surfaces– Important known methods.– Discussion: subdivision vs. parametric surfaces.

Page 3: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Corner Cutting

Page 4: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Corner Cutting

1 : 33

: 1

Page 5: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Corner Cutting

Page 6: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Corner Cutting

Page 7: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Corner Cutting

Page 8: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Corner Cutting

Page 9: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Corner Cutting

Page 10: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Corner Cutting

Page 11: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Corner Cutting

The control polygon

The limit curveA control point

Page 12: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 13: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 14: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

1 :

1

1 :

1

Page 15: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

1 :

8

Page 16: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 17: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 18: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 19: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 20: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 21: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 22: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 23: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 24: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 25: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 26: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

Page 27: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The 4-point scheme

The control polygon

The limit curveA control point

Page 28: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Subdivision curves

Non interpolatory subdivision schemes

• Corner Cutting

Interpolatory subdivision schemes

• The 4-point scheme

Page 29: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Basic concepts of Subdivision

!A subdivision curve is generated by repeatedlyapplying a subdivision operator to a givenpolygon (called the control polygon).

!The central theoretical questions:– Convergence: Given a subdivision operator and a

control polygon, does the subdivision processconverge?

– Smoothness: Does the subdivision processconverge to a smooth curve?

Page 30: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Subdivision schemes for surfaces

! A Control net consists of vertices, edges, and faces.! In each iteration, the subdivision operator refines the

control net, increasing the number of vertices (approximately) by a factor of 4.

! In the limit the vertices of the control net converge to a limit surface.

! Every subdivision method has a method to generate the topology of the refined net, and rules to calculate the location of the new vertices.

Page 31: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Triangular subdivisionWorks only for control nets whose faces are triangular.

Every face is replaced by 4 new triangular faces.

The are two kinds of new vertices:

• Green vertices are associated with old edges

• Red vertices are associated with old vertices.

Old verticesNew vertices

Page 32: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Loop’s scheme

3 3

1

1

1

11

1

1

nw

( )( )n

nnwn -

+-= 22cos2340

64pn - the vertex valency

A rule for new red vertices A rule for new green vertices

Every new vertex is a weighted average of the old vertices. The list of weights is called the subdivision mask or the stencil.

Page 33: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The original control net

Page 34: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

After 1st iteration

Page 35: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

After 2nd iteration

Page 36: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

After 3rd iteration

Page 37: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The limit surface

The limit surfaces of Loop’s subdivision have continuous curvature almost everywhere.

Page 38: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The Butterfly schemeThis is an interpolatory scheme. The new red vertices inherit the location of the old vertices. The new green vertices are calculated by the following stencil:

-1

-1

-1

-1

88

2

2

Page 39: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The original control net

Page 40: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

After 1st iteration

Page 41: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

After 2nd iteration

Page 42: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

After 3rd iteration

Page 43: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The limit surface

The limit surfaces of the Butterfly subdivision are smooth but are nowhere twice differentiable.

Page 44: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Quadrilateral subdivisionWorks for control nets of arbitrary topology. After one iteration, all the faces are quadrilateral.

Every face is replaced by quadrilateral faces.The are three kinds of new vertices:

• Yellow vertices are associated with old faces• Green vertices are associated with old edges• Red vertices are associated with old vertices.

Old vertices New vertices

Old edgeOld face

Page 45: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

Catmull Clark’s scheme

1

1

11

1

First, all the yellow vertices are calculated

Step 1

1 1

1

1

Then the green vertices are calculated using the values

of the yellow vertices

Step 2

11

11

11

1

1

1

nw

Finally, the red vertices are calculated using the values

of the yellow vertices

Step 3

)2( -= nnwn

n - the vertex valency

1

Page 46: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The original control net

Page 47: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

After 1st iteration

Page 48: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

After 2nd iteration

Page 49: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

After 3rd iteration

Page 50: Introduction to Subdivision Surfaces - PUC-Riowebserver2.tecgraf.puc-rio.br/~mgattass/cg/2019/10-SubdivSurfaces… · Subdivision schemes for surfaces!A Control netconsists of vertices,

The limit surface

The limit surfaces of Catmull-Clarks’s subdivision have continuous curvature almost everywhere.