Simplification and Improvement of Tetrahedral Models for Simulation
Barbara Cutler, MITJulie 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
Motivation
300 bone tetras
850 skin tetras
(head only)
1,200 bone tetras
800 skin tetras
[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– 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
– 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 volumetarget 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
• Preserve topology– Thin layers should not
pinch together
• Collapse weight– Edge length +
boundary error
• No negative volumes• Local element quality
does not significantly worsen
Interior: ok to collapse
Boundary:
check error
Spanning: never collapse
Boundary-Touching:one-way 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 elementsrandomly reorder Tforeach 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 count)
T = a subset of all elementsrandomly reorder Tforeach t T, try:
• tetrahedral swaps• edge collapse• move vertex• add vertex
E *=
tetra count
target tetra count√3
As ∆E → 0, the Block Iteration Algorithm is equivalent to a Progressive Mesh
E is the allowable boundary error
Block Iteration Algorithm
E = ideal edge lengthpercent = 10%while (tetra count > target tetra count)
T = the poorest percent of all elementsrandomly reorder Tforeach t T, try:
• tetrahedral swaps• edge collapse• move vertex• add vertex
E *=
percent += 10%
tetra count
target tetra count√3
The Block Iteration Algorithm is a partial order
Not all of the edge weights must be recomputed before the next transformation
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.5Edge 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: Handoriginal
(100K faces)
100K tetras(57K faces) 30K tetras
(19K faces)
10K tetras(7K faces)
Results: Dragonoriginal
(100K faces)
5K tetras(3K 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
Block Iteration(edge collapse
only)
mm:ss
Progressive Mesh
(edge collapse only)
mm:ss 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
1,050K tetras(133K faces)
zero-angle &
zero-volume
good angle, but small-
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
Improvement10K tetras(3K faces)
Variety of Transformations
More likely to contain poor quality elements or require
large boundary error, E
All Transformations Edge Collapse Only
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
Top Related