Difference between revisions of "ImprovingMeshQualityOfMarchingCubes"

From VistrailsWiki
Jump to navigation Jump to search
m
Line 3: Line 3:
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.


== Reproducing the results ==
=== Abstract ===


The results in this paper can be completely reproduced using open-source software and publicly available datasets.
Marching Cubes is a popular choice for isosurface
 
extraction from regular grids due to its simplicity, robustness, and
== Alternative #1: Ubuntu repository ==
efficiency. One of the key shortcomings of this approach is the
 
quality of the resulting meshes, which tend to have many poorly
If you run Ubuntu Linux, you can simply add our APT repository
shaped and degenerate triangles.
 
This issue is often addressed
deb http://vgc.sci.utah.edu/ubuntu edgy main
through post processing operations such as smoothing. As we
 
describe, while these improve the mesh, they do not remove all
and install the package "ectmc" we are currently creating. This will install all the software you need with the right versions, so running the experiments will be a matter of downloading the actual vistrail containing the workflows and running it:
degeneracies, and incur an increased and unbounded error between the
 
resulting mesh and the original isosurface.
  # apt-get install ectmc
Rather than modifying the resulting mesh, we propose a method
 
to modify the grid on which Marching Cubes operates.  
Follow [[InstallingVisTrailsOnUbuntu | these instructions]].
This modification greatly increases the quality of the extracted
 
isosurface. In our experiments, it did not create a single
== Alternative #2: Downloading and using VisTrails manually ==
degenerate triangle, unlike any other method we experimented with.
 
Our method essentially eliminates postprocessing related to mesh
You can download all the individual software manually.
quality. We show improvements in subsequent mesh processing,
 
using the generated surface directly as input to a tetrahedral mesh
=== Our algorithm ===
generator.
 
The method incurs minimal computational overhead,
[http://www.sci.utah.edu/~cscheid/software/ectmc/ectmc.zip ZIP File]
requiring at most twice the execution time of the original Marching
 
Cubes algorithm in our experiments. Most importantly, it can be
[http://www.sci.utah.edu/~cscheid/software/ectmc/ectmc.tar.gz Gzipped tarball]
readily integrated in existing Marching Cubes implementations, and is
 
orthogonal to many Marching Cubes enhancements (such as out-of-core
==== Core requirements ====
and acceleration methods). The method can also be directly applied
 
to other related isosurface extraction algorithms such as Marching
[http://teem.sourceforge.net/ Teem]
Tetrahedra, and Marching Octahedra.
 
[http://www.cs.princeton.edu/gfx/proj/trimesh2/ Trimesh2]
 
[http://www.boost.org/ Boost]
 
[http://vcg.sourceforge.net/tiki-index.php?page=Metro Metro]
 
[http://tetgen.berlios.de/ Tetgen]
 
=== Requirements for running the experiments ===
 
* [http://www.vtk.org VTK] Version 5.0 or higher, with Python bindings
* [http://matplotlib.sourceforge.net] Matplotlib
* [http://afront.sourceforge.net] Afront
 
=== VisTrails packages ===
 
[http://www.sci.utah.edu/~cscheid/software/ectmc/macet_packages.tar.gz tarball of all necessary VisTrails packages.]. Extract this file into your .vistrails/userpackages directory. This will allow VisTrails to see the packages with extended functionality. Then, add the following lines to your .vistrails/startup.py:
 
addPackage('ectmc')
addPackage('trimesh2')
addPackage('meshutils')
addPackage('afront')
addPackage('metro')
addPackage('teem')
 
If any of the software you installed is not in the PATH for the user that's running VisTrails, you can explicitly add the path as an extra parameter to these addPackages. For example:
 
addPackage('afront', '/home/user/downloads/afront')
 
or
 
addPackage('trimesh2', '/home/user/local/bin')
 
== Datasets ==
 
The datasets we used are all available on the [http://www.volvis.org Volvis website]. We use the NRRD toolset to access the data, so you need the NRRD header files to go with the raw volumes. You can get the NRRD headers and dataset we used [http://www.sci.utah.edu/~cscheid/software/ectmc/data here].
 
== Vistrail ==
 
The vistrail you will need to open is available [http://www.sci.utah.edu/~cscheid/software/ectmc/macet.xml here]. Each version shows a different technique. The topmost one is the one we are proposing (MACET).

Revision as of 18:06, 21 June 2007

The paper

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.