A Survey of Volumetric Illumination Techniques for Interactive Volume Rendering <s> Local Region Based Techniques ( ) <s> We present a direct interblock interpolation technique that enables direct volume rendering of blocked, multiresolution volumes. The proposed method smoothly interpolates between blocks of arbitrary block-wise level-of-detail (LOD) without sample replication or padding. This permits extreme changes in resolution across block boundaries and removes the interblock dependency for the LOD creation process. In addition the full data reduction from the LOD selection can be maintained throughout the rendering pipeline. Our rendering pipeline employs a flat block subdivision followed by a transfer function based adaptive LOD scheme. We demonstrate the effectiveness of our method by rendering volumes of the order of gigabytes using consumer graphics cards on desktop PC systems. <s> BIB001 </s> A Survey of Volumetric Illumination Techniques for Interactive Volume Rendering <s> Local Region Based Techniques ( ) <s> In the past years many interactive volume rendering techniques have been proposed, which exploit the neighboring environment of a voxel during rendering. In general on-the-fly acquisition of this environment is infeasible due to the high amount of data to be taken into account. To bypass this problem we propose a GPU preprocessing pipeline which allows to acquire and compress the neighborhood information for each voxel. Therefore, we represent the environment around each voxel by generating a local histogram (LH) of the surrounding voxel densities. By performing a vector quantization (VQ), the high number of LHs is than reduced to a few hundred cluster centroids, which are accessed through an index volume. To accelerate the required computational expensive processing steps, we take advantage of the highly parallel nature of this task and realize it using CUDA. For the LH compression we use an optimized hybrid CPU/GPU implementation of the k-means VQ algorithm. While the assignment of each LH to its nearest centroid is done on the GPU using CUDA, centroid recalculation after each iteration is done on the CPU. Our results demonstrate the applicability of the precomputed data, while the performance is increased by a factor of about 10 compared to previous approaches. <s> BIB002
As the name implies, the techniques described in this subsection perform the illumination computation based on a lo- Figure 8 : Gradient-based shading applied to a magnetic resonance imaging (MRI) dataset (left). As it can be seen in the close-up, noise is emphasized in the rendering (right). cal region. Thus, when relating volumetric illumination techniques to conventional polygonal computer graphics, these techniques could be best compared to local shading models. While the still most frequently used gradient-based shading  is exploiting the concepts underlying the classical Blinn-Phong illumination model  , other techniques are more focused on the volumetric nature of the data to be rendered. Also with respect to the locality, the described techniques vary. The gradient-based shading relies on a gradient and thus takes, when for instance using finite difference gradient operators, only adjacent voxels into account. Other techniques, such as dynamic ambient occlusion [RMSD * 08], take into account bigger, though still local, regions. Thus, by using local region based techniques only direct illumination is computed, i. e., local illumination not influenced by other parts of the scene. Hence, not every other part of the scene has to be considered when computing the illumination for the current object and the rendering complexity is reduced from O(n 2 ) to O(n), with n being the number of voxels. Gradient-based volumetric shading  is today still the most widely used shading technique in the context of interactive volume rendering. It exploits voxel gradients as surface normals to calculate local lighting effects. The actual illumination computation is performed in a similar way as when using the Blinn-Phong illumination model  in polygonal-based graphics, whereas the surface normal is substituted by the gradient derived from the volumetric data. Figure 7 shows a comparison of gradient-based volumetric shading and the application of the standard emission and absorption model. As can be seen, surface details become more prominent when using gradient-based shading. The local illumination at a point x is computed as the sum of the three supported reflection contributions: diffuse reflection, specular reflection and ambient lighting. Diffuse and specular reflections both depend on the normalized gradient is the intensity value given at position x. Thus, we can define the shading function as: The material ambient, diffuse, and specular components at location x are represented by s amb ( x), s di f f ( x), and sspec( x), respectively. They are often referred to as ka, k d , and ks in the computer graphics literature. The ambient term approximate indirect illumination effects, which ensure that voxels with gradients pointing away from the light source do not appear pitch black. In this case s amb is simply a constant but more advanced techniques, which include ambient occlusion, are covered below. α is used to influence the shape of the highlight seen on surface-like structures. A rather large α results in a small sharp highlight, while a smaller α results in a bigger smoother highlight. To also incorporate attenuation based on the distance between x and x l the computed light intensity can be modulated. However, this distance based weighting does not incorporate any voxels possibly occluding the way to the light source, which would result in shadowing. To solve this issue, volume illumination techniques not being constrained to a local region need to be applied. As the gradient σt ( f ( x)) is used in the computation of the diffuse and specular parts, its quality is crucial for the visual quality of the rendering. Especially when dealing with a high degree of specularity, an artifact free image can only be generated when the gradients are continuous along a boundary. However, often local difference operators are used for gradient computation, and thus the resulting gradients are subject to noise. Therefore, several approaches have been developed which improve the gradient quality. Since these techniques are beyond the scope of this article, we refer to the work presented by Hossain et al.  as a starting point. Gradient-based shading can be combined with all existing volume rendering paradigms, and it supports an arbitrary number of point and directional light sources. Due to the local nature, no shadows or scattering effects are supported. The rendering time, which depends on the used gradient computation scheme, is in general quite low. To further accelerate the rendering performance, gradients can also be precomputed and stored in a gradient volume accessed during rendering. No additional memory is required when this precomputation is not performed. Clipping is directly supported, though the gradient along the clipping surfaces needs to be replaced with the clipping surface normal to avoid rendering artifacts [HLY09] . Besides the local nature of this approach, the gradient computation makes gradientbased shading highly dependent on the SNR of the rendered data. Therefore, gradient-based shading is not recommended  where δ( x, ω i , a) offsets the position by a along the direction ω i , to avoid self occlusion. R Ω specifies the radius of the local neighborhood for which the occlusion is computed, and g A ( x ) denotes the light contribution at each position x along a ray. Since the occlusion should be computed in an ambient manner, it needs to be integrated over all rays in the neighborhood Ω around a position x (see Figure 9 ). Different light contribution functions g A ( x ) are presented. To achieve sharp shadow borders, the usage of a Dirac delta is proposed, which ensures that light contributes only at the boundary of Ω. Smoother results can be achieved, when the ambient light source is considered volumetric. This result in adding a fractional light emission at each sample point: where L e ( x, ωo) is a spatially varying emission term that can be used for different tissue types. An application of the occlusion only illumination is shown in Figure 10 (left), while Figure 10 (right) shows the application of the additional emissive term, which is set proportional to the signal strength of a co-registered functional magnetic resonance imaging (fMRI) signal [NEO * 10]. A straight forward implementation of local ambient occlusion would result in long rendering times, as for each x multiple rays need to be cast to determine the occlusion factor. Therefore, it has been implemented by exploiting a multiresolution approach BIB001 . This flat blocking data structure represents different parts of the volume at different levels of detail. Thus, empty homogeneous regions can be stored at a very low level of detail, which requires less sampling operations when computing s amb ( x). Local ambient occlusion is not bound to a specific rendering paradigm. When combined with gradient-based lighting, it supports point and directional light sources, while the actual occlusion simulates an exclusive ambient light only. The rendering time is interactive, while the multiresolution data structure needs to be updated whenever the transfer function has been changed. The memory size of the multiresolution data structure depends on the size and homogeneity of the dataset. In a follow up work, more results and the usage of clipping planes during the local ambient occlusion computation are discussed [HLY09]. The main idea of this approach is to modulate these intensity distributions with the transfer function during rendering, such that integration over the modulated result allows the occlusion to be obtained. The intensity distributions are stored as normalized local histograms. When storing one normalized local histogram for each voxel, this would result in a large amount of data which needs to be stored and accessed during rendering. Therefore, a similarity based clustering is performed on the histograms, whereby a vector quantization approach is exploited. After clustering, the local histograms representing a cluster are available as a 2D texture table, which is accessed during rendering. Additionally, a scalar volume containing a cluster ID for each voxel is generated, which associates the voxel with the corresponding row storing the local histogram in the 2D texture (see Figure 11 ). During rendering, the precomputed information is used to support four different illumination effects: ambient occlusion, color bleeding, scattering and a simple glow effect. Therefore, the representative histogram is looked up for the current voxel and then modulated with the transfer function color to produce the final color. To integrate ambient occlusion into an isosurface based volume renderer, the gradientbased shading formulation described above is modulated, such that the ambient intensity s amb ( x) is derived from the precomputed data: where Oenv is the local occlusion factor, which is computed as: Here, R Ω depicts the radius of the region, for which the local histograms LH have been precomputed. b is the data bit depth and thus 2 b is the number of bins of the local histogram. The bins LH j are modulated based on the opacity σα( j) assigned to each intensity j. This operation is performed through texture blending on the GPU, and thus allows the occlusion information to be updated in real-time. To apply this approach to direct volume rendering, the environmental color Eenv is derived in a similar way as the occlusion factor Oenv: where σ rgb ( j) represents the emissive color of voxels having the intensity j. During rendering, the current voxel's diffuse color coefficient k d is obtained by blending between the transfer function color σ rgb and Eenv with using the occlusion factor Oenv as blend factor. Thus, color bleeding is simulated, as the current voxel's color is affected by its environment. To support a simple glow effect, an additional mapping function can be exploited, which is also used to modulate the local histograms stored in the precomputed 2D texture. Dynamic ambient occlusion is not bound to a specific rendering paradigm, though in the original paper it has been introduced in the context of volume ray-casting [RMSD * 08]. Since it facilitates a gradient-based Blinn-Phong illumination model, which is enriched by ambient occlusion and color bleeding, it supports point, distant and ambient light sources. While an ambient light source is always exclusive, the technique can be used with several point and distant light sources, which are used to compute diffuse and specular contributions. Since the precomputed histograms are constrained to local regions, only local shadows are supported, which have a soft appearance. A basic scattering extension, exploiting one histogram for each halfspace defined by a voxel's gradient, is also supported. The rendering performance is interactive, as in comparison to standard gradient-based shading only two additional texture lookups need to be performed. The illumination update time is also low, since the histogram modulation is performed through texture blending. For the precomputation stage, Ropinski et al. [RMSD * 08] report expensive processing times, which are required to compute the local histograms and to perform the clustering. In a more recent approach, Mess and Ropinski propose a CUDA-based approach which reduces the precomputation times by a factor of up to 10 BIB002 . During v o lu m e d a t a s e t h a lf a n g le ve ct o r Figure 12 : Half angle slicing performs texture slicing in the orthogonal direction to the half angle between the view direction and the light source. precomputation, one additional scalar cluster lookup volume as well as the 2D histogram texture is generated. Since the histogram computation takes a lot of processing time, interactive clipping is not supported, as it would affect the density distribution in the voxel neighborhoods.