Introduction

The beginning of knowledge is the discovery of something we do not understand.

Frank Herbert

Visualization is the process of transforming information into a visual form, enabling users to observe the information. The resulting visual display enables the scientist or engineer to perceive visually features which are hidden in the data but nevertheless are needed for data exploration and analysis [8].

On the computer science side, it uses techniques of computer graphics and imaging. On the human side, perceptual and cognitive capabilities of the viewer determine the conditions the process needs to take into account. Successful visualization can reduce the time it takes to understand the underlying data, to perceive relationships, and to extract significant information.

Scientific visualization is a tool that enables scientists to analyze, understand, and communicate the numerical data generated by scientific research. In recent years, humans have been collecting data at a rate beyond what can be studied and comprehended. Scientific visualization uses computer graphics to process numerical data into two- and three-dimensional visual images. This visualization process includes gathering, processing, displaying, analyzing, and interpreting data. It is revolutionizing the way scientists do science as well as changing the way people deal with large amounts of information.

Volume visualization is a field within scientific visualization, which is concerned with volume data. Volume data are 3D entities that may have information inside them, might not consist of surfaces and edges, or might be too voluminous to be represented geometrically. Volume visualization is a method of extracting meaningful information from volumetric data using interactive graphics and imaging, and it is concerned with volume data representation, modeling, manipulation, and rendering. Volume datasets are obtained by sampling, simulation, or modeling techniques. For example, a sequence of 2D slices obtained from Computed Tomography (CT) or Magnetic Resonance Imaging (MRI) is three-dimensionally reconstructed into a volume model and visualized for diagnostic purposes, planning of treatment, or surgery. The same technology is often used for non-destructive inspection of composite materials or mechanical parts. Similarly, confocal microscopes produce data which is visualized to study the morphology of biological structures. In many computational fields, such as in computational fluid dynamics, the results of simulation typically running on a supercomputer are often visualized as volume data for analysis and verification. Recently, many traditional geometric computer graphics applications, such as CAD and simulation, have been exploiting the advantages of volume techniques called volume graphics for modeling, manipulation, and visualization.

Over the years many techniques have been developed to visualize volumetric data. Since methods for displaying geometric primitives were already well-established, most of the early methods involve approximating a surface contained within the data using geometric primitives. Common methods include contour tracking [13], opaque cubes [12], marching cubes [27], marching tetrahedra [48], dividing cubes [3], and others. These algorithms fit geometric primitives, such as polygons or patches, to constant-value contour surfaces in volumetric datasets. After extracting this intermediate representation, hardware-accelerated rendering can be used to display the surface primitives. In general, these methods require to make a decision for every data sample whether or not the surface passes through it. This can produce false positives (spurious surfaces) or false negatives (erroneous holes in surfaces), particularly in the presence of small or poorly defined features. As information about the interior of objects is generally not retained, a basic drawback of these methods is that one dimension of information is essentially lost.

Figure 1.1: Comparison of surface and volume rendering. (a) traditional surface representation of a volumetric dataset. (b) direct volume rendering of the same dataset.
\includegraphics[width=6.5cm]{introduction/images/surface.eps} \includegraphics[width=6.5cm]{introduction/images/volume.eps}
(a) (b)

In response to this, direct volume rendering techniques were developed that attempt to capture the entire 3D data in a single 2D image. Volume rendering techniques convey more information than surface rendering methods, but at the cost of increased algorithm complexity, and consequently increased rendering times. To improve interactivity in volume rendering, many optimization methods as well as special-purpose volume rendering hardware have been developed. Direct volume rendering algorithms include approaches such as raycasting [24], splatting [56], and shear-warp [20]. Instead of extracting an intermediate representation, volume rendering provides a method for directly displaying the volumetric data. The original samples are projected onto the image plane in a process which interprets the data as an amorphous cloud of particles. It is thus possible to simultaneously visualize information about surfaces and interior structures without making any assumptions about the underlying structure of the data. Volume rendering comprises more information in a single image than traditional surface representations (see Figure 1.1), and is thus a valuable tool for the exploration and analysis of data. However, due to the increased computational effort required and the enormous size of volumetric datasets, the ongoing challenge of research in volume rendering is to achieve fully interactive performance.

This diploma thesis presents new methods and extensions to existing techniques for interactive direct volume rendering of large medical data. A high-quality volume visualization system has been developed which is capable of interactively handling large datasets on commodity hardware. An overview of algorithms for volume rendering is given in Chapter 2. In Chapter 3, we propose several techniques to enable the handling of large datasets, which are combined in a single framework to form a high-performance volume rendering algorithm. We discuss an alternative storage scheme that can significantly improve the cache behavior of a volume rendering algorithm. Furthermore, we present parallelization strategies which are well-suited for commodity hardware, and introduce memory efficient acceleration data structures. Chapter 4 focuses on the concepts used in the implementation of our algorithm. In Chapter 5, the performance of our techniques is discussed and our results are presented. Finally, in Chapter 6, the contents of this diploma thesis is summarized.