Isosurface
An isosurface is a three-dimensional analog of an isoline. It is a surface that represents points of a constant value (e.g. pressure, temperature, velocity, density) within a volume of space; in other words, it is a level set of a continuous function whose domain is 3D-space.
Isosurface is sometimes used more generically related to domains of more than 3 dimensions.[1]
Applications[]
Isosurfaces are normally displayed using computer graphics, and are used as data visualization methods in computational fluid dynamics (CFD), allowing engineers to study features of a fluid flow (gas or liquid) around objects, such as aircraft wings. An isosurface may represent an individual shock wave in 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 medical imaging, isosurfaces may be used to represent regions of a particular density in a three-dimensional CT scan, allowing the visualization of internal 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 marching cubes algorithm was first published in the 1987 SIGGRAPH proceedings by Lorensen and Cline,[2] and it creates a surface by intersecting the edges of a 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 algorithm was first published in the 2002 SIGGRAPH proceedings by Ju and Losasso,[3] developed as an extension to both 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 often look blocky or incorrectly beveled.[4] 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 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.
See also[]
References[]
- ^ , Wikipedia, 2020-12-06, retrieved 2020-12-14
- ^ William E. Lorensen, Harvey E. Cline: Marching Cubes: A high resolution 3D surface construction algorithm. In: Computer Graphics, Vol. 21, Nr. 4, July 1987
- ^ 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
- ^ "Smooth Voxel Terrain (Part 2)". 12 July 2012.
- ^ Scott Schaefer, Tao Ju, Joe Warren (2006). "Manifold Dual Contouring" (PDF).CS1 maint: multiple names: authors list (link)
- ^ Lin X (30 Dec 2015). Manifold Dual Contouring.[dead link]
- ^ Lin X (23 Oct 2016). "Github Repository - isosurface".
- Charles D. Hansen; Chris R. Johnson (2004). Visualization Handbook. Academic Press. pp. 7–11. ISBN 978-0-12-387582-2.
External links[]
- Isosurface Polygonization
- The contourist package for numeric python generates triangulations of isosurfaces for arbitrary 3 dimensional functions which can be displayed using HTML5 as illustrated in this jsfiddle
- 3D computer graphics
- Medical imaging
- Surfaces