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.
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,[1] 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 Tetrahedrons
The marching tetrahedrons 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,[2] developed as an extension to both surface nets and marching cubes. It retains the vertex at the center of the voxel but adds a surface generation that leverages octrees to add support for geometry that adapts the number of outputted triangles to the complexity of the surface.
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
- ↑ 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. In: ACM Transactions on Graphics, Volume 21 Issue 3, July 2002
- 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