This repository contains the implementation of my master thesis in the Falcor engine from NVIDIA. It applies the Hash Cache data structure proposed by Binder et al. [2019] to store outgoing and incident radiance estimates in world space. Furthermore, a Neural Network as proposed by Müller et al. [2021] is used to estimate the same quantities and compete with the Hash Cache. The Neural Network uses adaptions of the Frequency Encoding [Mildenhall et al. 2020], the Spherical Harmonics Encoding [Verbin et al. 2022], and the Multiresolution Hash Encoding [Müller et al. 2022].
The Hash Caches and the Neural Caches provide the global and local radiance estimate required for Adjoint-Driven Russian Roulette [Vorba and Křivánek 2016] to improve the path termination decisions of Russian Roulette. Path Space Filtering heavily relies on radiance estimates and the strategy for terminating paths. It can significantly speed up rendering at the cost of bias. The radiance estimates can be supplied by the Hash Caches and Neural Caches. Paths are terminated either by a heuristic based on the accumulated roughness of surfaces hit by the path or by Adjoint-Driven Russian Roulette.
This project requires an adapted version of slang which can be found at https://github.com/itzMatze/slang.
- clone the
slangrepository somewhere on your machine - place a symlink under
external/packman/with the nameslangthat points to the top level of the adaptedslangrepository
The new compilation procedure uses the glslc command line tool; so, it should be installed. Unfortunately, this compilation procedure will most likely not work on windows. However, it should only require very small adaptions to make it work.
The original readme of the Falcor project can be found here.