Photon Mapping
A C++ Photon Mapping project with a Python Wrapper
Photon Mapping Documentation

example workflow

photon_mapping

minimal but extensible header only implementation of photon mapping in C++.

[!NOTE]
This Project aims at determining the illumination of virtual plants and study the influence of their environment.

How to compile:

create and activate the conda environment:

conda env create -f environment.yml
conda activate photonmap

To install as a Python library:

python -m pip install ./

To compile the source code without installing (useful for debugging):

mkdir ./build && cd ./build
cmake -DCMAKE_BUILD_TYPE=Debug ../
make -j

How to run example:

conda activate photonmap
cd examples/python/plantgl-rad-scene
python planglRadScene.py

How to run the jupyter notebook

conda activate photonmap
pip install pgljupyter
cd examples/python/plantgl-rad-scene
jupyter notebook

Features

  • Direct illumination with explicit light sampling
  • Indirect illumination with final gathering
  • Caustics photon map
  • Load obj model

Requirements

  • C++ (20>=)
  • CMake (3.20>=)
  • OpenMP
  • Embree (>=3)

Externals

Authors

This project was originaly developed by YumcyaWiz(Kenta Eto). Main extension were developed by Aurélien Besnier and Nguyen Tuan Minh with contribution of J. Bertheloot, F. Boudon, E. Faure. This work was funded by INRAe Metaprogramme DIGIT-BIO (Digital biology to explore and predict living organisms in their environment).

Use case

This project is used in the coupling of MorphoNet and L-Py for the project Physioscope.

References

original git: https://github.com/yumcyaWiz/photon_mapping