Computer Graphics Laboratory ETH Zurich


Practical Path Guiding for Efficient Light-Transport Simulation

T. Müller, M. Gross, J. Novák

Proceedings of Eurographics Symposium on Rendering (EGSR) (Helsinki, Finland, Jun 19-21, 2017), Computer Graphics Forum, vol. 36, no. 4, 2017, pp. 91--100
[Abstract] [BibTeX] [PDF][PDF suppl.] [Video]


We present a robust, unbiased technique for intelligent light-path construction in path-tracing algorithms. Inspired by existing path-guiding algorithms, our method learns an approximate representation of the scene's spatio-directional radiance field in an unbiased and iterative manner. To that end, we propose an adaptive spatio-directional hybrid data structure, referred to as SD-tree, for storing and sampling incident radiance. The SD-tree consists of an upper part---a binary tree that partitions the 3D spatial domain of the light field---and a lower part---a quadtree that partitions the 2D directional domain. We further present a principled way to automatically budget training and rendering computations to minimize the variance of the final image. Our method does not require tuning hyperparameters, although we allow limiting the memory footprint of the SD-tree. The aforementioned properties, its ease of implementation, and its stable performance make our method compatible with production environments. We demonstrate the merits of our method on scenes with difficult visibility, detailed geometry, and complex specular-glossy light transport, achieving better performance than previous state-of-the-art algorithms.

[Download Video]

    author = {M\"{u}ller, Thomas and Gross, Markus and Nov\'{a}k, Jan},
    title = {Practical Path Guiding for Efficient Light-Transport Simulation},
    journal = {Computer Graphics Forum},
    volume = {36},
    number = {4},
    issn = {1467-8659},
    url = {},
    doi = {10.1111/cgf.13227},
    pages = {91--100},
    month = jun,
    year = {2017},
    numpages = {10},
    keywords = {global illumination, ray tracing},
[Download BibTeX]


In the original publication, which is available in the Wiley Online Library and the ACM Digital Library, the comparison against the method of Vorba et al. [2014] was inaccurate. We used the authors' publicly available code that contained an implementation issue in handling two-sided BRDFs. This issue surfaced in the KITCHEN scene introducing localized bias, which negatively offset the error metrics. Furthermore, the implementation did not parallelize well up to the amount of threads we used in our comparisons (48). After discovering these issues, we worked closely with Sebastian Herholz and Jiri Vorba on fixing them. Unfortunately, the training component of their method still does not scale well beyond 8 threads; the training timings could thus be in theory up to 6 times faster. We updated the results in the authors' version of our paper and supplementary materials and adjusted the wording to emphasize that the differences between the two methods are smaller than reported in the original publications. We also removed the claim of the method by Dahm and Keller [2017] being biased. The authors' version contains all these improvements and is available here.


Download Paper
Download Paper
[PDF suppl.]
Download Video