One would think that Real Time Rendering of Smoke Animation in this technological era would be a cake walk. Well, it isn't and here's why:
Rendering of smoke presents a challenging problem in computer graphics because of its complicated effects on light propagation. Within a smoke volume, light undergoes absorption and scattering interactions that vary from point to point because of the spatial non-uniformity of smoke. In static participating media, the number and the complexity of scattering interactions lead to a substantial expense in computation. For a dynamic medium such as smoke, the intricate volumetric structure of which changes with time, the computational costs can be prohibitive. Despite the practical difficulties of smoke rendering, it nevertheless remains a popular element in many applications, such as films and games. To achieve the desired visual effects of smoke, a designer should be afforded real-time control over the lighting environment and vantage point, as well as the volumetric distribution and optical properties of the smoke. We present a real-time algorithm for rendering of smoke under dynamic low-frequency environment lighting. Our algorithm can be implemented easily on a GPU, thus enabling real-time manipulation of viewpoint and lighting, as well as interactive editing of smoke attributes, such as extinction cross section, scattering albedo, and phase function. With only moderate preprocessing time and storage, this technique generates rendering results comparable to those from offline rendering algorithms such as ray tracing.