A Survey of Volumetric Illumination Techniques for Interactive Volume Rendering <s> Shadow Splatting was first proposed in 2001 by Nulkar and <s> This paper describes an efficient algorithm to model the light attenuation due to a participating media with low albedo. The light attenuation is modeled using splatting volume renderer for both the viewer and the light source. During the rendering, a 2D shadow buffer attenuates the light for each pixel. When the contribution of a footprint is added to the image buffer, as seen from the eye, we add the contribution to the shadow buffer, as seen from the light source. We have generated shadows for point lights and parallel lights using this algorithm. The shadow algorithm has been extended to deal with multiple light sources and projective textured lights. <s> BIB001 </s> A Survey of Volumetric Illumination Techniques for Interactive Volume Rendering <s> Shadow Splatting was first proposed in 2001 by Nulkar and <s> Some applications require scenes mixing polygonal and volumetric objects and shadows make the scenes more realistic. This paper describes a shadow algorithm for mixed polygonal and volumetric data, including the generation of soft shadows for area light sources. Our volume shader leverages advanced graphics GPU for an accelerated and feasible solution. The shadow and soft shadow algorithm applies to all combinations of volumes and polygons, without any restriction on the geometric positioning and overlap of the volumes and polygons. For realistic rendering where we have a high albedo participating media, multiple scattering is significant. We extend our algorithm to handle both multiple forward scattering and back scattering with light attenuation. This constitutes a complete system for shadow generation and light propagation. <s> BIB002
Mueller  . As the name implies, it is bound to the splatting rendering paradigm, which is exploited to attenuate the lighting information as it travels through the volume. Single scattering is supported and this method is therefore based on Equation 3, but uses a filter kernel to splat light information into a shadow volume. The shadow volume is updated in a first splatting pass, during which light information is attenuated as it travels through the volume using Equation 5 for each light source. In the second splatting pass, which is used for rendering, the shadow volume is used to acquire the incident illumination. The actual shading is performed using Phong shading, whereas the diffuse and the specular light intensity is replaced by the direct light L i ( x, ω i ). Zhang and Crawfis BIB001  present an algorithm which does not require storage of a shadow volume in memory. Their algorithm instead exploits two additional image buffers for handling illumination information (see Figure 16) . These buffers are used to attenuate the light during rendering and to add its contribution to the final image. Whenever a light contribution is added to the final image buffer seen from the camera, this contribution is also added to the shadow buffer as seen from the light source. Shadow splatting can be used with multiple point light and distant light sources, as well as textured area lights. While the initial algorithm BIB001 only supports hard shadows, a later extension integrates soft shadows  . The rendering time is approximately doubled with respect to regular splatting when computing shadows. The algorithm by Zhang and Crawfis BIB001  updates the 2D image buffers during rendering and thus requires no considerable update times, while the algorithm by Nulkar and Mueller  needs to update the shadow volume, which requires extra memory and update times. A later extension makes the integration of geometry possible BIB002 . Historygram Photon Mapping [JKRY12] enabled interactive editing of transfer functions by only recomputing the parts of the light transport solution that actually changes. Photon mapping is used as the underlying light transport method, which is based on Equation 3, but with the single scattering term Lss( x , ωo) exchanged with multiple scattering Lms( x , ωo) from Equation 6. The recursive nature of multiple scattering is avoided by approximating the inscattered radiance with the n energy particles Φ i ( x , ωp), called photons, within the spherical neighborhood of radius R: The method boils down to a two pass algorithm that first sends photons from the light sources, stores them, and then sends view rays from the camera that gathers the transmitted photons according to the equation above (see Figure 17) . A hash data structure is used to store and retrieve the photons lying within the radius R of the location x . Since both the process of sending and gathering photons is expensive, a concept for reducing these computations, called Historygram, is proposed. A Historygram, H, is the representable set of parameters that have been used during the computation, and a mapping function δ(x) is used in order to map all possible parameters into this representable set. A historygram is created by applying the union of the previous Historygram, H i , with the n new mapped parameters x j , j = 1..n: v o lu m e d a t a s e t R Figure 17 : Photon mapping sends light particles into the scene and then collects all photons within a radius R to approximate the in-scattered radiance. A binary data structure is used for the Historygrams, which enables low memory overhead and hardware instructions to be used when evaluating the mapping function δ(x) and comparing Historygrams. For photon mapping, a Historygram represent the data that is used and each photon stores a 64-bit Historygram. View rays are divided into segments that also each have a Historygram. When the user changes the transfer function, the affected data is encoded into a change Historygram and then evaluated against each photon's and view ray segment's associated Historygram. A photon or view ray segment is only recomputed if it was affected by the transfer function change. The view ray segments must be recomputed whenever the camera changes, but the photons can be reused as they are not dependent on the camera placement. Jönsson et al. [JKRY12] showed that speedups of up to 15 times can be achieved when applying the Historygram concept compared to a brute force photon mapper, thus enabling interactive transfer function editing. This method inherits many properties from the original photon mapping method introduced by Jensen  . As such, there is no restriction on the shape, number, or placement of light sources. Advanced material effects and mixtures of phase function and BRDF can be used as well as multiple scattering, which makes it possible to create realistic images such as the one in Figure 18 . The amount of memory required is highly dependent on the number of photons and view ray segments used. The hash data structure requires memory in addition to the photon data, which consist of position, direction, power, and Historygram. Each additional view ray segment requires 16MB of GPU memory for a 1024×1024 viewport resolution. Clip plane editing is supported, although not at interactive frame rates. 