Zhimin Fan* · Pengpei Hong* · Jie Guo · Changqing Zou · Yanwen Guo · Ling-Qi Yan
*: Joint first author
ACM Transactions on Graphics (Proceedings of SIGGRAPH ASIA 2023)
We propose a solution to importance sampling specular chains with seed placement using importance probability distributions reconstructed from historical samples. This outperforms state-of-the-art unbiased solutions with up to 40× variance reduction.
[Project Page] [Paper] [Supplemental] [Video]
The source code of our integrator lies in the folder mitsuba/src/integrators/MPG
.
To run the code, the following steps are required:
-
Clone this repo.
-
Then, prepare the ext libraries. Unzip
mitsuba/ext.zip
into the foldermitsuba/ext
. (You can also clone the modules following the original compilation instructions of Mitsuba 2.) -
To generate the project file, run the following commands in the terminal:
cd mitsuba
mkdir build
cd build
cmake -G "Visual Studio 16 2019" -A x64 ..
- Open the generated
mitsuba/build/mitsuba.sln
and build in Release mode.
After building and compiling the project, you can go to experiements
folder to run our prepared script for reproduction.
Complex visual effects such as caustics are often produced by light paths containing multiple consecutive specular vertices (dubbed specular chains), which pose a challenge to unbiased estimation in Monte Carlo rendering. In this work, we study the light transport behavior within a sub-path that is comprised of a specular chain and two non-specular separators. We show that the specular manifolds formed by all the sub-paths could be exploited to provide coherence among sub-paths. By reconstructing continuous energy distributions from historical and coherent sub-paths, seed chains can be generated in the context of importance sampling and converge to admissible chains through manifold walks. We verify that importance sampling the seed chain in the continuous space reaches the goal of importance sampling the discrete admissible specular chain. Based on these observations and theoretical analyses, a progressive pipeline, manifold path guiding, is designed and implemented to importance sample challenging paths featuring long specular chains. To our best knowledge, this is the first general framework for importance sampling discrete specular chains in regular Monte Carlo rendering. Extensive experiments demonstrate that our method outperforms state-of-the-art unbiased solutions with up to 40× variance reduction, especially in typical scenes containing long specular chains and complex visibility.
@article{Fan23ManifoldPG,
author = {Fan, Zhimin and Hong, Pengpei and Guo, Jie and Zou, Changqing and Guo, Yanwen and Yan, Ling-Qi},
title = {Manifold Path Guiding for Importance Sampling Specular Chains},
year = {2023},
issue_date = {December 2023},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {42},
number = {6},
issn = {0730-0301},
url = {https://doi.org/10.1145/3618360},
doi = {10.1145/3618360},
abstract = {Complex visual effects such as caustics are often produced by light paths containing multiple consecutive specular vertices (dubbed specular chains), which pose a challenge to unbiased estimation in Monte Carlo rendering. In this work, we study the light transport behavior within a sub-path that is comprised of a specular chain and two non-specular separators. We show that the specular manifolds formed by all the sub-paths could be exploited to provide coherence among sub-paths. By reconstructing continuous energy distributions from historical and coherent sub-paths, seed chains can be generated in the context of importance sampling and converge to admissible chains through manifold walks. We verify that importance sampling the seed chain in the continuous space reaches the goal of importance sampling the discrete admissible specular chain. Based on these observations and theoretical analyses, a progressive pipeline, manifold path guiding, is designed and implemented to importance sample challenging paths featuring long specular chains. To our best knowledge, this is the first general framework for importance sampling discrete specular chains in regular Monte Carlo rendering. Extensive experiments demonstrate that our method outperforms state-of-the-art unbiased solutions with up to 40 \texttimes{} variance reduction, especially in typical scenes containing long specular chains and complex visibility.},
journal = {ACM Trans. Graph.},
month = {dec},
articleno = {257},
numpages = {14},
keywords = {caustics, importance sampling, specular chain}
}
We make heavy use of the codebase of SMS and PPG. Some scenes in this repo are modified from the test scenes of SMS and Bitterli's resources