mollnn / manifold-path-guiding

Code for SIGGRAPH Asia 2023 (ToG) paper "Manifold Path Guiding for Importance Sampling Specular Chains"

Home Page:https://zhiminfan.work/manifoldPG.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ManifoldPG_teaser_720p

Manifold Path Guiding

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.

Links

[Project Page] [Paper] [Supplemental] [Video]

Build and run experiments

The source code of our integrator lies in the folder mitsuba/src/integrators/MPG.

To run the code, the following steps are required:

  1. Clone this repo.

  2. Then, prepare the ext libraries. Unzip mitsuba/ext.zip into the folder mitsuba/ext. (You can also clone the modules following the original compilation instructions of Mitsuba 2.)

  3. 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 ..
  1. 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.

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× variance reduction, especially in typical scenes containing long specular chains and complex visibility.

Cite

@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}
}

Acknowledgement

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

About

Code for SIGGRAPH Asia 2023 (ToG) paper "Manifold Path Guiding for Importance Sampling Specular Chains"

https://zhiminfan.work/manifoldPG.html


Languages

Language:C++ 83.4%Language:Python 14.3%Language:CMake 1.2%Language:Cuda 0.7%Language:C 0.2%Language:TeX 0.1%Language:Shell 0.1%Language:Batchfile 0.0%