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
- Blending Implicit Surfaces
- Infinite Replication of Implicit Surfaces
- Parallel Recursive Space Subdivision
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.
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).
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.
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).