Polygonal Isosurfaces Reconstruction on Graphics-Hardware
Visualizing volumetric datasets by their isosurfaces is a standard technique
which is well understood by practitioners and therefore still very prominent in
many fields of scientific visualization and engineering. Typically the Marching
Cubes or - in the case of unstructured grids - the Marching Tetrahedra algorithm
is used to extract a polygonal representation of the surfaces.
But with the recent success of graphics hardware accelerated direct volume
rendering techniques, other approaches that are able to
benefit from the fast advances in commodity graphics hardware have moved into the
focus of the visualization community. A major step
in isosurface rendering was done by exploiting OpenGL pixel tests and
programmable features like NVIDIA's register combiners for visualizing shaded
isosurfaces on uniform grids. For unstructured grids hardware-accelerated
cell-projection techniques and, recently, GPU-based raycasting approaches in
combination with pre-integrated transfer functions have been proposed.
However, in striving to achieve high performance for interactive visualization
using modern graphics hardware, the essential surface property of isosurfaces
has been lost. All direct volume-rendering approaches visualize the isosurface
on a per-pixel basis without actually reconstructing it. Thus, these approaches
are rather isosurface visualization than isosurface extraction techniques.
Therefore, if more advanced features than adjusting isovalues or shading
parameters are required one still has to use a software solution.
However, there are many attractive applications for isosurfaces that are
available in a polygonal representation like, e.g., post-processing the surface.
Accordingly, there is a high interest in algorithms and implementations that
exhibit a performance comparable to that of the aforementioned GPU-based
isosurface visualization techniques but still provide the isosurface geometry
for further processing. Ideally, such an algorithm should be capable of
processing arbitrary unstructured grids or - since every unstructured grid can
be easily decomposed into tetrahedra - at least tetrahedral grids.
The most powerful units on modern GPUs are the fragment processors. Thus, it is
straightforward to utilize their parallel processing power to extract the
polygonal representation of an isosurface. But until recently the generation of
geometry, i.e. vertices, on the GPU that is neccesary by such an approach has
been prevented due to the high cost of reading back pixel data from the frame
buffer. Fortunatelly, with the new possibility to render directly to
a vertex array provided by ATI's recently introduced SuperBuffers functionality
now it is possible to generate geometry directly on the GPU.
Storing the vertex data, the scalar values, and the interconnectivity
information for the tetrahedral mesh in an appropriate set of texture maps, a
fragment program can be used to extract the isosurface intersection polygon for
each tetrahedra. The computed intersection vertices are written as pixel data to
a ATI SuperBuffer object that is subsequently bound as a vertex array for rendering the
surface or post-processing directly on the GPU. With SuperBuffer sizes of up to
2048^2 pixels it is possible to extract in parallel isosurface polygons from
more than one million tetrahedra in a single rendering pass. Thus, avoiding the
bottlenecks of data read back and vertex array upload. More details can be found
The images above show some examples of tetrahedral datasets. All renderings
were generated on a standard PC equipped with an ATI 9800Pro graphics board. The
performance in terms of processed tetrahedra per second we achieved for these
examples is given in the table below.
Extraction ||Tetrahedra/s Extraction+Rendering |
|Tornado ||9.5M||9.5M ||3.2M|
|Tornado ||4.9M ||11.8M ||5.5M|
|Neghip ||1.25M ||12.0M ||7.6M|
|Silicon ||528K ||12.0M ||7.6M|
|Car ||450K ||12.0M ||7.7M|
This numbers are not that impressive, but we blame the still low performance to the
still experimental state of the SuperBuffers support of current ATI graphics cards and
drivers, and the very long fragment program we had to use due to limitations
of current ATI hardware regarding dependent texture lookups.
(See also the
list of publications of the institute.)
[KSE04] T. Klein, S. Stegmaier, and T. Ertl.
Hardware-accelerated Reconstruction of Polygonal Isosurface Representations on
Proceedings of the Twelfth Pacific Conference on Computer Graphics and
Applications - Pacific Graphics 2004, Cohen-Or, D., Ko, H.-S., Terzopoulos, D.
and Warren, J., eds., IEEE Computer Society Press, Los Alamitos, California,