Skip to content

Isosurface Reconstruction

Marwan Abdellah edited this page Jul 27, 2022 · 1 revision

About

Ultraliser is based on a two-step process to create watertight meshes from non-watertight inputs. The first step implements surface and solid voxelization kernels, with which a large-scale intermediate volume is created. This volume is then used to reconstruct an isosurface to create a coarse surface mesh in a process called polygonization or isosurface extraction.

Techniques

The current version of Ultraliser implements two isosurface extraction techniques: the default marching cubes (MC) algorithm and the advanced dual marching cubes (DMC) algorithm.

Both implementations are parallelized using OpenMP, so they relatively have high performance. By default, DMC algorithm is used for isosurface extraction. The users can switch between the two algorithms using the --isosurface-techniqueargument as follows:

  • --isosurface-technique dmc, the DMC algorithm will be used and,
  • --isosurface-technique mc, the MC algorithm will be used.

Unless the ignore-marching-cubes-mesh is set, if DMC is used, the resulting mesh from the isosurface extraction stage will be labeled with the suffix -dmc, otherwise, the resulting mesh will be labeled with the suffix -mc.