This project contains the source code for the EGSR 2019 paper:
Adaptive BRDF-Oriented Multiple Importance Sampling of Many Lights, by
Yifan Liu, Kun Xu and Ling-Qi Yan.
The implementation is based on pbrt-v3 and we mainly modified/added:
src/integrators/path.h(cpp)
: integrator of path tracingsrc/acceleratiors/lightree.h(cpp)
: light treesrc/accelerators/lighttreesampler.h(cpp)
: direct illumination sampling techniques, core idea of our papersrc/materials/ltc.h(cpp)
: evaluation of brdf integral
Usage should be relatively clear for developers familiar with PBRT.
$ git clone https://github.com/lyfxyz/blsml/
$ cd blsml
$ mkdir build
$ cd build
$ make ..
Please refer to pbrt-v3 for more details on building.
In scene/
folder, we contain an example scene: Cornell Box with thousands of small lights, which is used in our paper. To render this scene, just:
$ ./pbrt PATH2SCENE/cornell-box/scene.pbrt