Isotopic Approximation within a Tolerance Volume Manish Mandad David Cohen-Steiner Pierre Alliez Inria Sophia Antipolis - 1
Goals and Motivation - 2
Goals and Motivation Input: Tolerance volume of a surface geometry - 3
Goals and Motivation Input: Tolerance volume of a surface geometry Output: Surface triangle mesh Properties: Within tolerance volume Motivation: control global approximation error - 4
Goals and Motivation Input: Tolerance volume of a surface geometry Output: Surface triangle mesh Properties: Within tolerance volume Intersection free Motivation: simulation, machining, printing etc. - 5
Goals and Motivation Input: Tolerance volume of a surface geometry Output: Surface triangle mesh Properties: Within tolerance volume Intersection free Low vertex count Motivation: get an approximated mesh, low polygon count - 6
Goals and Motivation A Condition for Isotopic Approximation [Chazal, Cohen-Steiner 04] Constructive algorithm for this theoretical result - 7
Goals and Motivation A Condition for Isotopic Approximation [Chazal, Cohen-Steiner 04] Ω : Topological thickening of S Ω Ω 1 Ω 2-8
Goals and Motivation A Condition for Isotopic Approximation [Chazal, Cohen-Steiner 04] Ω : Topological thickening of S If S is included and separates sides of Ω, S is connected and Genus of S does not exceed genus of S Then, S and S are isotopic. Ω S - 9
Related Work - 10
Related Work Simplification Envelopes Cohen et al. 1996 Multiresolution decimation based on global error Ciampalini et al. 1997 Adaptively Sampled Distance Fields Frisken et al. 2000 Permission Grids: Practical, Error-Bounded Simplification Zelinka Garland 2002 Intersection Free Simplification Gumhold et al. 2003 GPU-based Tolerance Volumes for Mesh Processing Simplification of surface mesh using Hausdorff envelope Botsch et al. 2004 Borouchaki Frey 2005-11
Related Work Simplification Envelopes [Cohen et al. 96] - 12
Related Work Simplification Envelopes [Cohen et al. 96] Very good for simple geometry Input dependent Tolerance hinders simplification - 13
Overview Sampling Refinement Tolerance Volume Ω Simplification Output - 14
Algorithm - 15
Algorithm (Initialization) S: Point sample of Ω with labels f = -1 f = +1 σ radii balls at S cover Ω Initialization - 16
Algorithm (Initialization) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box f = -1 +1 +1 f = +1 f = +1 +1 +1 Initialization - 17
Algorithm (Initialization) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box f = -1 +1 +1 f T f = +1 f = +1 +1 +1 Initialization - 18
Algorithm (Initialization) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box f = -1 s Error µ(s)= f(s) f T (s) +1 +1 f T f = +1 f = +1 +1 +1 Initialization - 19
Algorithm (coarse-to-fine) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Sample point (s S) with maximum error Refinement - 20
Algorithm (coarse-to-fine) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T f = -1 f T = 0 Zero-set f = +1 f = +1 Refinement - 21
Algorithm (coarse-to-fine) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Refinement - 22
Algorithm (coarse-to-fine) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Refinement - 23
Algorithm (coarse-to-fine) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Refinement - 24
Algorithm (coarse-to-fine) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Boundary of simplicial tolerance ( Ɣ) Refinement - 25
Algorithm (coarse-to-fine) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Extension to 3D? Guarantees? Refinement - 26
Refinement (conditions) Zero set may cross Ω due to flat tetrahedra - 27
Refinement (conditions) Zero set may cross Ω due to flat tetrahedra Ensure interpolated function is Lipschitz - 28
Refinement (conditions) Zero set may cross Ω due to flat tetrahedra Ensure interpolated function is Lipschitz μ(s) < 1 α, given some α [0, 1] μ(s) < 1 Classify samples with a margin - 28
Refinement (conditions) Zero set may cross Ω due to flat tetrahedra Ensure interpolated function is Lipschitz μ(s) < 1 α, given some α [0, 1] h > 2σ/α - 29
Refinement (conditions) What else do we need to fix? - 30
Refinement (conditions) Misoriented elements - 31
Refinement (conditions) Misoriented elements Interpolated function should classify well local geometry f T defined on ΔABC should classify well samples of S nearest (orange) to a shrunk triangle (green) - 32
Refinement (conditions) S not classified : μ(s)>1 { } μ(s) 1 α given some α [0;1] h 2σ/α f does not classifies local geometry - 33
Algorithm (fine-to-coarse) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Collapse edges of Ɣ Simplification - 34
Simplification (conditions) - 36
Simplification (conditions) Validity of Triangulation Combinatorial Topology [Dey et al. 98] Link condition Valid embedding Visibility kernel of 1-ring [Lee-Preparata 79] Edge PQ to be collapsed Valid embedding kernel - 37
Simplification (conditions) Validity of Triangulation Combinatorial Topology [Dey et al. 98] Valid embedding Visibility kernel of 1-ring [Lee-Preparata 79] Edge PQ to be collapsed Valid embedding kernel - 38
Simplification (conditions) Validity of Triangulation Combinatorial Topology [Dey et al. 98] Valid embedding Visibility kernel of 1-ring [Lee-Preparata 79] Preserve classification of S Non convex problem Edge PQ to be collapsed Valid embedding kernel Region that preserve classification of S - 39
Simplification (conditions) Validity of Triangulation Combinatorial Topology [Dey et al. 98] Valid embedding Visibility kernel of 1-ring [Lee-Preparata 79] Preserve classification of S Non convex problem Optimal location : Minimizes sum of squared distances between target vertex and 2-ring planes - 40
Simplification (conditions) Validity of Triangulation Combinatorial Topology [Dey et al. 98] Valid embedding Visibility kernel of 1-ring [Lee-Preparata 79] Preserve classification of S Non convex problem Optimal location : Minimizes sum of squared distances between target vertex and 2-ring planes Faithful normals (same as in refinement) - 42
Algorithm (fine-to-coarse) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Collapse edges of Ɣ Simplification - 40
Algorithm (fine-to-coarse) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Collapse edges of Ɣ Simplification - 41
Algorithm (fine-to-coarse) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Collapse edges of Ɣ Simplification - 42
Algorithm (fine-to-coarse) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Collapse edges of Ɣ Insert Z in T Simplification - 43
Algorithm (fine-to-coarse) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Collapse edges of Ɣ Insert Z in T Collapse edges of Z Simplification - 44
Algorithm (fine-to-coarse) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Collapse edges of Ɣ Insert Z in T Collapse edges of Z Simplification - 45
Algorithm (fine-to-coarse) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Collapse edges of Ɣ Insert Z in T Collapse edges of Z Simplification - 46
Algorithm (fine-to-coarse) S: Point sample of Ω with labels Delaunay Triangulation T of loose bounding-box While (S not classified) Insert Steiner point to T Collapse edges of Ɣ Insert Z in T Collapse edges of Z Final output Output - 47
Recap - 48
Recap - 48
Recap - 48
Recap - 48
Proof - 55
Proof Termination Topology Only assumes separability condition on Ω - 56
Results - 62
Blade Input Ω Refinement Simplification on Ɣ Simplification on Z Simplification on all edges - 63
Varying Tolerance (fertility) - 64
Varying Tolerance (vase lion) - 65
Progress of Algorithm tolerance - 66
Robustness to input dataset and noise - 67
Robustness to input dataset and noise - 68
Robustness to input dataset and noise - 69
Robustness to input dataset and noise [Chazal et al. 11] - 70
Comparisons - 71
Comparison (Simplification Envelopes) Input Simplification Envelopes H = 60% Our Algorithm H = 10% - 72
Comparisons Hausdorff distance (output to input) - 73
Comparisons Hausdorff distance (output to input) - 74
Comparisons Hausdorff distance (input to output) - 75
Comparisons Hausdorff distance (input to output) - 76
Comparisons Hausdorff distance (input to output) - 77
Comparisons Hausdorff distance (input to output) - 78
Comparisons Hausdorff distance (output to input) dots: self intersection - 79
Comparisons Hausdorff distance (input to output) - 80
Anisotropy - 81
Anisotropy - 82
Extensions - 83
Non-closed Surfaces 2δ rδ During Simplification : Hausdorff distance between Z and boundary is enforced to be δ. - 84
Non-closed Surfaces Input preserving holes repairing holes - 85
Non-manifold - 86
Limitations Tolerance volume dependence Compute and memory intensive Slow for small tolerance - 87
Conclusions Algorithm for isotopic approximation Always intersection free and within tolerance Low mesh complexity - 88
Further Work Out-of-core Progressive algorithm - 89
Questions Thank you. - 90