Volumetric path tracing
Volumetric path tracing is a method for rendering images in computer graphics which was first introduced by Lafortune and Willems.[1] 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 gets followed backwards, beginning from the eye, until reaching the light source. In volumetric path tracing, scattering events can occur alongside with ray tracing. When a light ray hits a surface, a certain amount gets scattered into the media.[2]
Description
The algorithm is based on the volumetric rendering equation,[3] 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.[4]
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.[2][5]
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[6] can be applied. It is a non-isotropic phase function for simulating the scattering of materials like oceans, clouds or skin.[4]
References
- Lafortune, Eric P; Willems, Yves (June 1996). "Rendering participating media with bidirectional path tracing" (PDF). Proceedings of Rendering Techniques'96. Eurographics: 91–100. doi:10.1007/978-3-7091-7484-5_10. ISBN 978-3-211-82883-0.
- Skånberg, Robin (January 2015). "Evaluation of Visual Parameters in Volumetric Path Tracing" (PDF). Department of Science and Technology, Linköping University: 20–22. Cite journal requires
|journal=
(help) - Chandrasekhar, Subrahmanyan (1950). "Radiative transfer". Quarterly Journal of the Royal Meteorological Society. John Wiley & Sons, Ltd. 76 (330): 498. doi:10.1002/qj.49707633016. ISSN 1477-870X.
- Jarosz, Wojciech (2008). "4-5". Efficient Monte Carlo Methods for Light Transport in Scattering Media. University of California. pp. 55–100.
- Kulla, Christopher; Fajardo, Marcos (June 2012). "Importance Sampling Techniques for Path Tracing in Participating Media". Comp. Graph. Forum. John Wiley \& Sons, Inc. 31 (4): 1519–1528. doi:10.1111/j.1467-8659.2012.03148.x. ISSN 0167-7055.
- "The Henyey–Greenstein phase function" (PDF).
Further reading
- Volumetric Path Tracing (March 2012). Cornell University.
- Volume light transport (March 2012). Cornell University.
- Efficient Volume Rendering in CUDA Path Tracer (2013). University of Southern California.