Difference between revisions of "ImprovingMeshQualityOfMarchingCubes"
m |
|||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Image:Macet_paper_teaser.png]] | |||
Carlos Dietrich, Joao Comba, Luciana Nedel, Carlos Scheidegger, John Schreiner, Claudio Silva. Edge Transformations for Improving Mesh Quality of Marching Cubes. 2007, submitted. | Carlos Dietrich, Joao Comba, Luciana Nedel, Carlos Scheidegger, John Schreiner, Claudio Silva. Edge Transformations for Improving Mesh Quality of Marching Cubes. 2007, submitted. | ||
== | === Abstract === | ||
Marching Cubes is a popular choice for isosurface | |||
extraction from regular grids due to its simplicity, robustness, and | |||
efficiency. One of the key shortcomings of this approach is the | |||
quality of the resulting meshes, which tend to have many poorly | |||
shaped and degenerate triangles. | |||
This issue is often addressed | |||
through post processing operations such as smoothing. As we | |||
describe, while these improve the mesh, they do not remove all | |||
degeneracies, and incur an increased and unbounded error between the | |||
resulting mesh and the original isosurface. | |||
Rather than modifying the resulting mesh, we propose a method | |||
to modify the grid on which Marching Cubes operates. | |||
This modification greatly increases the quality of the extracted | |||
isosurface. In our experiments, it did not create a single | |||
degenerate triangle, unlike any other method we experimented with. | |||
Our method essentially eliminates postprocessing related to mesh | |||
quality. We show improvements in subsequent mesh processing, | |||
using the generated surface directly as input to a tetrahedral mesh | |||
generator. | |||
The method incurs minimal computational overhead, | |||
requiring at most twice the execution time of the original Marching | |||
Cubes algorithm in our experiments. Most importantly, it can be | |||
readily integrated in existing Marching Cubes implementations, and is | |||
orthogonal to many Marching Cubes enhancements (such as out-of-core | |||
and acceleration methods). The method can also be directly applied | |||
to other related isosurface extraction algorithms such as Marching | |||
Tetrahedra, and Marching Octahedra. | |||
== | == Get the software == | ||
To compile the basic software, which generates isosurfaces using Macet, you will need [http://teem.sourceforge.net teem] and [http://www.boost.org boost] to be installed. There is a linux makefile and a Visual Studio solution file available. The source is available [http://www.sci.utah.edu/~cscheid/software/macet.tar.gz here (.tar.gz)] or [http://www.sci.utah.edu/~cscheid/software/macet.zip here (.zip)] | |||
== Usage == | |||
To generate a macet isosurface: | |||
./macet <nrrd_file> <iso_value> <output_off_file> -isCombined | |||
To generate a regular Marching Cubes isosurface: | |||
./macet <nrrd_file> <iso_value> <output_off_file> | |||
Latest revision as of 20:39, 21 June 2007
Carlos Dietrich, Joao Comba, Luciana Nedel, Carlos Scheidegger, John Schreiner, Claudio Silva. Edge Transformations for Improving Mesh Quality of Marching Cubes. 2007, submitted.
Abstract
Marching Cubes is a popular choice for isosurface extraction from regular grids due to its simplicity, robustness, and efficiency. One of the key shortcomings of this approach is the quality of the resulting meshes, which tend to have many poorly shaped and degenerate triangles. This issue is often addressed through post processing operations such as smoothing. As we describe, while these improve the mesh, they do not remove all degeneracies, and incur an increased and unbounded error between the resulting mesh and the original isosurface. Rather than modifying the resulting mesh, we propose a method to modify the grid on which Marching Cubes operates. This modification greatly increases the quality of the extracted isosurface. In our experiments, it did not create a single degenerate triangle, unlike any other method we experimented with. Our method essentially eliminates postprocessing related to mesh quality. We show improvements in subsequent mesh processing, using the generated surface directly as input to a tetrahedral mesh generator. The method incurs minimal computational overhead, requiring at most twice the execution time of the original Marching Cubes algorithm in our experiments. Most importantly, it can be readily integrated in existing Marching Cubes implementations, and is orthogonal to many Marching Cubes enhancements (such as out-of-core and acceleration methods). The method can also be directly applied to other related isosurface extraction algorithms such as Marching Tetrahedra, and Marching Octahedra.
Get the software
To compile the basic software, which generates isosurfaces using Macet, you will need teem and boost to be installed. There is a linux makefile and a Visual Studio solution file available. The source is available here (.tar.gz) or here (.zip)
Usage
To generate a macet isosurface:
./macet <nrrd_file> <iso_value> <output_off_file> -isCombined
To generate a regular Marching Cubes isosurface:
./macet <nrrd_file> <iso_value> <output_off_file>