minimal but extensible header only implementation of photon mapping in C++
minimal but extensible header only implementation of photon mapping in C++.
CMake option | Description |
---|---|
BUILD_TESTS | build tests |
git submodule update --init
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
place obj model under build
and run
./examples/main
Name | Description |
---|---|
include/camera.h |
ray generation from camera |
include/core.h |
basic data types |
include/image.h |
image |
include/integrator.h |
implementation of photon mapping, path tracing(for reference) |
include/light.h |
light |
include/material.h |
implementation of BRDF, BTDFs |
include/photon_map.h |
implementation of photon map with kdtree |
include/primitive.h |
primitive |
include/sampler.h |
random number generation, sampling utilities |
include/scene.h |
ray-scene intersection, model loading |
include/triangle.h |
point sampling on a triangle |
Parameter | Value |
---|---|
number of photons | 1000000 |
number of nearest neighbors | 100 |
number of samples | 100 |
final gathering | false |
Parameter | Value |
---|---|
number of photons | 1000000 |
number of nearest neighbors | 100 |
number of samples | 100 |
final gathering | true |
Parameter | Value |
---|---|
number of photons | 1000000 |
number of nearest neighbors | 100 |
number of photons for caustics photon map | 1000000 |
number of samples | 100 |
Parameter | Value |
---|---|
number of photons | 100000 |
number of nearest neighbors | 100 |
number of photons for caustics photon map | 10000000 |
number of samples | 256 |
This model is available under models/