Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Isosurface
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Surface representing points of constant value within a volume}} <!-- Deleted image removed: [[Image:Isosurface on molecule.jpg|thumb|right|Zirconocene with an isosurface showing areas of the molecule susceptible to electrophilic attack.]] --> An '''isosurface''' is a three-dimensional analog of an [[Contour line|isoline]]. It is a [[Surface (mathematics)|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 (mathematics)|function]] whose [[Domain of a function|domain]] is [[3-space]]. The term ''isoline'' is also sometimes used for domains of more than 3 dimensions.<ref>{{Citation|title=Hamilton–Jacobi equation|date=2020-12-06|url=https://en.wikipedia.org/w/index.php?title=Hamilton%E2%80%93Jacobi_equation&oldid=992629363|work=Wikipedia|language=en|access-date=2020-12-14}}</ref> [[File:CFD simulation showing vorticity isosurfaces behind propeller.png|thumb|right|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 [[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 [[wing]]s. 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 [[Computed tomography|CT]] scan, allowing the visualization of internal [[Organ (anatomy)|organ]]s, [[bone]]s, 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,<ref>William E. Lorensen, Harvey E. Cline: [http://www.cs.sfu.ca/~haoz/teaching/cmpt464/references/87_Lorensen_MarchingCubes.pdf Marching Cubes: A high resolution 3D surface construction algorithm.] In: Computer Graphics, Vol. 21, Nr. 4, July 1987</ref> and it creates a surface by intersecting the edges of a [[Data (computing)|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,<ref>Tao Ju, Frank Losasso, Scott Schaefer, Joe Warren: [http://www.frankpetterson.com/publications/dualcontour/dualcontour.pdf Dual Contouring of Hermite Data.] {{Webarchive|url=https://web.archive.org/web/20170918164804/http://www.frankpetterson.com/publications/dualcontour/dualcontour.pdf |date=2017-09-18 }} In: ACM Transactions on Graphics, Volume 21 Issue 3, July 2002</ref> developed as an extension to both [[surface nets]] and marching cubes. It retains a [[Dual polyhedron|dual]] vertex within the [[voxel]] but no longer at the center. Dual contouring leverages the position and [[normal (geometry)|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.<ref>{{Cite web|url=https://0fps.net/2012/07/12/smooth-voxel-terrain-part-2/|title = Smooth Voxel Terrain (Part 2)|date = 12 July 2012}}</ref> Dual contouring often uses surface generation that leverages [[octree]]s 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 <ref>{{cite web|author=Scott Schaefer, Tao Ju, Joe Warren|year=2006|title=Manifold Dual Contouring|url=http://faculty.cs.tamu.edu/schaefer/research/dualsimp_tvcg.pdf}}</ref><ref>{{cite AV media|date=30 Dec 2015|title=Manifold Dual Contouring|author=Lin X|url=https://www.youtube.com/watch?v=l3K-tD3TMqQ|access-date=28 April 2020|archive-date=11 September 2020|archive-url=https://web.archive.org/web/20200911201609/https://www.youtube.com/watch?v=l3K-tD3TMqQ&gl=US&hl=en|url-status=dead}}</ref><ref>{{cite web|title=Github Repository - isosurface|date=23 Oct 2016|author=Lin X|website=[[GitHub]] |url=https://github.com/Lin20/isosurface}}</ref> == 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]]. == Gallery == <gallery> File:NREL 10secs.png|Surface of constant pressure. File:Katrina 28aug05 isosurface.gif|Surface with shading information varying across it to convey rain column height. File:Heat rose.jpg|Multiple surfaces of constant temperature, with [[Normal (geometry)|normal vectors]] added to each surface. File:Gauss Laguerre TEM Mode P2L8.png|Surfaces of constant intensity, with color shading linked to intensity to permit conveying information about the contours of varying intensity fields. </gallery> ==See also== * [[Isopotential]] * [[Triangulation (geometry)]] * [[Implicit surface]] * [[Volume rendering]] ==References== {{Reflist}} * {{cite book|author1=Charles D. Hansen|author2=Chris R. Johnson|title=Visualization Handbook|url=https://books.google.com/books?id=ZFrlULckWdAC&pg=PA7|year=2004|publisher=Academic Press|isbn=978-0-12-387582-2|pages=7–11}} ==External links== *[http://www2.imm.dtu.dk/~jab/gallery/polygonization.html Isosurface Polygonization] *[https://github.com/AaronWatters/contourist 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 [https://jsfiddle.net/AaronWatters/9qszgyaj/ jsfiddle] [[Category:3D computer graphics]] [[Category:Medical imaging]] [[Category:Surfaces]] [[Category:Implicit surface modeling]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation
(
edit
)
Template:Cite AV media
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Webarchive
(
edit
)