Header only implementation of Progressive Photon Mapping: A Probabilistic Approach(PPMAPA) in C++.
In this reformulation of (stochastic) progressive photon mapping, not so many code changes are required from original photon mapping. You don't have to prepare hit points and local statistics of photons.
Due to this simplicity, most of the codes come from the implementation of original photon mapping
Algorithms are summarized as follows.
- Photon tracing
- Build photon map
- Ray tracing from the eye and estimate the reflected radiance with photon map
- Reduce the search radius for density estimation
- Go back to 1
Note that the procedure of 1, 2, 3 is the same as original photon mapping.
- Depth of field with thin lens camera
- Load obj model
CMake option | Description |
---|---|
BUILD_TESTS | build tests |
git submodule update --init
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Parameter | Value |
---|---|
number of photons in each iteration | 100000 |
number of iterations | 1000 |
alpha | 3/4 |
initial radius | 0.01 |
This model is available under models/
- yumcyaWiz/photon_mapping
- Hachisuka, Toshiya, Shinji Ogaki, and Henrik Wann Jensen. "Progressive photon mapping." ACM SIGGRAPH Asia 2008 papers. 2008. 1-8.
- Hachisuka, Toshiya, and Henrik Wann Jensen. "Stochastic progressive photon mapping." ACM SIGGRAPH Asia 2009 papers. 2009. 1-8.
- Knaus, Claude, and Matthias Zwicker. "Progressive photon mapping: A probabilistic approach." ACM Transactions on Graphics (TOG) 30.3 (2011): 1-13.