What is an isosurface?
I am trying to understand the marching cubes algorithm. I would like very much an easier definition of an isosurface than what is available online. Could anyone please explain it?
Thanks.
$\endgroup$ 22 Answers
$\begingroup$Isosurface is another way to call a surface defined by the implicit equation
$$F(x,y,z)=f$$ where $F$ is a function of space and $f$ a constant, often $0$. The prefix iso- indicates that the function $F$ takes the same value ($f$) all over the surface.
The marching cube algorithm is able to construct the iso-surfaces (decomposed in triangles) for a given $F$, by sampling over a regular grid.
Just knowing the function values at the vertices of many tiny cubes allows you to estimate the intersections of the faces with the surface by interpolation, giving you skewed polygons that approximates the surface inside each cube, in a way that ensures continuity across the cubes.
As there are 8 values to be considered, hence 8 signs/zero, there are 6561 possible configurations per cube. Fortunately, this number can be reduced by means of symmetries.
$\endgroup$ 2 $\begingroup$Just read this:
THE best isosurface tutorial on the web.
An isosurface is the surface of a 2d or 3d shape where all the values of the graph are the same (ISO=same). The surface can be infinite, like a gyroid, or contained, like a sphere. It does not use a parametric formula. X,Y and Z are all in the same equation and the result of the equation is a gradient, i.e. from - infinity to + infinity, and the surface of the 3d shape can be all points at zero or all points at one for example.
So, the mathematician writes a formula of a sphere of a gyroid or any other generative shape where (X Y Z = a value), and he scans all the points in space, and marks all those that return the value he wants, like 0 is a smaller surface, and if he changes the value to 1 it's a larger surface.
The tutorials online are illustrated and make a heck of a lot more sense than anyone could be expected to do on stack exchange, using 20 formulas, each illustrated, and even online ISOsurface plotting webGL pages.
$\endgroup$