)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 Computer 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 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/v no connectivity!
Leif Kobbelt RWTH Aachen University 67
67 Shared Vertex (OBJ, OFF)
• vertex: Vertices Triangles
– position x1 y1 z1 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