Nilo Stolte Home page - Implicit Surfaces

Interval Arithmetic, Implicit Surfaces and Voxels

You are probably wondering what is the relationship between these 3 things. To show you I am not crazy I show you some images that use all these three concepts. These images were obtained by transforming implicit surfaces to voxels (a process called voxelization) using interval arithmetic and then rendered by displaying each voxel as a 3D point with a normal vector using OpenGL Z-buffer. The resolution for the voxel space is 512x512x512 and the voxels are stored into a pointer octree. Only the voxels that intersect the surface are stored.

The voxelization technique subdivides the space in a recursive way testing using interval arithmetic, if a given octant contains a part of the surface. When the voxel level arrives, the normal is calculated by the gradient in the middle of the voxel.

The visualization process produces Ray-Casting quality images generated in interactive speeds.

The main advantage of our representation is its robustness, that is the are guaranteed to always envelop the surfaces. In voxels addition, this representation can be locally refined to any desired resolution from any previous voxelised part of the surface. These qualities alone make it a much better way of represen- ting curved and/or complex surfaces in comparison with polygonal representation.

Here are some current research work in this area:

Spherical and Cylindrical Coordinates Implicit Surfaces

Here I show some images for voxelized implicit functions in spherical or cylindrical coordinates. The voxelization technique is a variation of the standard voxelization procedure described above.

sin(3θ)⋅sin(4φ)−r=0
sin(9θ)⋅sin(18φ)−r=0
Cylindrical Coordinates

Gear with contour produced by the equation R+a⋅sin(9⋅θ)−r=0. All the other parts were produced employing CSG of cylinders and planes using constraints.

Blending Implicit Surfaces

Implicit Surfaces can be blended together using a blending function. When the blending function is a gaussian, the resulting surface is known as a Blobby Model. I use a polynomial blending function which imitates the form of a gaussian (see my PhD thesis in Publications and IRIT).

The surface on the left was obtained blending 10 spheres using my polynomial blending function (See the figure below).
This is the blending function used to blend the spheres in the scene above. The blending is restricted to the range [0,R]. Since there is a root at x=R, surfaces outside the range do not need to be considered.

Infinite Replication of Implicit Surfaces

An Implicit Surface can be infinitely replicated using a very simple technique. This can be seen as a kind of a fractal but without the fractals high processing times. The application of this principle is very wide, from lower evaluation of highly complex scenes based on surface repetitions to implicit representation of surfaces previously only definable using parametric functions.

Torus Replication A torus (r−R)2+z2−a2=0 (cylindrical coordinates) at the image on the left is replicated in the Z direction, demonstrating the principe of implicit replication. The whole scene is defined by only one torus equation.
Replication can be used to represent some parametric surfaces implicitly. Only one cycle of the spiral on the left can be represented implicitly, but applying infinite replication the whole codomain of the infinite spiral can be obtained implicitly. This is an alternative to implicit sweeps that is considerably less computationally expensive.

Parallel Recursive Space Subdivision

This is a parallel algorithm for recursive subdivision of the space. I used it to voxelize complex implicit surfaces. It is a master-slave configuration, each one running in a different R10000 processor in a SGI Challenge. Only the slaves processes produce subdivisions while the master controls the slaves work and stores the result into a data structure (an octree, in our case).