)NPUT $ATA

2ANGE 3CAN #!$ 4OMOGRAPHY

2EMOVAL OF TOPOLOGICAL AND GEOMETRICAL ERRORS

!NALYSIS OF SURFACE QUALITY

3URFACE SMOOTHING FOR NOISE REMOVAL

0ARAMETERIZATION Surface Representations

3IMPLIFICATION FOR COMPLEXITY REDUCTION Leif Kobbelt RWTH Aachen University

2EMESHING FOR IMPROVING MESH QUALITY

&REEFORM AND MULTIRESOLUTION MODELING

1 Outline

• (mathematical) geometry representations – parametric vs. implicit • approximation properties • types of operations – distance queries – evaluation – modification / deformation • data structures

Leif Kobbelt RWTH Aachen University 2

2 Outline

• (mathematical) geometry representations – parametric vs. implicit • approximation properties • types of operations – distance queries – evaluation – modification / deformation • data structures

Leif Kobbelt RWTH Aachen University 3

3 Mathematical Representations

• parametric – range of a function – surface patch 2 3 f : R → R , SΩ = f(Ω)

• implicit – kernel of a function – level set 3 F : R → R, Sc = {p : F (p)=c}

Leif Kobbelt RWTH Aachen University 4

4 2D-Example: Circle

• parametric r cos(t) f : t !→ , S = f([0, 2π]) ! r sin(t) "

• implicit 2 2 2 F (x, y)=x + y − r

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

Leif Kobbelt RWTH Aachen University 5

5 2D-Example: Island

• parametric r cos(???t) f : t !→ , S = f([0, 2π]) ! r sin(???t) "

• implicit 2 2 2 F (x, y)=x +???y − r S = {(x, y):F (x, y)=0}

Leif Kobbelt RWTH Aachen University 6

6 Approximation Quality

• piecewise parametric r cos(???t) f : t !→ , S = f([0, 2π]) ! r sin(???t) "

• piecewise implicit 2 2 2 F (x, y)=x +???y − r S = {(x, y):F (x, y)=0}

Leif Kobbelt RWTH Aachen University 7

7 Approximation Quality

• piecewise parametric r cos(???t) f : t !→ , S = f([0, 2π]) ! r sin(???t) "

• piecewise implicit 2 2 2 F (x, y)=x +???y − r S = {(x, y):F (x, y)=0}

Leif Kobbelt RWTH Aachen University 8

8 Requirements / Properties

• continuity – interpolation / approximation f(ui,vi) ≈ pi • topological consistency – manifold-ness • smoothness – C0, C1, C2, ... Ck • fairness – curvature distribution

Leif Kobbelt RWTH Aachen University 9

9 Requirements / Properties

• continuity – interpolation / approximation f(ui,vi) ≈ pi • topological consistency – manifold-ness • smoothness – C0, C1, C2, ... Ck • fairness – curvature distribution

Leif Kobbelt RWTH Aachen University 10

10 Requirements / Properties

• continuity – interpolation / approximation f(ui,vi) ≈ pi • topological consistency – manifold-ness • smoothness – C0, C1, C2, ... Ck • fairness – curvature distribution

Leif Kobbelt RWTH Aachen University 11

11 Requirements / Properties

• continuity – interpolation / approximation f(ui,vi) ≈ pi • topological consistency – manifold-ness • smoothness – C0, C1, C2, ... Ck • fairness – curvature distribution

Leif Kobbelt RWTH Aachen University 12

12 Requirements / Properties

• continuity – interpolation / approximation f(ui,vi) ≈ pi • topological consistency – manifold-ness • smoothness – C0, C1, C2, ... Ck • fairness – curvature distribution

Leif Kobbelt RWTH Aachen University 13

13 Topological Consistency

Leif Kobbelt RWTH Aachen University 14

14 Topological Consistency

Leif Kobbelt RWTH Aachen University 14

14 Topological Consistency

Mesh Repair ...

Leif Kobbelt RWTH Aachen University 14

14 Closed 2-Manifolds

• parametric – disk-shaped neighborhoods – f ( D ε [ u, v ]) = D δ [ f ( u, v )] + injectivity

• implicit – surface of a “physical” solid – F (x, y, z)=c, !∇F (x, y, z)!#=0

Leif Kobbelt RWTH Aachen University 15

15 Closed 2-Manifolds

• parametric – disk-shaped neighborhoods – f ( D ε [ u, v ]) = D δ [ f ( u, v )] + injectivity

• implicit – surface of a “physical” solid – F (x, y, z)=c, !∇F (x, y, z)!#=0

Leif Kobbelt RWTH Aachen University 16

16 Closed 2-Manifolds

• parametric – disk-shaped neighborhoods – f ( D ε [ u, v ]) = D δ [ f ( u, v )] + injectivity

• implicit – surface of a “physical” solid – F (x, y, z)=c, !∇F (x, y, z)!#=0

Leif Kobbelt RWTH Aachen University 17

17 Closed 2-Manifolds

• parametric – disk-shaped neighborhoods f(Dε[u, v]) = Dδ[f(u, v)] –

• implicit – surface of a “physical” solid – F (x, y, z)=c, !∇F (x, y, z)!#=0

Leif Kobbelt RWTH Aachen University 18

18 Closed 2-Manifolds

• parametric – disk-shaped neighborhoods f(Dε[u, v]) = Dδ[f(u, v)] –

• implicit – surface of a “physical” solid – F (x, y, z)=c, !∇F (x, y, z)!#=0

Leif Kobbelt RWTH Aachen University 19

19 Smoothness

• position continuity : C0 • tangent continuity : C1 • curvature continuity : C2

Leif Kobbelt RWTH Aachen University 20

20 Smoothness

• position continuity : C0 • tangent continuity : C1 • curvature continuity : C2

Leif Kobbelt RWTH Aachen University 21

21 Smoothness

• position continuity : C0 • tangent continuity : C1 • curvature continuity : C2

Leif Kobbelt RWTH Aachen University 22

22 Fairness

• minimum surface area • minimum curvature • minimum curvature variation

Leif Kobbelt RWTH Aachen University 23

23 Outline

• (mathematical) geometry representations – parametric vs. implicit • approximation properties • types of operations – distance queries – evaluation – modification / deformation • data structures

Leif Kobbelt RWTH Aachen University 24

24 Polynomials

• computable functions p p t ti ! t p( )=! ci = ! ci Φi( ) i=0 i=0

• Taylor expansion p 1 f(h)= f (i)(0) hi + O(hp+1) ! i! i=0 • interpolation error (mean value theorem)

p(ti)=f(ti),ti ∈ [0,h] p 1 (p+1) ∗ (p+1) !f(t) − p(t)! = f (t ) (t − ti)=O(h ) (p + 1)! ! i=0

Leif Kobbelt RWTH Aachen University 25

25 Polynomials

• computable functions p p t ti ! t p( )=! ci = ! ci Φi( ) i=0 i=0 • Taylor expansion p 1 f(h)= f (i)(0) hi + O(hp+1) ! i! i=0 • interpolation error (mean value theorem)

p(ti)=f(ti),ti ∈ [0,h] p 1 (p+1) ∗ (p+1) !f(t) − p(t)! = f (t ) (t − ti)=O(h ) (p + 1)! ! i=0

Leif Kobbelt RWTH Aachen University 26

26 Polynomials

• computable functions p p t ti ! t p( )=! ci = ! ci Φi( ) i=0 i=0 • Taylor expansion p 1 f(h)= f (i)(0) hi + O(hp+1) ! i! i=0 • interpolation error (mean value theorem)

p(ti)=f(ti),ti ∈ [0,h] p 1 (p+1) ∗ (p+1) !f(t) − p(t)! = f (t ) (t − ti)=O(h ) (p + 1)! ! i=0

Leif Kobbelt RWTH Aachen University 27

27 Implicit Polynomials

• interpolation error of the function values

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

• approximation error of the contour

F (p + !p) − F (p) !p = λ ∇F (p) ≈ #∇F (p)# #!p#

Leif Kobbelt RWTH Aachen University 28

28 Implicit Polynomials

• interpolation error of the function values

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

p • approximation error of the contour p+Δp

F (p + !p) − F (p) !p = λ ∇F (p) ≈ #∇F (p)# #!p#

Leif Kobbelt RWTH Aachen University 29

29 Implicit Polynomials

• interpolation error of the function values

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

p • approximation error of the contour p+Δp

F (p + "p) − F (p) !p = λ ∇F (p) !"p!≈ !∇F (p)!

(gradient bounded from below)

Leif Kobbelt RWTH Aachen University 30

30 Implicit Polynomials

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

x,y,z x,y,z

large small gradient gradient

Leif Kobbelt RWTH Aachen University 31

31 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)

Leif Kobbelt RWTH Aachen University 32

32 Polynomial Approximation

• approximation error is O(hp+1)

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

• issues – smoothnessMOTD: of the target data ( maxpt f(p+1)=(t) ) 1 – handling higher order patches (e.g. boundary conditions)

Leif Kobbelt RWTH Aachen University 33

33 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

Leif Kobbelt RWTH Aachen University 34

34 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

Leif Kobbelt RWTH Aachen University 35

35 Piecewise Definition

• quasi regularRemeshing (→ remeshing, Results Pierre)

1 2 4 4 Original ! 2 , " ! 5 , 3 " Leif Kobbelt RWTH Aachen University 36

36 Graphics Group Mario Botsch Piecewise Definition

• semi regular

Leif Kobbelt RWTH Aachen University 37

37 Piecewise Definition

• semi regular

Leif Kobbelt RWTH Aachen University 38

38 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)

Leif Kobbelt RWTH Aachen University 39

39 3-Color Octree

1048576 cells 12040 cells

Leif Kobbelt RWTH Aachen University 40

40 Adaptively Sampled Distance Fields

12040 cells 895 cells

Leif Kobbelt RWTH Aachen University 41

41 Binary Space Partitions

895 cells 254 cells

Leif Kobbelt RWTH Aachen University 42

42 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

Leif Kobbelt RWTH Aachen University 43

43 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

Leif Kobbelt RWTH Aachen University 44

44 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

Leif Kobbelt RWTH Aachen University 45

45 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

Leif Kobbelt RWTH Aachen University 46

46 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

Leif Kobbelt RWTH Aachen University 47

47 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, ....

Leif Kobbelt RWTH Aachen University 48

48 Outline

• (mathematical) geometry representations – parametric vs. implicit • approximation properties • types of operations – evaluation – distance queries – modification / deformation • data structures

Leif Kobbelt RWTH Aachen University 49

49 Evaluation

• smooth parametric surfaces – positions f(u, v) – normals n(u, v)=fu(u, v) × fv(u, v) c f f f – curvatures (u, v)=C! uu(u, v), uv(u, v), vv(u, v) "

Leif Kobbelt RWTH Aachen University 50

50 Evaluation

• smooth parametric surfaces – positions f(u, v) – normals n(u, v)=fu(u, v) × fv(u, v) c f f f – curvatures (u, v)=C! uu(u, v), uv(u, v), vv(u, v) " • generalization to triangle meshes – positions (barycentric coordinates)

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

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

Leif Kobbelt RWTH Aachen University 51

51 Evaluation

• smooth parametric surfaces – positions f(u, v) – normals n(u, v)=fu(u, v) × fv(u, v) c f f f – curvatures (u, v)=C! uu(u, v), uv(u, v), vv(u, v) " • generalization to triangle meshes – positions (barycentric coordinates)

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

α + β + γ =1

Leif Kobbelt RWTH Aachen University 52

52 Evaluation

• smooth parametric surfaces – positions f(u, v) – normals n(u, v)=fu(u, v) × fv(u, v) c f f f – curvatures (u, v)=C! uu(u, v), uv(u, v), vv(u, v) " • generalization to triangle meshes – positions (barycentric coordinates)

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

Leif Kobbelt RWTH Aachen University 53

53 Evaluation

• smooth parametric surfaces – positions f(u, v) – normals n(u, v)=fu(u, v) × fv(u, v) c f f f – curvatures (u, v)=C! uu(u, v), uv(u, v), vv(u, v) "

• generalization to triangle meshes → Parametrization – positions (barycentric coordinates) Bruno

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

Leif Kobbelt RWTH Aachen University 54

54 Evaluation

• smooth parametric surfaces – positions f(u, v) – normals n(u, v)=fu(u, v) × fv(u, v) c f f f – curvatures (u, v)=C! uu(u, v), uv(u, v), vv(u, v) " • generalization to triangle meshes – positions (barycentric coordinates) – normals (per face, Phong)

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

Leif Kobbelt RWTH Aachen University 55

55 Evaluation

• smooth parametric surfaces – positions f(u, v) – normals n(u, v)=fu(u, v) × fv(u, v) c f f f – curvatures (u, v)=C! uu(u, v), uv(u, v), vv(u, v) " • generalization to triangle meshes – positions (barycentric coordinates) – normals (per face, Phong)

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

Leif Kobbelt RWTH Aachen University 56

56 Evaluation

• smooth parametric surfaces – positions f(u, v) – normals n(u, v)=fu(u, v) × fv(u, v) c f f f – curvatures (u, v)=C! uu(u, v), uv(u, v), vv(u, v) " • generalization to triangle meshes – positions (barycentric coordinates) – normals (per face, Phong) – curvatures ... (→ smoothing, Mark)

Leif Kobbelt RWTH Aachen University 57

57 Distance Queries

• parametric – for smooth surfaces: find orthogonal base point

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

– for triangle meshes • use kd-tree or BSP to find closest triangle • find base point by Newton iteration (use Phong normal field)

Leif Kobbelt RWTH Aachen University 58

58 Modifications

• parameteric n m f c n m (u, v)=! ! ijNi (u) Nj (v) – control vertices i=0 j=0 – free-form deformation – boundary constraint modeling

Leif Kobbelt RWTH Aachen University 59

59 Modifications

• parameteric n m f c n m (u, v)=! ! ijNi (u) Nj (v) – control vertices i=0 j=0 – free-form deformation – boundary constraint modeling

Leif Kobbelt RWTH Aachen University 60

60 Modifications

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

Leif Kobbelt RWTH Aachen University 61

61 Modifications

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

Leif Kobbelt RWTH Aachen University 62

62 Modifications

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

Leif Kobbelt RWTH Aachen University 63

63 Modifications

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

Leif Kobbelt RWTH Aachen University 63

63 Modifications

• parameteric – control vertices – free-form deformation → Mesh Editing – boundary constraint modeling Mario

Leif Kobbelt RWTH Aachen University 64

64 Outline

• (mathematical) geometry representations – parametric vs. implicit • approximation properties • types of operations – distance queries – evaluation – modification / deformation • data structures

Leif Kobbelt RWTH Aachen University 65

65 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

Leif Kobbelt RWTH Aachen University 66

66 Face Set (STL)

• face: Triangles

– 3 positions x11 y11 x12 y12 z12 x13 y13 z13

x21 y21 z21 x22 y22 z22 x23 y23

......

xF1 yF1 zF1 xF2 yF2 zF2 xF3 yF3 zF3

36 B/f = 72 B/v no connectivity!

Leif Kobbelt RWTH Aachen University 67

67 Shared Vertex (OBJ, OFF)

• vertex: Vertices Triangles

– position x1 y1 v11 v12 v13 ...... • face: xV yV zV ... – vertex indices ...

...

vF1 vF2 vF3

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

Leif Kobbelt RWTH Aachen University 68

68 Face-Based Connectivity

• vertex: – position – 1 face • face: – 3 vertices – 3 face neighbors

64 B/v no edges!

Leif Kobbelt RWTH Aachen University 69

69 Edge-Based Connectivity

• vertex – position – 1 edge • edge – 2 vertices – 2 faces – 4 edges 120 B/v • face edge orientation? – 1 edge

Leif Kobbelt RWTH Aachen University 70

70 Halfedge-Based Connectivity

• vertex – position – 1 halfedge • halfedge – 1 vertex – 1 face – 1, 2, or 3 halfedges 96 to 144 B/v • face no case distinctions – 1 halfedge during traversal

Leif Kobbelt RWTH Aachen University 71

71 One-Ring Traversal

1. Start at vertex

Leif Kobbelt RWTH Aachen University 72

72 One-Ring Traversal

1. Start at vertex 2. Outgoing halfedge

Leif Kobbelt RWTH Aachen University 73

73 One-Ring Traversal

1. Start at vertex 2. Outgoing halfedge 3. Opposite halfedge

Leif Kobbelt RWTH Aachen University 74

74 One-Ring Traversal

1. Start at vertex 2. Outgoing halfedge 3. Opposite halfedge 4. Next halfedge

Leif Kobbelt RWTH Aachen University 75

75 One-Ring Traversal

1. Start at vertex 2. Outgoing halfedge 3. Opposite halfedge 4. Next halfedge 5. Opposite

Leif Kobbelt RWTH Aachen University 76

76 One-Ring Traversal

1. Start at vertex 2. Outgoing halfedge 3. Opposite halfedge 4. Next halfedge 5. Opposite 6. Next 7. ...

Leif Kobbelt RWTH Aachen University 77

77 Halfedge-Based Libraries

• CGAL – www.cgal.org – computational geometry – free for non-commercial use

• OpenMesh – www.openmesh.org – mesh processing – free, LGPL licence

Leif Kobbelt RWTH Aachen University 78

78 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

Leif Kobbelt RWTH Aachen University 79

79 Outline

• (mathematical) geometry representations – parametric vs. implicit • approximation properties • types of operations – distance queries – evaluation – modification / deformation • data structures

Leif Kobbelt RWTH Aachen University 80

80