Digital Geometry Processing Algorithms for Representing, Analyzing - - PowerPoint PPT Presentation

digital geometry processing
SMART_READER_LITE
LIVE PREVIEW

Digital Geometry Processing Algorithms for Representing, Analyzing - - PowerPoint PPT Presentation

Digital Geometry Processing Algorithms for Representing, Analyzing and Comparing 3D shapes Today Previous lecture summary Triangle mesh basics Shape Simplification Shape Subdivision Last Time Registration registered point


slide-1
SLIDE 1

Digital Geometry Processing

Algorithms for Representing, Analyzing and Comparing 3D shapes

slide-2
SLIDE 2

Today

  • Previous lecture summary
  • Triangle mesh basics
  • Shape Simplification
  • Shape Subdivision
slide-3
SLIDE 3

Last Time

Registration

registered point cloud s

slide-4
SLIDE 4

Last Time

Types of 3D scanners: − Time of Flight

  • Delay-based
  • Frequency-based

− Triangulation

  • Laser-based (single line)
  • Structured light (multiple

patterns) − Computer Vision-based

  • Depth-from-stereo
  • Depth-from-blur

− Example: Microsoft Kinect

slide-5
SLIDE 5

Last Time

Partial Scans -> Single Point Cloud Main Approach: Iterative Closest Point. At each iteration: 1) Find nearest neighbor 2) Find best transformation

  • a. Point-to-point (closed

form solution)

  • b. Point-to-plane (local

linearization)

Registration

slide-6
SLIDE 6

Last Time

Point Cloud -> Triangle mesh Two step process: 1) Given a point cloud, compute a signed distance function

  • a. Simple projection
  • b. Poisson-based

2) From the signed distance function, obtain a triangulation:

  • a. Marching Cubes
slide-7
SLIDE 7

Last Time

Any Questions?

Registration

registered point cloud s

slide-8
SLIDE 8

Today

  • Surface representation via triangle meshes
  • Definitions and combinatorial properties
  • Mesh simplification
  • Mesh subdivision
slide-9
SLIDE 9

Setting (1D): Given a set of pairs of points: approximate the function Point cloud

{xi, yi}

f s.t. f(xi) = yi ∀ i

Motivation: Curve Approximation

slide-10
SLIDE 10

Setting (1D): Given a set of pairs of points: approximate the function Simplest solution:

  • Linear Interpolation:

{xi, yi}

f s.t. f(xi) = yi ∀ i

Motivation: Curve Approximation

slide-11
SLIDE 11

Setting (1D): Given a set of pairs of points: approximate the function Smooth solution:

  • Higher-order Interpolation: degree p polynomial

{xi, yi}

f s.t. f(xi) = yi ∀ i

Motivation: Curve Approximation

slide-12
SLIDE 12

Setting (1D): Given a set of pairs of points: approximate the function Generalized mean-value theorem: If f is a degree p polynomial, then the approximation error is:

{xi, yi}

f s.t. f(xi) = yi ∀ i

Motivation: Curve Approximation

|f(t) − g(t)| ≤ 1 (p + 1)! max f (p+1)

p

Y

i=0

(xi − x) = O(hp+1)

slide-13
SLIDE 13

Setting (surfaces in 3D): High-order approximations to surfaces (e.g. NURBS):

Motivation: NURBS surfaces

slide-14
SLIDE 14

Setting (surfaces in 3D): High-order approximations to surfaces (e.g. NURBS):

Motivation: NURBS surfaces

Defined via a control lattice with control polygons

slide-15
SLIDE 15

Motivation: NURBS surfaces

NURBS:

  • Inherently continuous
  • Intuitive controls (control mesh)
  • Limited to grid domains
  • A single NURBS patch has the topology of a sheet, cylinder or torus.
  • Must use multiple patches to

represent complex shapes

  • Cracks occur after

deformations.

slide-16
SLIDE 16

[Triangle] Meshes

Surface represented simply as collections of: Vertices, Edges, and Faces

slide-17
SLIDE 17

NURBS vs. Triangle Meshes

Triangle meshes

  • Inherently discrete
  • No need to have special rules for joining

different patches.

  • Can model shapes with arbitrary topology
  • Can use adaptive sampling to add

resolution where necessary

  • Allow subdivision for smoothness (today)
  • Easy to render
slide-18
SLIDE 18

Why Triangle Meshes?

  • Provide piece-wise linear approximation

to the surface

  • Error is O(h2)
  • Doubling the number of vertices

reduces the error by 4.

slide-19
SLIDE 19

Why Triangles?

  • Simplest piecewise linear element
  • Easy to reconstruct from point

clouds

  • Easy to represent
  • Quad meshes often used in

animation

  • Typically require some hand-

tuning in reconstruction

  • Can provide more flexibility for

deformation

slide-20
SLIDE 20

[Triangle] Meshes

slide-21
SLIDE 21

[Triangle] Meshes: 2 main parts

Geometric Structure vs. Combinatorial Structure

slide-22
SLIDE 22

[Triangle] Meshes: 2 main parts

  • Geometry: vertex positions

P = {p1, p2, ..., pn}, pi ∈ R3

  • Connectivity:
  • Vertices:
  • Edges:
  • Faces:

V = {v1, v2, ..., vn}

E = {e1, e2, ..., em}, ei ∈ V × V

F = {f1, f2, ..., fk}, fi ∈ V × V × V

slide-23
SLIDE 23

What’s a Valid Triangle Mesh?

Mesh Zoo

Image source: Mirela Ben-Chen

slide-24
SLIDE 24

What’s a Valid Triangle Mesh?

What is a valid connectivity? Each face is a triangle Single connected component Manifold mesh

slide-25
SLIDE 25

What’s a Manifold Triangle Mesh?

Manifold triangle mesh:

  • Each Edge is adjacent to at most 2 faces:
  • Each vertex has a disk-shaped neighborhood

Non-manifold.

slide-26
SLIDE 26

Some More Terminology

Boundary edge: adjacent to exactly one face Orientable surface: possible to assign a consistent normal

  • rientation (e.g. outward)
slide-27
SLIDE 27

From now on, a triangle mesh:

Possibly with boundaries

slide-28
SLIDE 28

Fundamental Combinatorial Relation

Euler-Poincaré identity for polyhedral surfaces

: Euler characteristic : genus (number of “handles”) : number of boundary components

χ g b V − E + F = χ = 2 − 2g − b

Genus 0 Genus 1 Genus 2 Genus 3

slide-29
SLIDE 29

Fundamental Combinatorial Relation

Euler-Poincaré identity for polyhedral surfaces

V − E + F = χ = 2 − 2g − b

slide-30
SLIDE 30

Euler-Poincaré identity

Proof in the case of planar graphs or convex surfaces:

Euler’s relation for planar graphs:

V − E + F = 2

Base case: (count the exterior face)

slide-31
SLIDE 31

Euler-Poincaré identity

Proof in the case of planar graphs or convex surfaces:

V − E + F = 2

invariant: the boundary (exterior) is a simple cycle perform the removal according to a shelling order Proof by Induction:

slide-32
SLIDE 32

Euler-Poincaré identity

Proof in the case of planar graphs or convex surfaces:

V − E + F = 2

Von Staudt’s proof:

Given a planar graph, construct any minimum spanning tree T. The dual edges of its complement, also form a spanning tree. The two trees together have (V-1)+(F-1) edges.

E = (V − 1) + (F − 1) ⇒ V − E + F = 2

slide-33
SLIDE 33

Euler-Poincaré identity

Proof in the case of planar graphs or convex surfaces:

V − E + F = 2

slide-34
SLIDE 34

Some applications of Euler-Poincaré

For a manifold triangle mesh without boundary: Since each triangle has 3 edges and each edge belongs to two triangles:

V − E + F = 2 − 2g

2E = 3F

2V − 3F + 2F = 2 − 2g ⇒ 2V = F + (2 − 2g)

For small genus , and

F ≈ 2V

E ≈ 3V

Combining with Euler:

slide-35
SLIDE 35

Some applications of Euler-Poincaré

For a manifold triangle mesh without boundary:

V − E + F = 2 − 2g

For small genus , and

F ≈ 2V

E ≈ 3V

Since

X

i∈V

degree(vi) = 2E

  • avg. degree = 2E

V ≈ 6

Can distinguish torus, sphere and double torus by average degree.

slide-36
SLIDE 36

Some applications of Euler-Poincaré

For a manifold triangle mesh without boundary: Since each triangle has 3 edges and each edge belongs to two triangles: Combining with Euler: Number of faces in terms of number of vertices Average valence of the vertices Triangulating a sphere with even-degree vertices

V − E + F = 2 − 2g

2E = 3F

slide-37
SLIDE 37

[Triangle] Meshes – simplification

~600k triangles ~60k triangles ~6k triangles ~600 triangles

slide-38
SLIDE 38

[Triangle] Meshes – simplification

slide-39
SLIDE 39

Incremental decimation – general framework

slide-40
SLIDE 40

Incremental decimation – vertex removal

slide-41
SLIDE 41

Incremental decimation – edge contraction

slide-42
SLIDE 42

Incremental decimation – half-edge contraction

slide-43
SLIDE 43

Incremental decimation – edge contraction

slide-44
SLIDE 44

Approximating error with quadrics

Simplification based on Quadric Error Metrics (Garland and Heckbert, 1997)

slide-45
SLIDE 45

Approximating error with quadrics

Simplification based on Quadric Error Metrics (Garland and Heckbert, 1997)

slide-46
SLIDE 46

Approximating error with quadrics

Simplification based on Quadric Error Metrics (Garland and Heckbert, 1997)

slide-47
SLIDE 47

Approximating error with quadrics

Simplification based on Quadric Error Metrics (Garland and Heckbert, 1997)

slide-48
SLIDE 48

Approximating error with quadrics

Simplification based on Quadric Error Metrics (Garland and Heckbert, 1997)

slide-49
SLIDE 49

Quadric error simplification: algorithm

Compute error matrix for each point p. For each candidate edge pq do

  • Minimize:

to find the optimal location

  • f the intermediate vertex.
  • Store the error

in a priority queue (heap) Iterate:

  • Pick the edge with the smallest error from the queue
  • Collapse the edge and place the new collapsed vertex
  • Update the error metrics of adjacent edges

Qp ∆(r) = rT (Qp + Qq) r/2

∆(r)

slide-50
SLIDE 50

Quadric error simplification: algorithm

  • Implemented in Meshlab1

35k vertices

1http://www.meshlab.net/

ISTI, CNR, Pisa

slide-51
SLIDE 51

Quadric error simplification: algorithm

  • Implemented in Meshlab

8.7k vertices

slide-52
SLIDE 52

Quadric error simplification: algorithm

  • Implemented in Meshlab

2,1k vertices

slide-53
SLIDE 53

Quadric error simplification: algorithm

  • Implemented in Meshlab

560 vertices

slide-54
SLIDE 54

Quadric error simplification: algorithm

  • Implemented in Meshlab

280 vertices

slide-55
SLIDE 55

Subdivision Surfaces

Provide a trade-off between Smooth and Mesh techniques:

  • Inherently continuous
  • Intuitive controls (control mesh)
  • Can model shapes with arbitrary topology

Modeling Rendering Subdivision surfaces

slide-56
SLIDE 56

Subdivision Surfaces

Provide a trade-off between Smooth and Mesh techniques:

  • Inherently continuous
  • Intuitive controls (control mesh)
  • Can model shapes with arbitrary topology

Modeling Rendering Subdivision surfaces

slide-57
SLIDE 57

Subdivision Curves

Uniform B-spline of order 2:

Chaikin’s algorithm for Quadratic Uniform B-splines:

j odd: Qj = 3 4P(j+1)/2 + 1 4P(j+3)/2 j even: Qj = 1 4Pj/2 + 3 4P(j+2)/2

P1 P2 P3 P4 P5 P6 P7 P8 Q

1

Q

2

Q

3

slide-58
SLIDE 58

Uniform B-spline of order 2:

Chaikin’s algorithm for Quadratic Uniform B-splines: Given n points: Produce 2(n-1) points: Qj, j ∈ (1, 2, . . . , 2n − 2)

Pi, i ∈ (1, 2, . . . , n)

P1 P2 P3 P4 P5 P6 P7 P8 Q

1

Q

2

Q

3

Subdivision Curves

slide-59
SLIDE 59

Subdivision Curves

Uniform B-spline of order 2:

Chaikin’s algorithm for Quadratic Uniform B-splines: Given n points: Produce 2(n-1) points: Qj, j ∈ (1, 2, . . . , 2n − 2)

Pi, i ∈ (1, 2, . . . , n)

P1 P2 P3 P4 P5 P6 P7 P8 Q

1

Q

2

Q

3

Let P = Q and iterate until number of points reaches desired accuracy.

slide-60
SLIDE 60

Subdivision Curves

Uniform B-spline of order 3:

Given n points: Produce 2(n-1)-1 points:

Pi, i ∈ (1, 2, . . . , n)

Qj, j ∈ (1, 2, . . . , 2n − 3)

P1 P2 P3 P4 P5 P6 P7 P8

slide-61
SLIDE 61

Subdivision Curves

Uniform B-spline of order 3:

Q2i−1 = 1 2Pi + 1 2Pi+1 Q2i = 1 8Pi−1 + 3 4Pi + 1 8Pi+1

At each iteration produce 2(n-1)-1 points: P1 P2 P3 P4 P5 P6 P7 P8

slide-62
SLIDE 62

Subdivision Curves

Uniform B-spline of order 3:

Q2i−1 = 1 2Pi + 1 2Pi+1 Q2i = 1 8Pi−1 + 3 4Pi + 1 8Pi+1

At each iteration produce 2(n-1)-1 points: P1 P2 P3 P4 P5 P6 P7 P8

slide-63
SLIDE 63

Subdivision Curves

Uniform B-spline of order 3:

Q2i−1 = 1 2Pi + 1 2Pi+1 Q2i = 1 8Pi−1 + 3 4Pi + 1 8Pi+1

At each iteration produce 2(n-1)-1 points: P1 P2 P3 P4 P5 P6 P7 P8

slide-64
SLIDE 64

Subdivision Curves

Uniform B-spline of order 3:

Q2i−1 = 1 2Pi + 1 2Pi+1 Q2i = 1 8Pi−1 + 3 4Pi + 1 8Pi+1

At each iteration produce 2(n-1)-1 points: P1 P2 P3 P4 P5 P6 P7 P8

slide-65
SLIDE 65

Subdivision Curves

Uniform B-spline of order 3:

Q2i−1 = 1 2Pi + 1 2Pi+1 Q2i = 1 8Pi−1 + 3 4Pi + 1 8Pi+1

At each iteration produce 2(n-1)-1 points: P1 P2 P3 P4 P5 P6 P7 P8

slide-66
SLIDE 66

Subdivision Curves

Uniform B-spline of order 3:

Q2i−1 = 1 2Pi + 1 2Pi+1 Q2i = 1 8Pi−1 + 3 4Pi + 1 8Pi+1

At each iteration produce 2(n-1)-1 points: P1 P2 P3 P4 P5 P6 P7 P8

slide-67
SLIDE 67

Subdivision Curves

Uniform B-spline of order 3:

Q2i−1 = 1 2Pi + 1 2Pi+1 Q2i = 1 8Pi−1 + 3 4Pi + 1 8Pi+1

At each iteration produce 2(n-1)-1 points: P1 P2 P3 P4 P5 P6 P7 P8

slide-68
SLIDE 68

Subdivision Curves

Interpolating curves:

In matrix form: for every 4 consecutive old points, produce 2 new points: P1 P2 P3 P4 P5 P6 P7 P8

✓ Q1 Q2 ◆ = 1 16 ✓ 16 −1 9 9 −1 ◆ B B @ P1 P2 P3 P4 1 C C A

slide-69
SLIDE 69

Subdivision Curves

Interpolating curves:

In matrix form: for every 4 consecutive old points, produce 2 new points: P1 P2 P3 P4 P5 P6 P7 P8

✓ Q1 Q2 ◆ = 1 16 ✓ 16 −1 9 9 −1 ◆ B B @ P1 P2 P3 P4 1 C C A

slide-70
SLIDE 70

Subdivision Curves

Interpolating curves:

In matrix form: for every 4 consecutive old points, produce 2 new points: P1 P2 P3 P4 P5 P6 P7 P8

✓ Q1 Q2 ◆ = 1 16 ✓ 16 −1 9 9 −1 ◆ B B @ P1 P2 P3 P4 1 C C A

slide-71
SLIDE 71

Subdivision Curves

Interpolating curves:

In matrix form: for every 4 consecutive old points, produce 2 new points: P1 P2 P3 P4 P5 P6 P7 P8

✓ Q1 Q2 ◆ = 1 16 ✓ 16 −1 9 9 −1 ◆ B B @ P1 P2 P3 P4 1 C C A

slide-72
SLIDE 72

Subdivision Curves

Interpolating curves:

Note:

P1 P2 P3 P4 P5 P6 P7 P8

Before starting, make a copy of first and last points. At each iteration, copy the first and last points.

slide-73
SLIDE 73

Examples

Chaikin’s scheme

slide-74
SLIDE 74

Examples

Chaikin’s scheme Control polygon

slide-75
SLIDE 75

Examples

Daubechies scheme Fractal-like

slide-76
SLIDE 76

Apply the same ideas to generating smooth surfaces. General approach:

1.

Start with a control Polytope.

2.

At each iteration refine the polytope according to some rules.

3.

Stop when resolution is high enough.

Subdivision Surfaces

slide-77
SLIDE 77

Apply the same ideas to generating smooth surfaces. General approach:

1.

Start with a control Polytope.

2.

At each iteration refine the polytope according to some rules.

3.

Stop when resolution is high enough.

Subdivision Surfaces

slide-78
SLIDE 78

There are topological and geometric changes. Geometric:

  • How the positions of the vertices change

Topological:

  • How the connectivity changes

Subdivision Rules

slide-79
SLIDE 79

There are topological and geometric changes. Typically, both geometric and topological changes are local:

New vertices, edges and faces depend on a small neighborhood of old ones.

Subdivision Rules

slide-80
SLIDE 80

Generalization of Chaikin’s corner cutting to surfaces.

Doo-Sabin subdivision surfaces

At each iteration:

  • 1. Consider the barycenter of every (old) face
  • 2. Construct centroids between the center and old vertices.
  • 3. Connect them in a natural way.
  • 4. Restart.
slide-81
SLIDE 81

Generalization of Chaikin’s corner cutting to surfaces.

Doo-Sabin subdivision surfaces

At each iteration:

  • 1. Consider the barycenter of every (old) face
  • 2. Construct centroids between the center and old vertices.
  • 3. Connect them in a natural way.
  • 4. Restart.
slide-82
SLIDE 82

Generalization of Chaikin’s corner cutting to surfaces.

At each iteration:

  • 1. Consider the barycenter of every (old) face
  • 2. Construct centroids between the center and old vertices.
  • 3. Connect them in a natural way.
  • 4. Restart.

Doo-Sabin subdivision surfaces

slide-83
SLIDE 83

Generalization of Chaikin’s corner cutting to surfaces.

At each iteration:

  • 1. Consider the barycenter of every (old) face
  • 2. Construct centroids between the center and old vertices.
  • 3. Connect them in a natural way.
  • 4. Restart.

Doo-Sabin subdivision surfaces

slide-84
SLIDE 84

Generalization of Chaikin’s corner cutting to surfaces.

At each iteration:

  • 1. Consider the barycenter of every (old) face
  • 2. Construct centroids between the center and old vertices.
  • 3. Connect them in a natural way.
  • 4. Restart.

Doo-Sabin subdivision surfaces

slide-85
SLIDE 85

Generalization of Chaikin’s corner cutting to surfaces.

At each iteration:

  • 1. Consider the barycenter of every (old) face
  • 2. Construct centroids between the center and old vertices.
  • 3. Connect them in a natural way.
  • 4. Restart.

Doo-Sabin subdivision surfaces

slide-86
SLIDE 86

Generalization of Chaikin’s corner cutting to surfaces.

At each iteration:

  • 1. Consider the barycenter of every (old) face
  • 2. Construct centroids between the center and old vertices.
  • 3. Connect them in a natural way.
  • 4. Restart.

Doo-Sabin subdivision surfaces

slide-87
SLIDE 87

Generalization of Chaikin’s corner cutting to surfaces.

At each iteration:

  • 1. Consider the barycenter of every (old) face
  • 2. Construct centroids between the center and old vertices.
  • 3. Connect them in a natural way.
  • 4. Restart.

Doo-Sabin subdivision surfaces

slide-88
SLIDE 88

Doo-Sabin subdivision surfaces

slide-89
SLIDE 89

Generalization of cubic spline subdivision to surfaces.

Catmull-Clark subdivision surfaces

  • Approximating Scheme
  • Small support stencil (just immediate neighbors)
  • Limit surface is 2nd-order continuous except at extraordinary vertices
  • Subdivision scheme used in all modern Pixar films
slide-90
SLIDE 90

Generalization of cubic spline subdivision to surfaces.

Catmull-Clark subdivision surfaces

At each iteration:

  • 1. Construct Face vertices: barycenters of old faces.
  • 2. Construct Edge vertices.
  • 3. Update existing vertices.
  • 4. Connect them in a natural way.
  • 4. Restart.
slide-91
SLIDE 91

Generalization of cubic spline subdivision to surfaces.

Catmull-Clark subdivision surfaces

At each iteration:

  • 1. Construct Face vertices: barycenters of old faces.
  • 2. Construct Edge vertices: average of the old edge vertices and

the associated face vertices

slide-92
SLIDE 92

Generalization of cubic spline subdivision to surfaces.

Catmull-Clark subdivision surfaces

At each iteration:

  • 1. Construct Face vertices: barycenters of old faces.
  • 2. Construct Edge vertices: average of the old edge vertices and

the associated face vertices

slide-93
SLIDE 93

Generalization of cubic spline subdivision to surfaces.

Catmull-Clark subdivision surfaces

At each iteration:

  • 1. Construct Face vertices: barycenters of old faces.
  • 2. Construct Edge vertices: average of the old edge vertices and

the associated face vertices

slide-94
SLIDE 94

Generalization of cubic spline subdivision to surfaces.

Catmull-Clark subdivision surfaces

At each iteration:

  • 1. Construct Face vertices: barycenters of old faces.
  • 2. Construct Edge vertices.
  • 3. Update existing vertices.
  • 4. Connect them in a natural way.
  • 4. Restart.
slide-95
SLIDE 95

Generalization of cubic spline subdivision to surfaces.

Catmull-Clark subdivision surfaces

At each iteration:

  • 1. Construct Face vertices: barycenters of old faces.
  • 2. Construct Edge vertices.
  • 3. Update existing vertices.

ej: old vertex incident along edge j fi: new (orange) vertex on face j n: number of incident edges.

vnew

vold

e1 e2 e3 f3 f1 f2

vnew = vold + 1 n2

n

X

j=1

(ej − vold) + 1 n2

n

X

j=1

(fj − vold)

slide-96
SLIDE 96

Generalization of cubic spline subdivision to surfaces.

Catmull-Clark subdivision surfaces

At each iteration:

  • 1. Construct Face vertices.
  • 2. Construct Edge vertices.
  • 3. Update existing vertices.
  • 4. Connect them in a natural way.
  • 4. Restart.
slide-97
SLIDE 97

Generalization of cubic spline subdivision to surfaces.

Catmull-Clark subdivision surfaces

At each iteration:

  • 1. Construct Face vertices.
  • 2. Construct Edge vertices.
  • 3. Update existing vertices.
  • 4. Connect them in a natural way.
  • 4. Restart.
slide-98
SLIDE 98

Catmull-Clark subdivision surfaces

slide-99
SLIDE 99

Triangle-based subdivision:

Loop subdivision surfaces

At each iteration:

  • 1. Construct Edge vertices.
  • 2. Update existing vertices.
  • 3. Connect them in a natural way.
  • 4. Restart.
slide-100
SLIDE 100

Triangle-based subdivision:

Loop subdivision surfaces

At each iteration:

  • 1. Construct Edge vertices.

3/8 3/8 1/8 1/8

ei = 3 8ve1 + 3 8ve2 + 1 8vt1 + 1 8vt2

slide-101
SLIDE 101

Triangle-based subdivision:

Loop subdivision surfaces

At each iteration:

  • 1. Construct Edge vertices.

1/8 1/8 3/8 3/8

ei = 3 8ve1 + 3 8ve2 + 1 8vt1 + 1 8vt2

slide-102
SLIDE 102

Triangle-based subdivision:

Loop subdivision surfaces

At each iteration:

  • 1. Construct Edge vertices.

1/8 1/8 3/8 3/8

ei = 3 8ve1 + 3 8ve2 + 1 8vt1 + 1 8vt2

slide-103
SLIDE 103

Triangle-based subdivision:

Loop subdivision surfaces

At each iteration:

  • 1. Construct Edge vertices.
  • 2. Update existing vertices:

vnew

vold

vnew = (1 − αn)vold + α

n

X

j=1

ej

ej: old vertex incident along edge j n: number of incident edges.

α = ⇢

3 16

if n = 3

3 8n

if n > 3

e1 e2 e3 e4 e5

slide-104
SLIDE 104

Triangle-based subdivision:

Loop subdivision surfaces

At each iteration:

  • 1. Construct Edge vertices.
  • 2. Update existing vertices.
  • 3. Connect them in a natural way.
  • 4. Restart.

Attention: different update rules on the boundary.

slide-105
SLIDE 105

Loop subdivision surfaces

slide-106
SLIDE 106

Conclusions

Subdivision surfaces:

  • Allow simpler modeling

– Major strength: surfaces of arbitrary topology – Limit surfaces are smooth – Control mesh is typically simple and intuitive

  • Adapt to user’s needs

– Render only at required level-of-detail

  • Usability

– Compact representation – Simple and efficient code

slide-107
SLIDE 107

Extensions

Piecewise-smooth subdivision surfaces:

Allow some sharp edges to remain

Hoppe et al. Piecewise Smooth Surface Reconstruction, SIGGRAPH ‘94