A standard method to do surface rendering is first-hit ray casting for depicting surfaces implicitly contained in volumetric data sets (ray terminates when opaque surface is hit). Although (first hit) ray-casting is a versatile method which is able to provide high-quality images, it is not suited for interactive investigation of real-life data sets on consumer hardware. Although various approaches to improve efficiency of ray-casting exist, high-end multi-processor hardware is required to achieve interactive frame-rates [58]. Purely hardware-based solutions which exploit either 3D-textures or dedicated volume rendering hardware [48] can not be taken into consideration for a portable cross-platform application. Due to the fact, that fast polygon-rendering hardware is available on many platforms, explicit surface extraction methods like marching cubes [33] become more and more the method of choice for commercial applications. Depending on the capabilities of the rendering hardware the speed and the quality of the images differ from system to system and comparable performance can not be guaranteed for different platforms. Also for storing even optimized triangle-based surface representations huge amounts of memory are required. Mainly the high memory consumption makes a polygonal model less suited for surface rendering within a portable software.
The demands for a versatile and highly portable surface rendering algorithm can be summed up as following: