A Survey of Volumetric Illumination Techniques for Interactive Volume Rendering <s> Light Space Based Techniques ( ) <s> Shadowing has historically been used to increase the intelligibility of scenes in electron microscopy and aerial survey. Various methods have been published for the determination of shadows in computer synthesized scenes. The display of shadows may make the shape and relative position of objects in such scenes more comprehensible; it is a technique lending vividness and realism to computer animation. To date, algorithms for the determination of shadows have been restricted to scenes constructed of planar polygons. A simple algorithm is described which utilizes Z-buffer visible surface computation to display shadows cast by objects modelled of smooth surface patches. The method can be applied to all environments, in fact, for which visible surfaces can be computed. The cost of determining the shadows associated with each light source is roughly twice the cost of rendering the scene without shadows, plus a fixed transformation overhead which depends on the image resolution. No extra entities are added to the scene description in the shadowing process. This comprehensive algorithm, which permits curved shadows to be cast on curved surfaces, is contrasted with a less costly method for casting the shadows of the environment on a single ground plane. In order to attain good results, the discrete nature of the visible-surface computations must be treated with care. The effects of dither, interpolation, and geometric quantization at different stages of the shadowing algorithm are examined. The special problems posed by self-shadowing surfaces are described. <s> BIB001 </s> A Survey of Volumetric Illumination Techniques for Interactive Volume Rendering <s> Light Space Based Techniques ( ) <s> Deep shadow maps unify the computation of volumetric and geometric shadows. For each pixel in the shadow map, a fractional visibility function is sampled, pre-filtered, and compressed as a piecewise linear function. However, the original implementation targets software-based off-line rendering. Similar previous algorithms on GPUs focus on geometric shadows and lose many important benefits of the original concept. We focus on shadows for interactive direct volume rendering, where shadow algorithms currently either compute additional per-voxel shadow data, or employ half-angle slicing to generate shadows during rendering. We adapt the original concept of deep shadow maps to volume ray-casting on GPUs, and show that it can provide anti-aliased high-quality shadows at interactive rates. Ray-casting is used for both generation of the shadow map data structure and actual rendering. High frequencies in the visibility function are captured by a pre-computed lookup table for piecewise linear segments. Direct volume rendering is performed with an additional deep shadow map lookup for each sample. Overall, we achieve interactive high-quality volume ray-casting with accurate shadows. To conclude, we briefly describe how semi-transparent geometry such as hair could be integrated as well, provided that rasterization can write to arbitrary locations in a texture. This would be a major step toward full deep shadow map functionality. <s> BIB002 </s> A Survey of Volumetric Illumination Techniques for Interactive Volume Rendering <s> Light Space Based Techniques ( ) <s> Whilst the Deep Shadow Maps algorithm for accelerating the rendering of volumetric shadows is a fitting solution for offline applications, it can consume an unbounded amount of memory and is difficult to map well to current graphics hardware. For these reasons alternative methods have been proposed for interactive applications based on the idea of accumulating opacity from volume primitives in depth-based buckets or slices. However, these slice-based methods can introduce objectionable and unstable slice-like artefacts due to undersampling of the depth range, and often many slices are required to overcome these artefacts. Further refinements have been proposed to address this, but they constrain the generality of the algorithm, for example by mandating an assumption of uniform opacity or by dropping support for pre-filtering. We introduce a novel algorithm called Fourier Opacity Mapping (FOM) and we show that it is a good choice for rendering artefact-free pre-filtered volumetric shadows in cases where spatial opacity variations are smooth (e.g. smoke, gas and low-opacity hair). We also show how the algorithm can be generalised to other orthonormal bases. <s> BIB003
As light space based techniques we consider all those techniques, where illumination information is directionally propagated with respect to the current light position. Unlike the slice based techniques, these techniques are independent of the underlying rendering paradigm. However, since illumination information is propagated along a specific direction, these techniques usually support only a single light source. Deep Shadow Mapping has been developed to enable shadowing of complex, potentially semi-transparent, structures  . While standard shadow mapping BIB001 supports basic shadowing by projecting a shadow map as seen from the light source [SKvW * 92], it does not support semitransparent occluders which often occur in volume rendering. In order to address semi-transparent structures, opacity shadow maps serve as a stack of shadow maps, which store alpha values instead of depth values in each shadow map  . Nevertheless, deep shadow maps are a more compact representation for semi-transparent occluders. They also consist of a stack of textures, but in contrast to the opacity shadow maps, an approximation to the shadow function is stored in these textures. Thus, it is possible to approximate shadows by using fewer hardware resources. Deep shadow mapping has first been applied to volume rendering by Hadwiger et al. BIB002 . An alternative approach has been presented by Ropinski et al.  . While the original deep shadow map approach [LV00] stores the overall light intensity in each layer, in volume rendering it is advantageous to store the absorption given by the accumulated alpha value in analogy to the volume rendering integral. Thus, for each shadow ray, the alpha function is analyzed, i. e., the function describing the absorption, and approximated by using linear functions. To have a termination criterion for the approximation of the shadowing function, the depth interval covered by each layer can be restricted. However, when it is determined that the currently analyzed voxels cannot be approximated sufficiently by a linear function, smaller depth intervals are considered. Thus, the approximation works as follows. Initially, the first hit point for each shadow ray is computed, similar to standard shadow mapping. Next, the distance to the light source of the first hit point and the alpha value for this position are stored within the first layer of the deep shadow map. At the first hit position, the alpha value usually equals zero. Starting from this first hit point, each shadow ray is traversed and it is checked iteratively whether the samples encountered so far can be approximated by a linear function. When processing a sample, where this approximation would not be sufficient, i. e., a user defined error is exceeded, the distance of the previous sample to the light source as well as the accumulated alpha value at the previous sample are stored in the next layer of the deep shadow map. This is repeated until all layers of the deep shadow map have been created. The error threshold used when generating the deep shadow map data structure is introduced to determine whether the currently analyzed samples can be approximated by a linear function. In analogy to the original deep shadow mapping technique  , this error value constrains the variance of the approximation. This can be done by adding (resp. subtracting) the error value at each sample's position. When the alpha function does not lie within the range given by the error threshold anymore, a new segment to be approximated by a linear function is started. A small error threshold results in a better approximation, but more layers are needed to represent the shadow function. A different approach was presented by Jansen and Bavoil BIB003 . They approximate the absorption function using a Fourier series, which works especially well for smooth media such as fog and smoke. The opacity is projected into the Fourier domain and a fixed number of coefficients are used to store the approximation in a Fourier Opacity Map (FOM). This enables them to get a more accurate approximation at comparable memory consumption and speed compared to the original Deep Shadow Mapping [LV00] approach. However, as Jansen and Bavoil point out in their paper, high density medias may cause ringing ar- tifacts. Therefore, Delalandre et al. [DGMF11] improved the FOM method and used it to represent transmittance instead of opacity, which enabled them to quickly evaluate single scattering with projective light sources. Furthermore, they proposed a projective sampling scheme, which take samples uniformly in light space, and also allow geometries to be integrated in the rendering. Gautron et al. [GDM11] further expanded on the work of Delalandre et al. [DGMF11] by encoding the variation of the extinction along a ray and enabling the use of particle-based media. Once the deep shadow map data structure is obtained, the resulting shadowing information can be used in different ways. A common approach is to use the shadowing information in order to diminish the diffuse reflectance when using gradient-based shading. Nevertheless, it can also be used to directly modulate the emissive contribution Le( x, ωo) at x. A comparison of deep shadow mapping, which enable semi-transparent occluders, with shadow rays and standard shadow mapping is shown in Figure 15 . As it can be seen deep shadow maps introduce artifacts when thin occluder structures are present. The shadows of these structures show transparency effects although the occluders are opaque. This result from the fact that an approximation of the alpha function is exploited and especially thin structures may diminish when approximating over too long depth intervals. The deep shadow mapping technique is not bound to a specific rendering paradigm. It supports directional and point light sources, which should lie outside the volume since the shadow propagation is unidirectional. Due to the same reason, only a single light source is supported. Both rendering and update time of the deep shadow data structure, which needs to be done when lighting or transfer function changes, are interactive. The memory footprint of deep shadow mapping is directly proportional to the number of used layers or coefficients. Desgranges et al.  also propose a gradient-free technique for shading and shadowing that is based on projective texturing. Their approach produces visually pleasing shadowing effects and can be applied interactively. Image Plane Sweep Volume Illumination [SYR11] allows advanced illumination effects to be integrated into a GPU-based volume ray-caster by exploiting the plane sweep paradigm. By using sweeping, it becomes possible to reduce the illumination computation complexity and achieve interactive frame rates, while supporting scattering as well as shadowing. The approach is based on a reformulation of the optical model that either considers single scattering with a single light direction, or multiple scattering resulting from a rather high albedo  . Multiple scattering is simulated by assuming the presence of a high albedo, making multiple scattering predominant and possible to approximate using a diffusion approach: Here, ∇ di f f represents the diffusion approximation and results in a weighting, such that more distant samples have less influence. x b represents the background position lying outside the volume. In practice, the computation of the scattering contributions can be simplified, assuming the presence of a forward peaked phase function, such that all relevant samples lie in direction of the light source. Thus, the computation can be performed in a synchronized manner, which is depicted by the following formulation for single scattering: and a similar representation for the multiple scattering contribution: Image plane sweep volume illumination facilitates this splitting at x , which is based on the current state of the sweep line, by performing a synchronized ray marching. During this process, the view rays are processed in an order, such that those being closer to the light source in image space are processed earlier. This is ensured by exploiting a modified plane sweeping approach, which iteratively computes the influence of structures when moving further away from the light source. To store the illumination information accumulated along all light rays between the samples of a specific sweep plane, a 2D illumination cache in form of a texture is used. Image plane sweep volume illumination has been developed as a ray-based technique and can thus only be used within this rendering paradigm. It supports one point or directional light source, and simulates single as well as forward multiple scattering effects. Since all illumination computations are performed directly within a single rendering pass, it does not require any preprocessing and does not need to store intermediate results within an illumination volume, which results in a low memory footprint. The interactive application of clipping planes is inherently supported.