Skip to content

mkazhdan/IsoSurfaceExtraction

Repository files navigation

Accurate Isosurface Interpolation with Hermite Data

links description executable
LINKS
3DV 2015 Paper
Windows Executable (x64)
Source Code
License

CODE DESCRIPTION

EXECUTABLE ARGUMENTS
    --in <input volume>
    This string is the name of the file containing the regularly sampled voxeld values. Values are linearized, so that if the image is of resolution ResX*ResY*ResY then the value at index (x,y,z) is at position x+y*ResX+z*ResX*ResY, and are stored in binary format either as unsigned chars (1 byte per value) or as floating point values (4 bytes per value).
    --res <x-resolution y-resolution z-resolution>
    This triplet of integer values gives the resolution of the voxel grid.
    [--dim <x-scale y-scale z-scale>]
    This (white-space separated) triplet of floating point values gives the scale of a voxel. (By default, the values are set to 1.)
    [--out <output mesh>]
    This string is the name of the file to which the extracted isosurface will be written. The mesh will be written in the PLY format.
    [--iso <isovalue>]
    This floating point value specifies the isovalue at which the isosurface is to be extracted. (By default, the value is set to 0.)
    [--sIters <smoothing iterations>]
    This integer specified the number of (1-ring) smoothing iterations that are to be applied to the voxel grid before extracting the isosurface. (By default, the value is set to 0.)
    [--full]
    If specified, the Marching-Cubes algorithm is implemented using a ``full'' case table, using the average value of face corners to resolve the amiguous case when the face is zero-crossing and the values on antipodal corners are the same.
    [--flip]
    If specified, the triangle orientation in the output is flipped.
    [--quadratic]
    If specified, Hermite data is generated (by considering the difference between neighboring values) and a second-order interpolant is used to define the positions of zero-crossings.
    [--polygon]
    If specified, the raw iso-polygons are output. Otherwise, the polygons are triangulated using a minimal-area-triangulation and a triangle mesh is written as output.
    [--float]
    If specified, the input is read in as a list of floating point values. Otherwise, the input is assumed to represent (unsigned) char values.
    [--flipBytes]
    If specified and floating point values are used, the bytes within each float will be flipped.
    [--nonManifold]
    Although the polygon mesh resulting from Marching-Cubes is manifold, it can be the case that two polygon share two vertices that are not on a polygon edge. As a result, the minimal area triangulation could introduce the same edge for the triangulation of both polygons, resulting in a triangle mesh with non-manifold edges. By default, the code will introduce an additional vertex (the plane's barycenter) if a non-manifold triangulation can arise, thereby ensuring that the output triangle mesh is manifold. Enabling this flag avoids introducing the barycenter, but could result in mesh with non-manifold edges.

HOME

About

Isosurface extraction from regular voxel grids

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published