CSC 2505 Geometric Representation for Computer Graphics

ICaster

GPU ray caster for implicit surfaces




Chess scene modelled with ICaster
Figure 1: Chess scene, except the ground plane and the cross all element are model with quadrics

Introduction

Rasterization has become the de facto standard for real-time computer graphics. It's advantages are  ... However, rasterization requires the approximation of the geometry by rasterization. Without adaptive resampling this introduces artifacts as seen in Figure 1. Other rendering techniques, for example ray casting and ray tracing, avoid these artifacts by using an accurate representation of the objects.
Graphics Processing Units (GPUs) implement the rasterization pipeline (see [Fernando 2004] for an introduction) as specialized processor which speeds up the computation significantly. Recently, these processors have become programmable and it has been shown that they can be used for much more than rendering polygons, see [Owens 2005].
ICaster implements a ray caster for Quadrics, second order implicit surfaces. This permits pixel-accurate visualization, independent of the distance to the object, and, through the enormous floating point compute power of modern GPUs, still achieves interactive framerates even for complex scenes. The algorithm can be integrated easily into standard scenegraph as shown in the example implementation as plug-in for Alias | Wavefront Maya.

Results

Implicit Sphere
Polygonal Sphere
Figure 2: Implicit sphere rendered with ICaster (left) and polygonal sphere (right). Note that a higher tesselation rate could avoid artifacts in the right image. However, when zooming in artifacts are inevitable.


Miscellaneous Quadrics Miscellaneous Quadrics Miscellaneous Quadrics
Figure 3: Miscellaneous Quadrics

Miscellaneous Quadrics Miscellaneous Quadrics Miscellaneous Quadrics
Figure 4: Miscellaneous Quadrics

Limitations and Future Work

At the moment, ICaster is missing most functionality and tools available when modeling with other primitives such as NURBS and polygons. The most  serious limitation is the counter-intuitive parametrization by the coefficients of the matrix Q. Desirable would be a direct modelling of the quadric, for example by pushing and pulling of sub-parts. However, currently it is not clear how to map such an interaction onto the matrix representation. Further work in this area is cruical for the applicability of quadrics for general modelling.
Another area of future work is the direct rendering of other implicit surfaces such as skeleton based implicits. The main difference to the current implementation is that, in general, no closed form solution exist. Additionally, the interaction of different nodes is hard to model on the GPU.

Documentation

The doxygen documentation of ICaster can be found here.

Download and Usage

Source code for Linux and Windows

icaster.tar.gz

Pre-compiled shared libraries can be provided upon request.

Usage


The plug-in can be loaded with the plug-in manager, which can be found under Window->Setting and Preferences. New objects can be created with the following commands (entered in the MEL command line or the script editor)

createNode iQuadric
createNode iSphere

If you use ICaster frequently, it is helpful to create buttons or short-cuts for creating new objects. The parameter of the objects can be edited in the attribute editor. For quadrics, it is helpful to undock the parameter tab (Copy Tab).

Required Libraries

GLEW http://glew.sourceforge.net/
Cg http://developer.nvidia.com/object/cg_toolkit.html

Note: Under 64-bit versions of Linux, the user has to build the GLEW libs by himself, the source code is included in the ICaster archive. For Windows and 32-bit versions of Linux the files provided on the GLEW website can be used.

Known Bugs


Authors

Derek Nowrouzezahrai     derek (at) dgp (dot) toronto (dot) edu
Christian Lessig                 lessig (at) dgp (dot) toronto (dot) edu


References

[Fernando 2004] R. Fernando, M. Harris, M. Wloka and C. Zeller, Programming Graphics Hardware, Eurographics 2004 Tutrorial Notes, August 2004
[Owens 2005] J. D. Owens, D. Leubke, N. Govindaraju, M. Harris, J. Kruger, A. Lefohn, T. Purcell, A
Survey of General-Purpose Computation on Graphics Hardware, State of the Art Report,
Eurographics 2005, August 2005


lessig (at) dgp (dot) toronto (dot) edu 2005/12/31