Gradient-domain Volumetric Photon Density Estimation, SIGGRAPH 2018
This is the code release for the paper Gradient-domain Volumetric Photon Density Estimation in SIGGRAPH 2018.
It extends Mitsuba 0.5.0 to implement a group of rendering techniques to render homogeneous participating media. The code can be compiled on Windows 10 with Visual Studio 2013, and Arch Linux platform. It is preferable to use CMake to compile this project.
We support rendering of participating media in the primal domain with the sppm
integrator, and in the gradient domain with the gvpm
integrator. In each integrator, several photon representations are implemented, including photon points, beams, and planes.
This is basically the surface-based photon mapping technique brought into volumetric rendering. It makes use of a uniform 3D kernel for photon gathering.
In this representation, we treat the camera rays as beams, and gather all photons that the beams intersect. We support gathering with a 2D or a 3D kernel. It is preferable to use the 3D kernel as it allows spatial relaxation during gathering, i.e., the proposed mixed shift in the paper.
This representation treats both camera and light rays as beams. We support gathering with a 1D or a 3D kernel. Similar to BRE, it is preferable to use a 3D kernel for spatial relaxations.
This representation treats the light rays as planes. The current implementation does not check the visibility between the photon plane and the camera ray. For this reason, this technique only works with scenes that skipping visibility check does not bring large errors, e.g., the LASER scene in the paper. We support 0D kernel to gather plane contribution.
Beyond primal domain path tracing and bidirectional path tracing that naturally handles participating media,
we modified gradient-domain path tracing gpt
to support homogeneous participating media.
There is also code extended from gradient-domain bidirectional path tracing gbdpt
(experimental).
Due to time restriction, the current code version has few issues (ordered by priorities). These will be addressed if time permits. Note that these issues do not impact the results produced in our paper. If you want to contribute, please, feel free to address these issues through pull requests.
This code is released under the GNU General Public License (version 3).
This source code includes the following open source implementations:
If you use this code, please consider citing the following works accordingly:
@article{gruson:2018:gdvpm,
title = {{Gradient-domain Volumetric Photon Density Estimation}},
author = {Gruson, Adrien and Hua, Binh-Son and Vibert, Nicolas and Nowrouzezahrai, Derek and Hachisuka, Toshiya},
journal = {{ACM Transactions on Graphics}},
publisher = {{Association for Computing Machinery}},
year = {2018},
}
Please feel free to email adrien.gruson[at]gmail.com
or binhson.hua[at]gmail.com
for questions regarding the code.