Simplification and Improvement of Tetrahedral Models for Simulation Barbara Cutler, MIT Julie Dorsey, Yale Leonard McMillan, UNC - Chapel Hill
Motivation Physical simulations are now in widespread use in computer graphics Interactive deformation & fracture simulations However, preparing appropriate models is challenging
[Cutler et al. 02] & [Müller et al. 02] Motivation 1,200 bone tetras 800 skin tetras 300 bone tetras 850 skin tetras (head only) [Cutler et al. 02] & [Müller et al. 02]
Contributions Simplification and shape improvement to meet interactive simulation requirements Element quality metric Models from high-resolution scanned meshes with interior boundaries Robust & efficient implementation
Overview Previous Meshing Research Goals and Requirements Algorithm Mesh Generation Mesh Simplification Mesh Improvement Mesh Refinement Goals and Requirements Algorithm Results Conclusions & Future Work
Mesh Generation Given some boundary, fill the interior with elements Advancing Front / Advancing Layers [Lohner 88, Pirzadeh 96] Delaunay Triangulation [Baker 89, Shewchuk 97, Cavalcanti & Mello 99, Persson & Strang 04] Structured/Octree Tetrahedralization [Yerry & Shepard 84, Nielson & Sung 97]
Mesh Simplification Reduce the overall number of elements Progressive Mesh - edge collapses only 2D [Hoppe 96] 3D [Staadt 98, Cignoni et al. 00, Chiang & Lu 03, Natarajan & Edelsbrunner 04] Complex transformations – more difficult to implement, allows topology change 2D [Shroeder et al. 92, Turk 92] 3D [Trotts et al. 98, Chopra & Meyer 02]
Mesh Improvement Improve the quality/shape of elements in the mesh Local transformations to improve shape [Frey & Field 91, Hoppe et al. 93, Joe 95] Sliver removal from Delaunay Triangulations [Cheng et al. 99, Edelsbrunner & Guoy 02] Combination of transformations more effective than a single type [Freitag & Ollivier-Gooch 97]
Mesh Refinement Increase the local resolution of the mesh (while maintaining element quality) Regular Subdivision [Bank et al. 83, Bey 95, Edelsbrunner & Grayson 00] Edge Bisection [Alder 83, Rivara & Levin 92, Liu & Joe 95, Maubach 95, Arnold et al. 00]
Overview Previous Meshing Research Goals and Requirements Algorithm Element Quality Metric Algorithm Results Conclusions & Future Work
Goals and Requirements Reduce the overall number of elements Maintain the material boundaries Improve the shape of each element Reasonable distribution of elements Robustness Scalability
Why is Element Shape Important? Very small dihedral angles → the stiffness matrix is constrained [Babuska & Aziz 76] Very large dihedral angles → errors in FEM increase [Krizek 92] All elements must meet minimum shape requirements
Element Quality Metric Geometric mean of 3 components: Shape minimum solid angle (equilateral ≈ 0.55 steradians) Volume ideal volume = Edge Length ideal edge length = 3√ ideal volume total volume target tetra count
Overview Previous Meshing Research Goals and Requirements Algorithm Local mesh transformations Block iteration Results Conclusions & Future Work
Local Mesh Transformations Tetrahedral Swaps Edge Collapse Vertex Smoothing Vertex Addition
Local Mesh Transformations Tetrahedral Swaps Choose the configuration with the best local element shape Edge Collapse Vertex Smoothing Vertex Addition
Local Mesh Transformations Tetrahedral Swaps Edge Collapse Delete a vertex & the elements around the edge Vertex Smoothing Vertex Addition Before After
Prioritizing Edge Collapses Spanning: never collapse Boundary: check error Preserve topology Thin layers should not pinch together Collapse weight Edge length + boundary error No negative volumes Local element quality does not significantly worsen Boundary-Touching: one-way collapse Interior: ok to collapse
Local Mesh Transformations Tetrahedral Swaps Edge Collapse Vertex Smoothing Move a vertex to the centroid of its neighbors Convex or concave, but avoid negative-volume elements Vertex Addition Before After
Local Mesh Transformations Tetrahedral Swaps Edge Collapse Vertex Smoothing Vertex Addition At the center of a tetra, face, or edge Useful when mesh is simplified, but needs further element shape improvement
Ensuring Consistency Prevent mesh degeneracies Examine the neighbors sharing each face, edge and vertex (see paper for list) Implementation must be tolerant of negative- and zero-volume elements May be present in input models or at intermediate stages of deformation
Block Iteration Algorithm while (tetra count > target tetra count) T = a subset of all elements randomly reorder T foreach t T, try: tetrahedral swaps edge collapse move vertex add vertex Look for an action that improves or removes this element
Block Iteration Algorithm E is the allowable boundary error E = ideal edge length while (tetra count > target tetra count) T = a subset of all elements randomly reorder T foreach t T, try: tetrahedral swaps edge collapse move vertex add vertex E *= As ∆E → 0, the Block Iteration Algorithm is equivalent to a Progressive Mesh √ tetra count target tetra count 3
Block Iteration Algorithm E = ideal edge length percent = 10% while (tetra count > target tetra count) T = the poorest percent of all elements randomly reorder T foreach t T, try: tetrahedral swaps edge collapse move vertex add vertex E *= percent += 10% The Block Iteration Algorithm is a partial order Not all of the edge weights must be recomputed before the next transformation √ tetra count target tetra count 3
Computing Edge Collapse Weight Expensive to determine legality of collapse, especially in 3D On average 100 edge weights are invalidated when an edge is collapsed Progressive Mesh maintains a priority queue of all collapse weights (total order) Before After
Edge Collapse Weight Recomputation Average number of edge weight re-computations before an edge is collapsed Block Iteration Progressive Mesh ratio 461K → 2K 28.2 240.5 8.5 461K → 10K 40.3 240.2 6.0 461K → 50K 67.7 238.9 3.5 Edge collapse weight re-computation dominates the running time (~80%)
Overview Previous Meshing Research Goals and Requirements Algorithm Results Meshes, Performance, Quality Comparison to Previous Work Conclusions & Future Work
Results: Hand original (100K faces) 10K tetras (7K faces) 100K tetras
Results: Dragon original (100K faces) 100K tetras (48K faces)
Performance Block Iteration (all transformations) mm:ss 461K → 2K 9:20 461K → 10K 12:12 461K → 50K 27:45 Extreme simplification is faster because E, the allowable error, is larger (optimizing over fewer elements)
Performance Block Iteration (all transformations) mm:ss (edge collapse only) Progressive Mesh ratio 461K → 2K 9:20 6:38 1:02:08 9.4 461K → 10K 12:12 7:25 1:01:35 8.3 461K → 50K 27:45 13:24 57:15 4.3 Edge collapse weight re-computation dominates the running time (~80%)
Visualization of Element Quality good angle, but small-volume 1,050K tetras (133K faces) zero-angle & zero-volume near-equilateral & ideal-volume
Visualization of Element Quality Octree or Adaptive Distance Field (ADF) 461K tetras (108K faces)
Visualization of Element Quality After Simplification & Mesh Improvement 10K tetras (3K faces)
Variety of Transformations All Transformations Edge Collapse Only More likely to contain poor quality elements or require large boundary error, E
Overview Previous Meshing Research Goals and Requirements Algorithm Results Conclusions & Future Work
Conclusions Element quality metric Robust & efficient implementation Ensures removal of poorest quality elements to meet FEM requirements Encourages iterative modeling
Future Work Switch to a total-order mesh optimization (e.g. Progressive Mesh) at end to improve performance Order of transformations attempted Multiple transformation look-ahead Topological simplification Online local re-meshing & refinement
Thank You Matthias Müller, Rob Jagnow, Justin Legakis, Derek Bruening, Frédo Durand MIT Computer Graphics Group