Download presentation
Presentation is loading. Please wait.
Published byAdam Rogers Modified over 9 years ago
1
A lightweight approach to repairing digitized polygon meshes Marco Attene IMATI-GE / CNR 2010 Presented by Naitsat Alexander
2
Desirable meshes Closed watertight mesh Single oriented manifold No degenerated elements Type of defects : –Defects in topology –Defects in geometry 2 link : [2][2]
3
Topological defects 3 [3]
4
Geometrical defects 4 [3]
5
Importance of mesh repairing 5 Slicing for 3D printing Partition into voxels –Inside test for voxels Generation of tetrahedral meshes –Tetgen library
6
Volumetric algorithms + More robust - Produce a new mesh Surface algorithms + Less aggressive - Can’t handle too much defects 6 Repairing methods [3]
7
Volumetric algorithms + More robust - Produce a new mesh Surface algorithms + Less aggressive - Can’t handle too much defects 7 Repairing methods [6]
8
Volumetric algorithms + More robust - Produce a new mesh Surface algorithms + Less aggressive - Can’t handle too much defects 8 Repairing methods [3]
9
General steps in repairing 9 Polygonal mesh Triangulation & Preprocessing Triangulation & Preprocessing Fixing topology Fixing Geometry Triangle mesh of closed manifold
10
Simplicial complexes = set of subsets of {1,…n} Realization of f:V R 3 10 1 2 3 4 5 6 7 8 9 11 12 13 14 (1,5,6)(6,5,7)(9,6,8) l(6)= l(6*)= { (1,5,6),(6,5,7),(9,6,8) } V = { 1,2,…,14 } E = { {1,2},{1,3}, …,{1,6}, {2,3}… } F = { (1,2,3), (1,3,4),(1,4,2),… }
11
Simplicial complexes Simplicial neighborhood of order k (k-ring) 11 [1]
12
Repairing topology 12 Polygonal mesh Triangulation & Data init Remove topological singularities Orient mesh no cuts Triangle mesh of closed manifold Patch mesh holes Keep the largest connected component
13
Repairing topology 13 Polygonal mesh Triangulation & Data init Remove topological singularities Orient mesh no cuts Triangle mesh of closed manifold Patch mesh holes Keep the largest connected component
14
Repairing topology 14 “Cutting and Stitching” A. Gueziec, G. Taubin, F. Lazarus 2001 Polygonal mesh Triangulation & Data init Remove topological singularities Orient mesh no cuts Triangle mesh of closed manifold Patch mesh holes Keep the largest connected component
15
v Cutting and Stitching 1.Locating singularities Singular edges Singular isolated vertices 15 l(v) e rank(e)>2
16
Cutting and Stitching 1.Locating singularities Singular edges Singular isolated vertices 2.Cutting Global and local 16 e3e3 l(v 2 ) v1v1 v2v2 e2e2 e1e1
17
Local and Global cutting 17 local global [4]
18
Cutting and Stitching 1.Locating singularities Singular edges Singular isolated vertices 2.Cutting Global and local 3.Stitching 18 v1v1 l(v 2 ) e1e1 e2e2 v2v2 l(v 1 )
19
Stitching 19 Pinching two adjacent edges that were cut [4]
20
Repairing topology 20 Polygonal mesh Triangulation & Data init Remove topological singularities Orient mesh no cuts Triangle mesh of closed manifold Patch mesh holes Keep the largest connected component
21
Repairing topology: long gaps 21 Polygonal mesh Triangulation & Data init Remove topological singularities Orient mesh no cuts Patch the holes Keep the largest connected component Triangle mesh of closed manifold ?
22
Repairing topology 22 Polygonal mesh Triangulation & Data init Remove topological singularities Orient mesh no cuts Triangle mesh of closed manifold Patch mesh holes Keep the largest connected component Stitch components [5]
23
Repairing topology 23 1.Orient the seed triangle 2.Propagate orientation to entire mesh 3.Cut through inconsistently orientated triangles 4.If cuts were necessary then terminate Polygonal mesh Triangulation & Data init Remove topological singularities Orient mesh no cuts Triangle mesh of closed manifold Patch mesh holes Keep the largest connected component
24
Repairing topology 24 Polygonal mesh Triangulation & Data init Remove topological singularities Orient mesh no cuts Triangle mesh of closed manifold Patch mesh holes Keep the largest connected component P. Liepa. “Filling holes in meshes” 2003
25
Filling holes in meshes Main stages of the algorithm 1.Compute a coarse triangulation to fill a hole Based on Barequet et al. 1995 2.Refine and smooth triangulation to match the surrounding density and geometry 25 [3]
26
Filling holes in meshes Assumptions: Holes are connected components of the boundary Holes are simply connected polygons No islands in holes 26 n vertices n-2 triangles Self-intersections cannot be excluded Quality depends on boundary distortion
27
Filling holes in meshes Weight w(T) of triangulation T 27
28
Filling holes in meshes Weight w(T) of triangulation T 28
29
Filling holes in meshes w(i,j) = minimal weight in triangulating sub-polygon i,i+1,…,j w(2,9) = ? 29 [3]
30
Filling holes in meshes 30 w(i,j) = minimal weight in triangulating sub-polygon i,i+1,…,j w(2,9) = min ( w( (2,3,9)) + w(3,9),
31
Filling holes in meshes 31 w(i,j) = minimal weight in triangulating sub-polygon i,i+1,…,j w(2,9) = min ( w( (2,3,9)) + w(3,9), w(2,4)+w( (2,4,9)) + w(4,9),
32
Filling holes in meshes 32 w(i,j) = minimal weight in triangulating sub-polygon i,i+1,…,j w(2,9) = min ( w( (2,3,9)) + w(3,9), w(2,4)+w( (2,4,9)) + w(4,9), w(2,5)+w( (2,5,9)) + w(5,9),
33
Filling holes in meshes 33 w(i,j) = minimal weight in triangulating sub-polygon i,i+1,…,j w(2,9) = min ( w( (2,3,9)) + w(3,9), w(2,4)+w( (2,4,9)) + w(4,9), w(2,5)+w( (2,5,9)) + w(5,9), w(2,6)+w( (2,6,9)) + w(6,9),
34
Filling holes in meshes 34 w(i,j) = minimal weight in triangulating sub-polygon i,i+1,…,j w(2,9) = min ( w( (2,3,9)) + w(3,9), w(2,4)+w( (2,4,9)) + w(4,9), w(2,5)+w( (2,5,9)) + w(5,9), w(2,6)+w( (2,6,9)) + w(6,9), w(2,7)+w( (2,7,9)) + w(7,9),
35
Filling holes in meshes w(i,j) = minimal weight in triangulating sub-polygon i,i+1,…,j w(2,9) = min ( w( (2,3,9)) + w(3,9), w(2,4)+w( (2,4,9)) + w(4,9), w(2,5)+w( (2,5,9)) + w(5,9), w(2,6)+w( (2,6,9)) + w(6,9), w(2,7)+w( (2,7,9)) + w(7,9), w(2,8)+w( (2,8,9)) ) 35
36
Filling holes in meshes w(0,n) = minimal weight in triangulating the boundary Recursive formula O(n 3 ) complexity (Dynamic programming) 36
37
Filling holes : results 37 [3]
38
Degeneracy removal 38 Mesh M k ← 0 Mesh M k ← 0 T ← narrow triangles k ← k+1 T ← narrow triangles k ← k+1 Fixed mesh Remove N k (T) & Path holes Fix triangles & update T Fix triangles & update T k> k max ? Failure Yes No
39
Repairing geometry 39 Mesh M k ← 0 Mesh M k ← 0 T ← narrow triangles k ← k+1 T ← narrow triangles k ← k+1 Fixed mesh Remove N k (T) & Path holes Epsilon geometry to locate narrow triangles Repairing by swap & collapse method Fix triangles & update T Fix triangles & update T k> k max ? Failure Yes No
40
Swap and Collapse Nearly flat triangle with > - –Swap edge against Other narrow triangles with < –Collapse edge against Check if swap/collapse is legal 40 =arcsin(10 -5 ) [1]
41
Degeneracy removal 41 Mesh M k ← 0 Mesh M k ← 0 T ← narrow triangles k ← k+1 T ← narrow triangles k ← k+1 Fixed mesh Remove N k (T) & Path holes Maximal number of iterations = 3 Fix triangles & update T Fix triangles & update T k> k max ? Failure Yes No
42
Degeneracy removal 42 Mesh M k ← 0 Mesh M k ← 0 T ← narrow triangles k ← k+1 T ← narrow triangles k ← k+1 Fixed mesh Remove N k (T) & Path holes Remove possible disconnected components Next loop of repairing is made only for effected triangles Fix triangles & update T Fix triangles & update T k> k max ? Failure Yes No
43
Removal of self intersections 43 Mesh M k ← 0 Mesh M k ← 0 Init voxels Fixed mesh Remove N k (T) & Path holes T ← self intersecting triangles k ← k+1 T ← self intersecting triangles k ← k+1 k> k max ? Failure Yes No
44
Removal of self intersections 44 Mesh M k ← 0 Mesh M k ← 0 Init/update voxels Fixed mesh Remove N k (T) & Path holes Building 100x100x100 voxels After 1 st loop storing only voxels of effected triangles T ← self intersecting triangles k ← k+1 T ← self intersecting triangles k ← k+1 k> k max ? Failure Yes No
45
Removal of self intersections 45 Mesh M k ← 0 Mesh M k ← 0 Init/update voxels Fixed mesh Remove N k (T) & Path holes Maximal number of iterations = 3 Remove possible disconnected components T ← self intersecting triangles k ← k+1 T ← self intersecting triangles k ← k+1 k> k max ? Failure Yes No
46
Repairing geometry : flow 46 Mesh M Degeneracy removal with k max = 3 Degeneracy removal with k max = 3 Fixed mesh M’ Fixed mesh M’ Self intersection removal with k max = 3 T ← narrow triangles success failure maximum of 10 iterations
47
Results 47 topology geometry [1]
48
Results 48 geometry topology [1]
49
Comparison Other methods for mesh repairing 1.S. Bischoff and L. Kobbelt. “Structure preserving cad model repair” 2005 2.F. Nooruddin and G. Turk. “Simplification and repair of polygonal models using volumetric techniques” 2003 3.T. Ju. “Robust repair of polygonal models” 2004 49
50
Comparison 50 11534 faces12634 faces17174 faces110908 faces363776 faces OriginalCurrent methodMethod 1Method 2Method 3 [1]
51
Failure cases 51 [1]
52
Improvements Parallel computations More efficient search for self-intersection –Adapting voxel size / octree resolution to the mesh Repairing topology and geometry in a single loop –There is overlap between the topology and the geometry stages 52
53
References 1)A lightweight approach to repairing digitized polygon meshes. Marco Attene. 2)Polygon Mesh Repairing: An Application Perspective. Marco Attene, Marcel Campen and Leif Kobbelt. 2012 3) Model Repair. Leif Kobbelt RWTH Aachen University. 4)Cutting and stitching : Converting sets of polygons to manifold surfaces. A. Gueziec, G. Taubin, F. Lazarus, and B. Horn. 5)Automatic mesh-healing technique for model repair and finite element model generation. C.S. Chong, A. Senthil Kumar, H.P. Lee. 6)A Practical Guide to Polygon Mesh Repairing. Marcel Campen, Marco Attene and Leif Kobbelt. 53
54
Thank you Questions ? 54
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.