Unbiased light transport estimators for inhomogeneous participating media
Abstract
This paper presents a new stochastic particle model for efficient and unbiased Monte Carlo rendering of heterogeneous participating media. We randomly add and remove material particles to obtain a density with which free flight sampling and transmittance estimation are simple while material particle properties are simultaneously modified to maintain the true expectation of the radiance. We show that meeting this requirement may need the introduction of light particles with negative energy and materials with negative extinction, and provide an intuitive interpretation for such phenomena. Unlike previous unbiased methods, the proposed approach does not require a-priori knowledge of the maximum medium density that is typically difficult to obtain for procedural models. However, the method can benefit from an approximate knowledge of the density, which can usually be acquired on-the-fly with little extra cost and can greatly reduce the variance of the proposed estimators. The introduced mechanism can be integrated in participating media renderers where transmittance estimation and free flight sampling are building blocks. We demonstrate its application in a multiple scattering particle tracer, in transmittance computation, and in the estimation of the inhomogeneous air-light integral.
Downloads and links
- paper (PDF, 45 MB)
- supplemental document – additional details on single-scattering estimation (PDF)
- supplemental results – full-size and additional images from the paper (ZIP, 34 MB)
- slides – from the conference presentation (PPTX, 6.6 MB)
- citation (BIB)
BibTeX reference
@Article{SzirmayKalos:2017:UnbiasedVolumeSampling, author = {L\'{a}szl\'{o} Szirmay-Kalos and Iliyan Georgiev and Mil\'{a}n Magdics and Bal\'{a}zs Moln\'{a}r and D\'{a}vid L\'{e}gr\'{a}dy}, title = {Unbiased Light Transport Estimators for Inhomogeneous Participating Media}, journal = {Computer Graphics Forum}, note = {EUROGRAPHICS 2017}, volume = {36}, number = {2}, year = {2017} }