This is the code that was used in developing and evaluating our algorithm. It depends on the
G3D Innovation Engine (http://casual-effects.com/g3d/) for basic GPU programming utilities, such
as textures, G-buffers, and common BRDF helper functions; and generic scene and application helpers.

The main shader code for our technique is in data-files/shader, which provides the details of the 
bilateral and temporal filters and the reprojection math. The CPU-side code for denoising is contained
in source/GIRenderer.cpp's GIRenderer::denoiseIndirectIllumination() function.