Volumetric path tracing

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.

Like in the path tracing method, a ray is followed backwards, beginning from the eye, until reaching the light source. In volumetric path tracing, scattering events can occur along with ray tracing. When a light ray hits a surface, a certain amount gets 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 achieve a result with good quality and 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 is 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 in the same manner, until reaching the light source.

Sampling
A possible way of sampling distances is the ray marching method, which works similarly 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 — a non-isotropic phase function for simulating the scattering of materials like oceans, clouds or skin — can be applied.