The recent development of programmable graphics processing units (GPUs) has been a massive impulse for interactive volume graphics on consumer hardware [EHKRS06]. The main reason for this development lies in the highly parallel nature of GPUs applicable for large scale local problems. Several techniques for interactive GPU volume rendering have been developed in the recent years. Cell projection or splatting [Wes90, MJC00, CXZ05]
splat splat screen eye screen eye
Figure 2.3: Left: the splatting principle for volume rendering. For each voxel, the contribution of the
kernel is projected onto the viewing plane. The projections are then blended to obtain the final image.
Right: ray casting. Each viewing ray is traced through the volume grid.
is an object-based visualization method where for each voxel a 3D reconstruction kernel (for example a Gaussian) is projected onto the viewing plane and the contribution of each kernel is blended to obtain a smooth image. An illustration of splatting is given in Figure 2.3, left. An advantage of cell projection is the possibility to apply this technique also to non-uniform sampled data. In the algorithm by Shirley and Tuchman [ST90] tetrahedral cells of an unstructured grid are projected onto the image plane and the resulting triangles are blended appropriately. One drawback of this algorithm is that the cells need to be sorted according to their distance to the viewer’s position. While the early splatting approaches suffered from severe aliasing artifacts, several people have worked on improving the image quality obtained from splatting [MMC99, ZPvBG02]. Examples for GPU implementations of splatting are given by, e.g., Chen et al. [CRZP04], and Neophytou and M¨uller [NM05].
In the object-based texture-slicing volume rendering the volume is sliced by a num- ber of planes which are rendered using the texture hardware [KW03, XZC05], see also Figure 2.4, left. The volume rendering integral is approximated by blending the slices back-to-front in order to determine the final color for each fragment. This approach is very simple to implement and can be very fast (real-time volume visualization of up to 5123 data points on consumer hardware is possible). Still based on trilinear interpola- tion aliasing artifacts are not avoidable. Shear warp [Wes89, LL94] is closely related to 2D texture-slicing, see Figure 2.4, right. Here, the volume is sheared such that viewing rays become perpendicular to one of the major axes of the data set and rows of vox- els become aligned to rows of pixels in an intermediate image. This intermediate, but distorted picture is then warped to obtain the undistorted final picture.
The most flexible technique for volume rendering which also allows for the best visual quality is ray casting [Lev90, KW03, HLRSR09], see Figure 2.3, right. Rays emanating from the viewer’s position are sent into the scene and we either integrate the equations of light transport along the rays for full volume rendering or find the first valid intersec-
slicing planes
screen
shear
screen warp
Figure 2.4: Left: texture slicing methods for volume rendering. The grid is sliced back-to-front by a
number of planes parallel to the viewing plane. Right: shear-warp is closely related to two-dimensional texture slicing. Here, the volume itself is sheared such that viewing rays are perpendicular to one of the major axes of the data set.
tion with the zero contour for isosurfacing. Several optimizations to this basic principle have been proposed, for instance empty space skipping, early ray termination, deferred
shading, adaptive sampling, and sophisticated caching systems for large data sets, e.g., bricking [PSL∗98, HSS∗05, MRH08]. Due to the simplicity of trilinear interpolation a ba- sic GPU implementation for volume ray casting is straightforward to implement. Thus, most approaches are based on this local spline model and therefore trade visual quality in favor of rendering speed. Gradients can be precomputed at the grid points at the cost of increased memory and bandwidth consumption. Alternatively, the gradients are computed on-the-fly using central differences which is an expensive operation. Either way, the obtained gradients are not smooth and visual artifacts arise. An efficient im- plementation for interactive isosurface visualization with higher order filtering has been given by Hadwiger et al. [HS05, HSS∗05]. These C2-continuous splines lead to polyno- mials of total degree nine for which no exact root finding algorithms exist. Therefore, ray-surface intersections have to be found by interval refinement techniques. Due to the tensor-product structure of these splines evaluation of gradients require additional evaluations at the intersection point. Furthermore, data stencils are large (the 4 × 4 × 4- neighborhood of the centering data value is used) and important features might get lost resulting from the large support of the filter kernels.
A different technique is frequency domain volume rendering (FDVR) [TL93]. FDVR is based on the Fourier projection slice theorem which states that extracting a slice perpen- dicular to the image plane and including the origin from the Fourier transformed volume data corresponds to the image obtained from integrating rays perpendicular to the image plane in the spatial domain. Although computational complexity is reduced from O(n3) (where n is the number of data points in each spatial direction) to O(n2log(n)), FDVR can only be used with parallel projections. Further, occlusion effects are difficult to incorporate into FDVR with the consequence that the images resemble those obtained
from X-Rays. A GPU approach of FDVR is discussed in [VKG04].
In this chapter we discuss the most widespread reconstruction and visualization meth- ods for volume data. Since our main contribution in this field is the development of effi- cient visualization methods for smooth trivariate splines, i.e., splines defined on uniform tetrahedral partitions of the volumetric domain, we give an overview of this related work in the following section.