Implicit Surfaces Gallery


An implicit surface in three-dimensional space is defined as a level surface of a function f(x,y,z). That is, the surface consists of the set of points (x,y,z) such that f(x,y,z)=k, where k is a constant. As a simple example, the unit sphere can be defined as an implicit surface using the function f(x,y,z) = x2+y2+z2 and the constant k = 1.

An implicit surface can be unbounded, but 3D-XplorMath-J will show only the part of a surface that lies within a specified sphere centered at the origin. The radius of this sphere is given by the exhibit parameter Radius of Search Sphere. Recall that the value of this parameter, like all exhibit parameters, can be set using the "Set Parameters" command in the "Settings" menu.

3D-XplorMath-J provides two different visual representations of an implicit surface: as a dot-cloud and as a ray-traced image. The default representation is a dot-cloud rendered in the Anaglyph Stereo Vision. The user can select between these two representation using the "Use Point Cloud Rendering" and "Use Ray-traced Rendering" options in the "Actions" menu.

In the dot-cloud rendering, the implicit surface represented by a random scattering of points on the surface. The points are generated by selecting lines at random and calculating the points where those lines intersect the surface. (It is an interesting fact that -- provided the correct probability distribution is used on the set of lines -- the points chosen in this way are scattered evenly on the surface; that is, the number of points in a given piece of the surface is proportional to the area of that piece.) The number of desired surface points is specified by the parameter named "Number of Points in Point Cloud." The maximum number of random lines that will be checked is specified by the "Number of Random Lines" parameter. The program generates lines and computes intersection points until it has either found the desired number of points or checked the specified maximum number of lines.

In the ray-traced rendering, the representation of the surface is created by "casting rays": For each pixel in the image, consider the line from the viewpoint through that pixel. Determine the first point, if any, where this line intersects the surface. That point is the point that is visible at the given pixel, and the pixel should be colored to represent that point on the surface. The actual color that is used is computed using the normal vector to the surface at that point and the properties of the lights that are illuminating the surface. (The lighting properties can be set using the "Light Settings" command in the "Settings" menu). Ray-tracing produces a very realistic looking image.

Note that it can take some time to compute the full ray-traced image. When a ray-traced rendering first appears, a rough, low-resolution image is shown. The full-resolution rendering is then filled in progressively, as it is computed. The low-resolution image is also used when a ray-traced surface is being rotated or dragged.

(The Implicit Surfaces gallery is a sub-gallery of the Surfaces gallery, but it is quite a bit different from the other sub-galleries of that galleries.)