À-Trous Wavelet Denoiser
C++ / CUDA | Github Repository
Building off the CUDA-based pathtracer I developed, I implemented the paper Edge-Avoiding À-Trous Wavelet Transform for fast Global Illumination Filtering. This describes an algorithm for denoising the image by applying a blur to the surfaces without disrupting the edges in the scene. These edges are defined by differences in the positions, normals, and colors of the raytraced information in the scene.
The denoiser derives its name from "À-Trous wavelet transform," which is a way to approximate a Gaussian blur without taking as much time to compute it. This involves taking the original coordinates of the Gaussian kernel and spreading them out over a larger area, sampling parts of the image to approximate a bigger blur, as shown below.
I go into more detail about my results and their performance in my Github repository.