Marching tetrahedra is a computer graphics algorithm for extracting a polygonal mesh of an isosurface from a 3-D volume. Where the Marching Cubes algorithm works on cubic cells, the marching tetrahedra algorithm works on tetrahedra cells. There are several advantages to this approach.
- It avoids the patent that covered the Marching Cubes algorithm, which has since expired.
- It could work on unstructured meshes as well as structured meshes (which could be split into six tetrahedra). In fact, it has been proven that any geometric cell can be deconstructed into a series of tetrahedra, making marching tetrahedra a generic solution for isosurface extraction on all grid types.
- A final advantage is that it avoided certain ambiguous cases in the Marching Cubes algorithm.
The marching tetrahedra algorithm is also significantly simpler than the marching cubes algorithm. Having only 4 points in a cell leads to merely 8 cases to consider, which can be reduced down to 3 with symmetry (no cross, 3 crosses = 1 point in, 2 crosses = 1 edge in). Because of the simplicity and that it is essentially a triangle-driven algorithm, the marching tetrahedra algorithm has enjoyed much research by GPGPU groups on accelerating it in hardware.
- Paul Bourke's "Polygonising a Scalar Field Using Tetrahedrons" - With source code examples