Volumetric path tracing is a method for rendering images in computer graphics which was first introduced by Lafortune and Willems. This method enhances the rendering of the lighting in a scene by extending the path tracing method with the effect of light scattering. It is used for photorealistic effects of participating media like fire, explosions, smoke, clouds, fog or soft shadows. As in the path tracing method, a ray gets followed backwards, beginning from the eye on, until reaching the light source. In volumetric path tracing, scatter events can occur while these process. When a light ray hits a surface, a special amount of it can get scattered into the media.
Description
The algorithm is based on the volumetric rendering equation, which extends the rendering equation with a scattering term. It is composed of an absorption, out-scattering, emission and an in-scattering part. The absorption and out-scattering together form the extinction term. The in-scattering is the most expensive part to calculate because it needs an integration over all paths in the scene that consist of radiance. Therefore, thousands of paths need to be traced to get a result with a good quality without much noise. For a better handling, the in-scattering term can be split into two components, the single scattering and the multiple scattering.
Algorithm
In volumetric path tracing, a distance between the ray and the surface gets sampled and compared with the distance of the nearest intersection of the ray with the surface. If the sampled distance is smaller, a scatter event occurs. In that case the path gets evaluated and traced from the scatter point in the media, not from the surface point on which it falls. The rest of the procedure continues the same, until reaching the light source.
Sampling
A possible way of sampling distances is the ray marching method. It works similar to ray tracing but operates on a distance field of the scene, and acts in discrete steps. The scattering inside the media can be determined by a phase function using importance sampling. Therefore, the Henyey–Greenstein phase function can be applied. It is a non-isotropic phase function for simulating the scattering of materials like oceans, clouds or skin.