Neural Product Importance Sampling
via Warp Composition
In ACM SIGGRAPH Asia 2024 (Conference Proceedings), December 2024
Abstract
Achieving high efficiency in modern photorealistic rendering hinges on using Monte Carlo sampling distributions that closely approximate the illumination integral estimated for every pixel. Samples are typically generated from a set of simple distributions, each targeting a different factor in the integrand, which are combined via multiple importance sampling. The resulting mixture distribution can be far from the actual product of all factors, leading to sub-optimal variance even for direct-illumination estimation. We present a learning-based method that uses normalizing flows to efficiently importance sample illumination product integrals, e.g., the product of environment lighting and material terms. Our sampler composes a flow head warp with an emitter tail warp. The small conditional head warp is represented by a neural spline flow, while the large unconditional tail is discretized per environment map and its evaluation is instant. If the conditioning is low-dimensional, the head warp can be also discretized to achieve even better performance. We demonstrate variance reduction over prior methods on a range of applications comprising complex geometry, materials and illumination.
Downloads
Publication
- Paper (author's version), PDF (13.2MB)
- arXiv version – external link
- Publisher's official version – external link, may require a subscription
Code
- Coming soon
BibTeX
Fast-forward Video
Cite
Joey Litalien, Miloš Hašan, Fujun Luan, Krishna Mullia, and Iliyan Georgiev. Neural Product Importance Sampling via Warp Composition. ACM SIGGRAPH Asia 2024 (Conference Proceedings), 1(1), Article 1, December 2024.
@inproceedings{Litalien:2024:Warp, title = {Neural Product Importance Sampling via Warp Composition}, author = {Joey Litalien and Miloš Hašan and Fujun Luan and Krishna Mullia and Iliyan Georgiev}, journal = {ACM SIGGRAPH Asia 2024 Conference Proceedings}, year = {2024}, month = dec, doi = {10.1145/3680528.3687566} }
Copy to clipboard