Simplification and Improvement of Tetrahedral Models for Simulation

  • Slides: 40
Download presentation
Simplification and Improvement of Tetrahedral Models for Simulation Barbara Cutler, MIT Julie Dorsey, Yale

Simplification and Improvement of Tetrahedral Models for Simulation Barbara Cutler, MIT Julie Dorsey, Yale Leonard Mc. Millan, UNC - Chapel Hill

Motivation • Physical simulations are now in widespread use in computer graphics • Interactive

Motivation • Physical simulations are now in widespread use in computer graphics • Interactive deformation & fracture simulations • However, preparing appropriate models is challenging

Motivation 1, 200 bone tetras 300 bone tetras 800 skin tetras 850 skin tetras

Motivation 1, 200 bone tetras 300 bone tetras 800 skin 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

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 – – • • Mesh Generation Mesh Simplification Mesh

Overview • Previous Meshing Research – – • • 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 /

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

Mesh Simplification Reduce the overall number of elements • Progressive Mesh - edge collapses only – 2 D [Hoppe 96] – 3 D [Staadt 98, Cignoni et al. 00, Chiang & Lu 03, Natarajan & Edelsbrunner 04] • Complex transformations – more difficult to implement, allows topology change – 2 D [Shroeder et al. 92, Turk 92] – 3 D [Trotts et al. 98, Chopra & Meyer 02]

Mesh Improvement Improve the quality/shape of elements in the mesh • Local transformations to

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

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 – Element Quality Metric •

Overview • Previous Meshing Research • Goals and Requirements – Element Quality Metric • Algorithm • Results • Conclusions & Future Work

Goals and Requirements • • • Reduce the overall number of elements Maintain the

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

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

Element Quality Metric Geometric mean of 3 components: • Shape – minimum solid angle (equilateral ≈ 0. 55 steradians) • Volume total volume – ideal volume = target tetra count • Edge Length – ideal edge length = 3√ ideal volume

Overview • Previous Meshing Research • Goals and Requirements • Algorithm – Local mesh

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 Edge Collapse Vertex Smoothing Vertex Addition

Local Mesh Transformations • Tetrahedral Swaps – Choose the configuration with the best local

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 &

Local Mesh Transformations • Tetrahedral Swaps • Edge Collapse – Delete a vertex & the elements around the edge • Vertex Smoothing • Vertex Addition Before After

Prioritizing Edge Collapses • Preserve topology Spanning: never collapse Boundary: check error – Thin

Prioritizing Edge Collapses • Preserve topology Spanning: never collapse Boundary: check error – 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

Local Mesh Transformations • Tetrahedral Swaps • Edge Collapse • Vertex Smoothing – Move a vertex to the centroid of its neighbors – Convex or concave, but avoid negativevolume elements • Vertex Addition Before After

Local Mesh Transformations • • Tetrahedral Swaps Edge Collapse Vertex Smoothing Vertex Addition –

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

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

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 = ideal edge length while (tetra count > target tetra

Block Iteration Algorithm 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 *= √ 3 tetra count target tetra count E is the allowable boundary error As ∆E → 0, the Block Iteration Algorithm is equivalent to a Progressive Mesh

Block Iteration Algorithm E = ideal edge length percent = 10% while (tetra count

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: The Block Iteration • tetrahedral swaps Algorithm is a partial order • edge collapse • move vertex Not all of the edge weights • add vertex must be recomputed before the next transformation 3 tetra count E *= target tetra count percent += 10% √

Computing Edge Collapse Weight • Expensive to determine legality of collapse, especially in 3

Computing Edge Collapse Weight • Expensive to determine legality of collapse, especially in 3 D • 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

Edge Collapse Weight Recomputation Average number of edge weight re-computations before an edge is collapsed Block Iteration Progressive Mesh ratio 461 K → 2 K 28. 2 240. 5 8. 5 461 K → 10 K 40. 3 240. 2 6. 0 461 K → 50 K 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,

Overview • • Previous Meshing Research Goals and Requirements Algorithm Results – Meshes, Performance, Quality – Comparison to Previous Work • Conclusions & Future Work

Results: Hand original (100 K faces) 10 K tetras (7 K faces) 100 K

Results: Hand original (100 K faces) 10 K tetras (7 K faces) 100 K tetras (57 K faces) 30 K tetras (19 K faces)

Results: Dragon original (100 K faces) 100 K tetras (48 K faces) 5 K

Results: Dragon original (100 K faces) 100 K tetras (48 K faces) 5 K tetras (3 K faces)

Performance Block Iteration (all transformations) mm: ss 461 K → 2 K 9: 20

Performance Block Iteration (all transformations) mm: ss 461 K → 2 K 9: 20 461 K → 10 K 12: 12 461 K → 50 K 27: 45 Extreme simplification is faster because E, the allowable error, is larger (optimizing over fewer elements)

Performance Block Iteration (all transformations) mm: ss Block Iteration Progressive Mesh (edge collapse only)

Performance Block Iteration (all transformations) mm: ss Block Iteration Progressive Mesh (edge collapse only) mm: ss ratio mm: ss 461 K → 2 K 9: 20 6: 38 1: 02: 08 9. 4 461 K → 10 K 12: 12 7: 25 1: 01: 35 8. 3 461 K → 50 K 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, 050 K tetras (133 K

Visualization of Element Quality good angle, but small-volume 1, 050 K tetras (133 K faces) zero-angle & zero-volume near-equilateral & ideal-volume

Visualization of Element Quality Octree or Adaptive Distance Field (ADF) 461 K tetras (108

Visualization of Element Quality Octree or Adaptive Distance Field (ADF) 461 K tetras (108 K faces)

Visualization of Element Quality After Simplification & Mesh Improvement 10 K tetras (3 K

Visualization of Element Quality After Simplification & Mesh Improvement 10 K tetras (3 K faces)

Variety of Transformations All Transformations Edge Collapse Only More likely to contain poor quality

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 &

Overview • • • Previous Meshing Research Goals and Requirements Algorithm Results Conclusions & Future Work

Conclusions • Element quality metric • Robust & efficient implementation • Ensures removal of

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

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 •

Thank You • Matthias Müller, Rob Jagnow, Justin Legakis, Derek Bruening, Frédo Durand • MIT Computer Graphics Group