Isosurface

Source: Wikipedia, the free encyclopedia.

An isosurface is a three-dimensional analog of an

3-space
.

The term isoline is also sometimes used for domains of more than 3 dimensions.[1]

Isosurface of vorticity trailed from a propeller blade. Note that this is an isosurface plotted with a colormapped slice.

Applications

Isosurfaces are normally displayed using

supersonic
flight, or several isosurfaces may be generated showing a sequence of pressure values in the air flowing around a wing. Isosurfaces tend to be a popular form of visualization for volume datasets since they can be rendered by a simple polygonal model, which can be drawn on the screen very quickly.

In

organs, bones
, or other structures.

Numerous other disciplines that are interested in three-dimensional data often use isosurfaces to obtain information about pharmacology, chemistry, geophysics and meteorology.

Implementation algorithms

Marching cubes

The

data
volume grid with the volume contour. Where the surface intersects the edge the algorithm creates a vertex. By using a table of different triangles depending on different patterns of edge intersections the algorithm can create a surface. This algorithm has solutions for implementation both on the CPU and on the GPU.

Asymptotic decider

The asymptotic decider algorithm was developed as an extension to marching cubes in order to resolve the possibility of ambiguity in it.

Marching tetrahedra

The marching tetrahedra algorithm was developed as an extension to marching cubes in order to solve an ambiguity in that algorithm and to create higher quality output surface.

Surface nets

The Surface Nets algorithm places an intersecting vertex in the middle of a volume voxel instead of at the edges, leading to a smoother output surface.

Dual contouring

The dual contouring algorithm was first published in the 2002 SIGGRAPH proceedings by Ju and Losasso,[3] developed as an extension to both surface nets and marching cubes. It retains a dual vertex within the voxel but no longer at the center. Dual contouring leverages the position and normal of where the surface crosses the edges of a voxel to interpolate the position of the dual vertex within the voxel. This has the benefit of retaining sharp or smooth surfaces where surface nets often look blocky or incorrectly beveled.[4] Dual contouring often uses surface generation that leverages octrees as an optimization to adapt the number of triangles in output to the complexity of the surface.

Manifold dual contouring

Manifold dual contouring includes an analysis of the octree neighborhood to maintain continuity of the manifold surface [5][6][7]

Examples

Examples of isosurfaces are 'Metaballs' or 'blobby objects' used in 3D visualisation. A more general way to construct an isosurface is to use the function representation.

  • Surface of constant pressure.
    Surface of constant pressure.
  • Surface with shading information varying across it to convey rain column height.
    Surface with shading information varying across it to convey rain column height.
  • Multiple surfaces of constant temperature, with normal vectors added to each surface.
    Multiple surfaces of constant temperature, with normal vectors added to each surface.
  • Surfaces of constant intensity, with color shading linked to intensity to permit conveying information about the contours of varying intensity fields.
    Surfaces of constant intensity, with color shading linked to intensity to permit conveying information about the contours of varying intensity fields.

See also

References

  1. ^ "Hamilton–Jacobi equation", Wikipedia, 2020-12-06, retrieved 2020-12-14
  2. ^ William E. Lorensen, Harvey E. Cline: Marching Cubes: A high resolution 3D surface construction algorithm. In: Computer Graphics, Vol. 21, Nr. 4, July 1987
  3. ^ Tao Ju, Frank Losasso, Scott Schaefer, Joe Warren: Dual Contouring of Hermite Data. Archived 2017-09-18 at the Wayback Machine In: ACM Transactions on Graphics, Volume 21 Issue 3, July 2002
  4. ^ "Smooth Voxel Terrain (Part 2)". 12 July 2012.
  5. ^ Scott Schaefer, Tao Ju, Joe Warren (2006). "Manifold Dual Contouring" (PDF).{{cite web}}: CS1 maint: multiple names: authors list (link)
  6. ^ Lin X (30 Dec 2015). Manifold Dual Contouring. Archived from the original on 11 September 2020. Retrieved 28 April 2020.
  7. ^ Lin X (23 Oct 2016). "Github Repository - isosurface". GitHub.