The need to analyze and visualize volumetric data arises in many fields of application. In medicine, imaging modalities like CT or MR scanners acquire volumetric data sets which are examined using 2D and 3D visualization [13] as a part of routine work. In geo-sciences, volumetric data which is obtained from seismic measurements is used to analyze structure and composition of ground [6]. Numerical simulations (like computational fluid dynamics, for example) produce huge amounts of data which is usually also defined in the 3D domain [12]. Generally speaking, phenomena within a 3D domain can be discretized and represented by a volumetric data set of samples, like, for example, the objects and structures within the phase space of 3D dynamical systems [4].
Depending on the main goal of visualization - ranging from data exploration to presentation - different requirements are put on interactivity and image quality. Interactivity is crucial for efficient exploration and analysis of data. Complex data sets require careful and frequent tuning of visualization parameters to obtain meaningful visualization results. The specification of a proper transfer function [3,23,27,29,34], i.e., the assignment of optical properties to data values within the volume, is a complex task which profits greatly from immediate visual feedback by interactive rendering. Thus, during the explorative stages of visualization, interactivity and immediate feedback are more important than a high visual quality of the resulting image. For the presentation of the results obtained from data analysis the emphasis is reversed. Often the creation of high-quality visualization results for later presentation can be performed off-line, without user interaction.
Still images or animations are often not sufficient to communicate the complex findings of the analysis process to a viewer. Visualization results are in many cases easier to understand, if the viewer is able to manipulate the visualization output to a certain degree, by changing at least a restricted sub-set of visualization parameters [54]. This may range from simple manipulation of viewing parameters like camera position and zoom factor, to changes in transfer functions or to clipping of parts of the data. Again, interactive rendering is crucial for providing this possibilities to a viewer efficiently.
The main obstacle for interactive volume rendering is simply the
amount of data to be processed for generating an image from a
volumetric data set. Typical volume sizes in medicine range from
voxels for MR data to
voxels for data
acquired with recent multi-detector CT scanners. For a
straight-forward approach, this would mean shading and compositing
16-500 million voxels for each single image - a tough task, even for
multi-processor hardware. Simple straight forward implementations of
volume rendering are only competitive in terms of performance, if
directly implemented in hardware - like the VolumePro (vp500) volume
rendering board from Real Time Visualization [48].
The usual approach for software-based rendering is to use auxiliary
data structures for efficiently skipping of parts of the volume, which
do not contribute to the visualization results (totally transparent
regions, or inner parts of opaque objects). This approach has an
additional advantage: while the effort for the brute-force approach
grows linearly with the number of the voxels, and thus is in general
for
a
sized volume, methods which manage to limit the rendering to a
``thick'' surface-like neighborhood of the depicted objects, may have an
effort in the order of
(depending on the transfer function settings).
A special technique may be used, if the display of (iso-)surfaces
within the volumetric data is desired. Instead of directly rendering
the volume data using an appropriate rendering method and transfer
function, an intermediate polygonal representation of the surface
is created (for example, using the marching cubes
algorithm [33]). The representation
of the surface can then be rendered exploiting polygon-rendering
hardware. The main disadvantages of this approach are the amounts of
time and memory required to extract and store the surface polygons,
and the large number of geometric primitives generated by this kind
of approach (typically several hundreds of thousands of triangles,
for
data sets). Really interactive rendering of polygonal models of
this size is currently not possible on common 3D hardware.
If visualization is carried out within a networked environment, for example, for performing remote diagnosis, collaborative investigation of data, or simply to exploit remote computational resources, the bandwidth required to transmit volume data and/or visualization results poses an additional problem. Sending entire volume data sets over low-bandwidth networks like the Internet is in most cases not feasible. As an alternative, either a reduced resolution volume is rendered at the client, or the visualization is entirely carried out at a server and just the resulting images are transmitted to the client. Both solutions suffer from problems. Reducing the resolution of the data destroys information. Performing the visualization remotely on a server implies, that even the slightest change in visualization or viewing parameters - like changing the camera position - requires the transmission of new images over the (slow) network, thus hampering interactivity. For further information on interactive volume rendering techniques and their application in networked environments please refer to chapter 2.
Within this work, a novel solution to interactive rendering of volumetric data is presented, which is also well-suited for use in networked environments due to a compact data representation. Although data defined on Cartesian grids is required for rendering, data defined on other types of grids can be transformed to a Cartesian representation (by resampling) for rendering.
Several distinguishing features make the presented method a fast and flexible solution to interactive, software-based volume rendering for low-end hardware:
The voxel extraction approach can be seen as a hybrid approach between direct volume rendering, which directly operates on the original volume data, and approaches like marching cubes, which derive a polygonal representation of objects within the volume for rendering. On one hand, only a secondary data representation, which represents the volume, is used for rendering - the list of potentially contributing voxels. On the other hand, the voxel data within this data structure is just a space-efficient storage representation for a sparsely populated volume.
The basic concepts of the selection of relevant voxels, data representation and rendering are explained in chapter 3. Chapter 4 demonstrates the application of the concepts to implement interactive maximum intensity projection (MIP) and the rendering of iso-surfaces. Furthermore, a general approach for mixing MIP, surface, and direct volume rendering based on opacity weighted blending of voxels (DVR) within a single visualization is presented. The implementation of different shading models (Phong, non-photorealistic shading, ...) is also described. Chapter 5 presents an efficient encoding scheme for compact storage and transmission of extracted voxels. RTVR, a Java library for real-time volume rendering is presented in chapter 6. The library exploits the techniques presented here and combines them with additional features to provide an extendible basis for the creation of flexible visualization tools.
Chapter 7 presents three sample visualization applications which benefit from the presented methods - a Java-based medical viewing and diagnostic workstation, a simple general purpose volume viewer, which can also be included as a volume presentation applet into web pages, and a simulation and visualization application for the investigation of 3D non-invertible maps (discrete dynamical systems).