Global Illumination can be achieved with path tracing. This project implements a GPU path tracer, and subsequently a denoiser. To begin with, the core workings of the path tracer were implemented using CUDA kernels. Futhermore, glTF was chosen as the 3D format for arbitrary mesh loading, instead of simpler format such as OBJ. In order to support glTF, basic physically-based rendering techniques must be used for the metallic-roughness model which glTF uses, in addition to the ability to load arbitrary textures. Finally, a denoiser based on A-Trous algorithm was implemented.
Find out more on Github.