https://developer.nvidia.com/gpugems/GPUGems/gpugems_ch39.html
this chapter presents texture-based volume rendering techniques that are used for visualizing three-dimensional data sets and for creating high-quality special effects.
39.1 introduction
many visual effects are volumetric in nature. fluids, clouds, fire, smoke, fog, and dust are difficult to model with geometric primitives. volumetric models are better suited for creating such effects. these models assume that light is emitted, absorbed, and scattered by a large number of particles in the volume. see figure 39-1 for two examples.
figure 39-1 volumetric effects
in addition to modeling and rendering volumetric phenomena, volume rendering is essential to scientific and engineering applications that require visualization of three-dimensional data sets.
examples include visualization of data acquired by medical imaging devices or resulting from computational fluid dynamics simulations. users of interactive volume rendering applications rely on the performance of modern graphics accelerators for efficient data exploration and feature discovery.
this chapter describes volume rendering techniques that exploit the flexible programming model and 3D texturing capabilities of modern GPUs. although it is possible to implement other popular volume rendering algorithms on the GPU, such as ray casting (Roettger et al. 2003, Kruger and Westermann 2003), this chapter describes texture-based volume rendering only. texture-based techniques are easily combined with polygonal algorithms, require only a few render passes, and offer a great level of interactivity without sacrificing the quality of rendering.
section 39.2 introduces the terminology and explains the process of direct volume rendering. section 39.3 describes the components of a typical texture-based volume rendering application, and illustrates it with a simple example. section 39.4 provides additional implementation details, which expand the capabilities of the basic volume renderer. section 39.5 describes advanced techniques for incorporating more realistic lighting effects and adding procedural details to the rendering. section 39.6 concludes with a summary of relevant performance considerations.