Top Banner
Surface Representations Leif Kobbelt RWTH Aachen University 1
83

Surface Representations - Polygon Mesh Processing Book Website

Feb 03, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Surface Representations - Polygon Mesh Processing Book Website

Surface RepresentationsLeif Kobbelt

RWTH Aachen University

1

Page 2: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Outline

• (mathematical) geometry representations– parametric vs. implicit

• approximation properties• types of operations

– distance queries– evaluation– modification / deformation

• data structures

22

Page 3: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• (mathematical) geometry representations– parametric vs. implicit

• approximation properties• types of operations

– distance queries– evaluation– modification / deformation

• data structures

Outline

33

Page 4: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Mathematical Representations

• parametric– range of a function– surface patch

• implicit– kernel of a function– level set

4

f : R2→ R3, SΩ = f(Ω)

F : R3 → R, Sc = p : F (p) = c

4

Page 5: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

2D-Example: Circle

• parametric

• implicit

5

f : t !→

(

r cos(t)r sin(t)

)

, S = f([0, 2π])

F (x, y) = x2 + y2− r2

S = (x, y) : F (x, y) = 0

5

Page 6: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• parametric

• implicit

2D-Example: Island

6

f : t !→

(

r cos(t)r sin(t)

)

, S = f([0, 2π])

F (x, y) = x2 + y2− r2

S = (x, y) : F (x, y) = 0

??????

???

6

Page 7: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• piecewise parametric

• piecewise implicit

Approximation Quality

7

f : t !→

(

r cos(t)r sin(t)

)

, S = f([0, 2π])

F (x, y) = x2 + y2− r2

S = (x, y) : F (x, y) = 0

??????

???

7

Page 8: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• piecewise parametric

• piecewise implicit

Approximation Quality

8

f : t !→

(

r cos(t)r sin(t)

)

, S = f([0, 2π])

F (x, y) = x2 + y2− r2

S = (x, y) : F (x, y) = 0

??????

???

8

Page 9: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Requirements / Properties

• continuity– interpolation / approximation

• topological consistency– manifold-ness

• smoothness– C0, C1, C2, ... Ck

• fairness– curvature distribution

9

f(ui, vi) ≈ pi

9

Page 10: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• continuity– interpolation / approximation

• topological consistency– manifold-ness

• smoothness– C0, C1, C2, ... Ck

• fairness– curvature distribution

Requirements / Properties

10

f(ui, vi) ≈ pi

10

Page 11: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Requirements / Properties

• continuity– interpolation / approximation

• topological consistency– manifold-ness

• smoothness– C0, C1, C2, ... Ck

• fairness– curvature distribution

11

f(ui, vi) ≈ pi

11

Page 12: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• continuity– interpolation / approximation

• topological consistency– manifold-ness

• smoothness– C0, C1, C2, ... Ck

• fairness– curvature distribution

Requirements / Properties

12

f(ui, vi) ≈ pi

12

Page 13: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• continuity– interpolation / approximation

• topological consistency– manifold-ness

• smoothness– C0, C1, C2, ... Ck

• fairness– curvature distribution

Requirements / Properties

13

f(ui, vi) ≈ pi

13

Page 14: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Topological Consistency

1414

Page 15: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Topological Consistency

1414

Page 16: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Topological Consistency

14

Mesh Repair ...

14

Page 17: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Closed 2-Manifolds

• parametric– disk-shaped neighborhoods– + injectivity

• implicit– surface of a “physical” solid–

15

f(Dε[u, v]) = Dδ[f(u, v)]

F (x, y, z) = c, ‖∇F (x, y, z)‖ #= 0

15

Page 18: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Closed 2-Manifolds

• parametric– disk-shaped neighborhoods– + injectivity

• implicit– surface of a “physical” solid–

16

f(Dε[u, v]) = Dδ[f(u, v)]

F (x, y, z) = c, ‖∇F (x, y, z)‖ #= 0

16

Page 19: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Closed 2-Manifolds

• parametric– disk-shaped neighborhoods– + injectivity

• implicit– surface of a “physical” solid–

17

f(Dε[u, v]) = Dδ[f(u, v)]

F (x, y, z) = c, ‖∇F (x, y, z)‖ #= 0

17

Page 20: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Closed 2-Manifolds

• parametric– disk-shaped neighborhoods–

• implicit– surface of a “physical” solid–

18

f(Dε[u, v]) = Dδ[f(u, v)]

F (x, y, z) = c, ‖∇F (x, y, z)‖ #= 0

18

Page 21: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Closed 2-Manifolds

• parametric– disk-shaped neighborhoods–

• implicit– surface of a “physical” solid–

19

f(Dε[u, v]) = Dδ[f(u, v)]

F (x, y, z) = c, ‖∇F (x, y, z)‖ #= 0

19

Page 22: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Smoothness

• position continuity : C0

• tangent continuity : C1

• curvature continuity : C2

2020

Page 23: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Smoothness

• position continuity : C0

• tangent continuity : C1

• curvature continuity : C2

2121

Page 24: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Smoothness

• position continuity : C0

• tangent continuity : C1

• curvature continuity : C2

2222

Page 25: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Fairness

• minimum surface area

• minimum curvature

• minimum curvature variation

2323

Page 26: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• (mathematical) geometry representations– parametric vs. implicit

• approximation properties• types of operations

– distance queries– evaluation– modification / deformation

• data structures

Outline

2424

Page 27: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Polynomials• computable functions

• Taylor expansion

• interpolation error (mean value theorem)

25

p(t) =p∑

i=0

ci ti =

p∑

i=0

c′

i Φi(t)

p(ti) = f(ti), ti ∈ [0, h]

f(h) =p∑

i=0

1

i!f(i)(0)h

i + O(hp+1)

‖f(t) − p(t)‖ =1

(p + 1)!f (p+1)(t∗)

p∏

i=0

(t − ti) = O(h(p+1))

25

Page 28: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• computable functions

• Taylor expansion

• interpolation error (mean value theorem)

Polynomials

26

p(ti) = f(ti), ti ∈ [0, h]

p(t) =p∑

i=0

ci ti =

p∑

i=0

c′

i Φi(t)

‖f(t) − p(t)‖ =1

(p + 1)!f (p+1)(t∗)

p∏

i=0

(t − ti) = O(h(p+1))

f(h) =p∑

i=0

1

i!f(i)(0)h

i + O(hp+1)

26

Page 29: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Polynomials• computable functions

• Taylor expansion

• interpolation error (mean value theorem)

27

p(ti) = f(ti), ti ∈ [0, h]

p(t) =p∑

i=0

ci ti =

p∑

i=0

c′

i Φi(t)

f(h) =p∑

i=0

1

i!f(i)(0)h

i + O(hp+1)

‖f(t) − p(t)‖ =1

(p + 1)!f (p+1)(t∗)

p∏

i=0

(t − ti) = O(h(p+1))

27

Page 30: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Implicit Polynomials

• interpolation error of the function values

• approximation error of the contour

28

F (p + !p) − F (p)

‖!p‖≈ ‖∇F (p)‖!p = λ∇F (p)

‖F (x, y, z) − P (x, y, z)‖ = O(h(p+1))

28

Page 31: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Implicit Polynomials

• interpolation error of the function values

• approximation error of the contour

29

F (p + !p) − F (p)

‖!p‖≈ ‖∇F (p)‖!p = λ∇F (p)

‖F (x, y, z) − P (x, y, z)‖ = O(h(p+1))

pp+Δp

29

Page 32: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Implicit Polynomials

• interpolation error of the function values

• approximation error of the contour

30

‖"p‖ ≈F (p + "p) − F (p)

‖∇F (p)‖!p = λ∇F (p)

(gradient bounded from below)

‖F (x, y, z) − P (x, y, z)‖ = O(h(p+1))

pp+Δp

30

Page 33: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Implicit Polynomials

31

largegradient

smallgradient

F(x,y,z) F(x,y,z)

x,y,z x,y,z

31

Page 34: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Polynomial Approximation

• approximation error is O(hp+1)

• improve approximation quality by– increasing p ... higher order polynomials– decreasing h ... smaller / more segments

• issues– smoothness of the target data ( maxt f(p+1)(t) )– handling higher order patches (e.g. boundary conditions)

3232

Page 35: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Polynomial Approximation

• approximation error is O(hp+1)

• improve approximation quality by– increasing p ... higher order polynomials– decreasing h ... smaller / more segments

• issues– smoothness of the target data ( maxt f(p+1)(t) )– handling higher order patches (e.g. boundary conditions)

33

MOTD: p = 1

MOTD: p = 1

33

Page 36: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Piecewise Definition

• parametric– Euler formula: V - E + F = 2 (1-g)– regular quad meshes

• F ≈ V• E ≈ 2V• average valence = 4

– quasi-regular– semi-regular

3434

Page 37: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Piecewise Definition

• parametric– Euler formula: V - E + F = 2 (1-g)– regular triangle meshes

• F ≈ 2V• E ≈ 3V• average valence = 6

– quasi-regular– semi-regular

3535

Page 38: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Piecewise Definition

• quasi regular (→ remeshing, Pierre)

36

Computer Graphics GroupMario Botsch

Remeshing Results

Original(

1

2, 2

) (

4

5,

4

3

)

36

Page 39: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Piecewise Definition

• semi regular

3737

Page 40: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Piecewise Definition

• semi regular

3838

Page 41: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Piecewise Definition

• implicit– regular voxel grids O(h-3)– three color octrees

• surface-adaptive refinement O(h-2)• feature-adaptive refinement O(h-1)

– irregular hierarchies• binary space partition O(h-1)

(BSP)

3939

Page 42: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

3-Color Octree

40

12040 cells1048576 cells

40

Page 43: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Adaptively Sampled Distance Fields

41

12040 cells 895 cells

41

Page 44: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Binary Space Partitions

42

254 cells895 cells

42

Page 45: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Message of the Day ...• polygonal meshes are a good compromise

– approximation O(h2) ... error * #faces = const.– arbitrary topology– flexibility for piecewise smooth surfaces– flexibility for adaptive refinement

4343

Page 46: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Message of the Day ...• polygonal meshes are a good compromise

– approximation O(h2) ... error * #faces = const.– arbitrary topology– flexibility for piecewise smooth surfaces– flexibility for adaptive refinement

4444

Page 47: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Message of the Day ...• polygonal meshes are a good compromise

– approximation O(h2) ... error * #faces = const.– arbitrary topology– flexibility for piecewise smooth surfaces– flexibility for adaptive refinement

4545

Page 48: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Message of the Day ...• polygonal meshes are a good compromise

– approximation O(h2) ... error * #faces = const.– arbitrary topology– flexibility for piecewise smooth surfaces– flexibility for adaptive refinement

4646

Page 49: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Message of the Day ...• polygonal meshes are a good compromise

– approximation O(h2) ... error * #faces = const.– arbitrary topology– flexibility for piecewise smooth surfaces– flexibility for adaptive refinement– efficient rendering

4747

Page 50: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Message of the Day ...• polygonal meshes are a good compromise

– approximation O(h2) ... error * #faces = const.– arbitrary topology– flexibility for piecewise smooth surfaces– flexibility for adaptive refinement– efficient rendering

• implicit representation can support efficient access to vertices, faces, ....

4848

Page 51: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• (mathematical) geometry representations– parametric vs. implicit

• approximation properties• types of operations

– evaluation– distance queries– modification / deformation

• data structures

Outline

4949

Page 52: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Evaluation

• smooth parametric surfaces– positions– normals– curvatures

50

f(u, v)

n(u, v) = fu(u, v) × fv(u, v)

c(u, v) = C(

fuu(u, v), fuv(u, v), fvv(u, v))

50

Page 53: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Evaluation

• smooth parametric surfaces– positions– normals– curvatures

• generalization to triangle meshes– positions (barycentric coordinates)

51

(α,β) !→ αP1 + β P2 + (1−α−β)P3

f(u, v)

n(u, v) = fu(u, v) × fv(u, v)

c(u, v) = C(

fuu(u, v), fuv(u, v), fvv(u, v))

0 ≤ α, 0 ≤ β, α + β ≤ 1

51

Page 54: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Evaluation

• smooth parametric surfaces– positions– normals– curvatures

• generalization to triangle meshes– positions (barycentric coordinates)

52

(α,β, γ) !→ αP1 + β P2 + γ P3

f(u, v)

n(u, v) = fu(u, v) × fv(u, v)

c(u, v) = C(

fuu(u, v), fuv(u, v), fvv(u, v))

α + β + γ = 1

52

Page 55: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Evaluation

• smooth parametric surfaces– positions– normals– curvatures

• generalization to triangle meshes– positions (barycentric coordinates)

53

αu + β v + γ w !→ αP1 + β P2 + γ P3

f(u, v)

n(u, v) = fu(u, v) × fv(u, v)

c(u, v) = C(

fuu(u, v), fuv(u, v), fvv(u, v))

α + β + γ = 0

53

Page 56: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Evaluation

• smooth parametric surfaces– positions– normals– curvatures

• generalization to triangle meshes– positions (barycentric coordinates)

54

αu + β v + γ w !→ αP1 + β P2 + γ P3

f(u, v)

n(u, v) = fu(u, v) × fv(u, v)

c(u, v) = C(

fuu(u, v), fuv(u, v), fvv(u, v))

α + β + γ = 0

→ ParametrizationBruno

54

Page 57: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Evaluation

• smooth parametric surfaces– positions– normals– curvatures

• generalization to triangle meshes– positions (barycentric coordinates)– normals (per face, Phong)

55

f(u, v)

n(u, v) = fu(u, v) × fv(u, v)

c(u, v) = C(

fuu(u, v), fuv(u, v), fvv(u, v))

N = (P2 − P1) × (P3 − P1)

55

Page 58: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Evaluation

• smooth parametric surfaces– positions– normals– curvatures

• generalization to triangle meshes– positions (barycentric coordinates)– normals (per face, Phong)

56

f(u, v)

n(u, v) = fu(u, v) × fv(u, v)

c(u, v) = C(

fuu(u, v), fuv(u, v), fvv(u, v))

αu + β v + γ w !→ αN1 + β N2 + γ N3

56

Page 59: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Evaluation

• smooth parametric surfaces– positions– normals– curvatures

• generalization to triangle meshes– positions (barycentric coordinates)– normals (per face, Phong)– curvatures ... (→ smoothing, Mark)

57

f(u, v)

n(u, v) = fu(u, v) × fv(u, v)

c(u, v) = C(

fuu(u, v), fuv(u, v), fvv(u, v))

57

Page 60: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Distance Queries

• parametric– for smooth surfaces: find orthogonal base point

– for triangle meshes• use kd-tree or BSP to find closest triangle• find base point by Newton iteration

(use Phong normal field)

58

[p − f(u, v)] × n(u, v) = 0

58

Page 61: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Modifications

• parameteric– control vertices– free-form deformation– boundary constraint modeling

59

f (u, v) =n∑

i=0

m∑

j=0

cijNni (u) Nm

j (v)

59

Page 62: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Modifications

• parameteric– control vertices– free-form deformation– boundary constraint modeling

60

f (u, v) =n∑

i=0

m∑

j=0

cijNni (u) Nm

j (v)

60

Page 63: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• parameteric– control vertices– free-form deformation– boundary constraint modeling

Modifications

61

→ RemeshingPierre

61

Page 64: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• parameteric– control vertices– free-form deformation– boundary constraint modeling

Modifications

6262

Page 65: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• parameteric– control vertices– free-form deformation– boundary constraint modeling

Modifications

6363

Page 66: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• parameteric– control vertices– free-form deformation– boundary constraint modeling

Modifications

6363

Page 67: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• parameteric– control vertices– free-form deformation– boundary constraint modeling

Modifications

64

→ Mesh EditingMario

64

Page 68: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

• (mathematical) geometry representations– parametric vs. implicit

• approximation properties• types of operations

– distance queries– evaluation– modification / deformation

• data structures

Outline

6565

Page 69: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Mesh Data Structures

• how to store geometry & connectivity?

• compact storage– file formats

• efficient algorithms on meshes– identify time-critical operations– all vertices/edges of a face– all incident vertices/edges/faces of a vertex

6666

Page 70: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Face Set (STL)

• face:– 3 positions

67

TrianglesTrianglesTriangles

x11 y11 z11 x12 y12 z12 x13 y13 z13

x21 y21 z21 x22 y22 z22 x23 y23 z23

... ... ...

xF1 yF1 zF1 xF2 yF2 zF2 xF3 yF3 zF3

36 B/f = 72 B/vno connectivity!

67

Page 71: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Shared Vertex (OBJ, OFF)

• vertex:– position

• face:– vertex indices

68

Vertices

x1 y1 z1

...

xV yV zV

Triangles

v11 v12 v13

...

...

...

...

vF1 vF2 vF3

12 B/v + 12 B/f = 36 B/vno neighborhood info

68

Page 72: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Face-Based Connectivity

• vertex:– position– 1 face

• face:– 3 vertices– 3 face neighbors

69

64 B/vno edges!

69

Page 73: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Edge-Based Connectivity

• vertex– position– 1 edge

• edge– 2 vertices– 2 faces– 4 edges

• face– 1 edge

70

120 B/vedge orientation?

70

Page 74: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Halfedge-Based Connectivity

• vertex– position– 1 halfedge

• halfedge– 1 vertex– 1 face– 1, 2, or 3 halfedges

• face– 1 halfedge

71

96 to 144 B/vno case distinctions

during traversal

71

Page 75: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University 72

One-Ring Traversal1. Start at vertex

72

Page 76: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University 73

One-Ring Traversal1. Start at vertex2. Outgoing halfedge

73

Page 77: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University 74

One-Ring Traversal1. Start at vertex2. Outgoing halfedge3. Opposite halfedge

74

Page 78: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University 75

One-Ring Traversal1. Start at vertex2. Outgoing halfedge3. Opposite halfedge4. Next halfedge

75

Page 79: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University 76

One-Ring Traversal1. Start at vertex2. Outgoing halfedge3. Opposite halfedge4. Next halfedge5. Opposite

76

Page 80: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University 77

One-Ring Traversal1. Start at vertex2. Outgoing halfedge3. Opposite halfedge4. Next halfedge5. Opposite6. Next7. ...

77

Page 81: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Halfedge-Based Libraries

• CGAL– www.cgal.org

– computational geometry– free for non-commercial use

• OpenMesh "– www.openmesh.org

– mesh processing– free, LGPL licence

7878

Page 82: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Literature• Kettner, Using generic programming for designing a

data structure for polyhedral surfaces, Symp. on Comp. Geom., 1998

• Campagna et al, Directed Edges - A Scalable Representation for Triangle Meshes, Journal of Graphics Tools 4(3), 1998

• Botsch et al, OpenMesh - A generic and efficient polygon mesh data structure, OpenSG Symp. 2002

7979

Page 83: Surface Representations - Polygon Mesh Processing Book Website

Leif Kobbelt RWTH Aachen University

Outline

• (mathematical) geometry representations– parametric vs. implicit

• approximation properties• types of operations

– distance queries– evaluation– modification / deformation

• data structures

8080