Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous...

35
Subdivision Surfaces (from discrete to continuous) Pierre Alliez Inria

Transcript of Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous...

Page 1: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Subdivision Surfaces(from discrete to continuous)

Pierre AlliezInria

Page 2: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Subdivision Surfaces?

Smooth surfaces as the limit of a sequence of refinements

Page 3: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Why Subdivision

Many advantages

– arbitrary topology

– scalable

– wavelet connection

– easy to implement

– efficient

Page 4: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Let’s Start with Subdivision Curves

Approach a limit curve through an iterative refinement process.

Refinement 1 Refinement 2

Refinement ∞etc…

Page 5: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Initial Idea

• linear

Page 6: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Subdivision

4 points scheme (interpolant):

Page 7: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Subdivision in 3D

Refinement

Page 8: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Goals of Subdivision Surfaces

• How do we represent curved surfaces in the computer?– Efficiency of representation

– Continuity

– Affine Invariance

– Efficiency of rendering

• How do they relate to spline patches?

• Why use subdivision rather than patches?

Page 9: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Types of Subdivision

• Interpolating Schemes

– Limit Surfaces/Curve will pass through original set of data points.

• Approximating Schemes

– Limit Surface will not necessarily pass through the original set of data points.

Page 10: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

A Primer: Chaiken’s Algorithm

112

12

4

3

4

1

4

1

4

3

iii

iii

PPQ

PPQ

Limit Curve Surface

P0

P1

P2

P3

Q0

Q1

Q2Q3

Q4

Q5

Corner cutter

Page 11: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?
Page 12: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

"Cut-corner"

Page 13: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

3D Surfaces: Loop Scheme

• Works on triangular meshes

• Is an approximating scheme

• Guaranteed to be smooth (C2) everywhere except at extraordinary vertices.

Page 14: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Loop Subdivision Masks

16

3,

8

33

nn

nn1

n n

n

nn

n

8/1

8/1

8/38/3

Notice sum of coeffs…

Page 15: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Loop Subdivision Boundaries

Subdivision Mask for boundaries:

2

1

2

1

8

1

8

1

8

6

Edge RuleVertex Rule

Page 16: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Catmull-Clark Subdivision (‘78)

n

ivn

f1

1FACE

4

2121 ffvve

EDGE

VERTEX

j

j

j

jii fn

en

vn

nv

221

112

Page 17: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

CC Subdivision - Example

Page 18: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Catmull-Clark

Page 19: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

19

Localised Subdivision?

Edge bisection Triangle trisection

Page 20: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

20

Page 21: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

3-Subdivision [Kobbelt]

1->4 [Loop]

1->3

Page 22: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

3-Subdivision [Kobbelt]

Trisection

Page 23: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Ordinary and Extraordinary

Loop Subdivision

Valence 6

Catmull-Clark Subdivision

Valence 4

•Subdividing a mesh does not add extraordinary vertices.

•Subdividing a mesh does not remove extraordinary vertices.

How should extraordinary vertices be handled?

•Make up rules for extraordinary vertices that keep the surface

as “smooth” as possible.

Page 24: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Subdivision as Matrices

Subdivision can be expressed as a matrix Smask of weights w.– Smask is very sparse

– Never implemented this way

– Allows for analysis of:

• Curvature

• Limit Surface

0

2

1

0

1

0

1110

0100

ˆ

ˆ

ˆ

ˆ

00

0

0

0

ˆ

p

p

p

p

p

p

p

w

ww

ww

PPS

nnj

mask

Smask WeightsOld

Control

Points

New

Points

Page 25: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Subdivision in production environment.

• Traditionally spline patches (NURBS) have been used in production for character animation.

• Difficult to control spline patch density in character modelling.

Page 26: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Subdivision in production environment.

Pixar Animation Studios

Page 27: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Modeling with Catmull-Clark

• Subdivision produces smooth continuous surfaces.

• How can “sharpness” and creases be controlled in a modeling environment?

Answer: Define new subdivision rules for “creased” edges and vertices.

1. Tag Edges sharp edges.

2. If an edge is sharp, apply new subdivision rules.

3. Otherwise subdivide with normal rules.

Page 28: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Smoothing (isotropic)

Page 29: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

29

Sharp Edges

Courtesy H.Hoppe

~anisotropic smoothing

Page 30: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Semi-Sharp Edges…

1. Tag Edges as “sharp” or “not-sharp”

• n = 0 – “not sharp”

• n > 0 – sharp

During Subdivision,

2. if an edge is “sharp”, use sharp subdivision

rules. Newly created edges, are assigned

a sharpness of n-1.

3. If an edge is “not-sharp”, use normal

smooth subdivision rules.

IDEA: Edges with a sharpness of “n” do

not get subdivided smoothly for “n”

iterations of the algorithm.

Page 31: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Courtesy T.DeRose

Page 32: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Adaptive Subdivision

• Not all regions of a model need to be subdivided.

• Idea: Use some criteria and adaptively subdivide mesh where needed.

– Curvature

– Screen size ( make triangles < size of pixel )

– View dependence • Distance from viewer

• Silhouettes

• In view frustum

– Careful! Must ensure that “cracks” aren’t made

crack

subdivide

Page 33: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Adaptive Subdivision

Page 34: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Zoo

• Schemes:

– interpolants vs approximants

– dual, primal, 3, quads, triangles, polygons

– bisection, N-section, alternate dual/primal

• Convergence -> limit surface

• Continuity and differentiability

• Piecewise smooth

• Exact evaluation

• Non stationary schemes

• Distinguish concave / convex

Page 35: Subdivision Surfaces (from discrete to continuous) · •Subdivision produces smooth continuous surfaces. •How can “sharpness” and creases be controlled in a modeling environment?

Challenges

• Non-stationnarity

• Variational approach

• Behavior / extraordinary vertices

• G1 differentiability

• etc.

courtesy L.Kobbelt