Skip to content

uluyek/Project4-CUDA-Denoiser

 
 

Repository files navigation

CUDA Denoiser For CUDA Path Tracer

University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 4

  • Keyu Lu
  • Tested on: Windows 10, Dell Oman, NVIDIA GeForce RTX 2060

Feature Implemented:

I implemented the A-trous wavelet denoising filter from the "Edge-Avoiding A-Trous Wavelet Transform for fast Global Illumination Filtering" (https://jo.dreggn.org/home/2010_atrous.pdf) paper by Dammertz, Sewtz, Hanika.

Denoising Results:

Cornell Ceiling Light Scene:

Undenoised Scene Denoised Scene GBuffer

Custom Scene:

Undenoised Scene Denoised Scene (Iteration 10)
Denoised Scene (Iteration 100) GBuffer

Performance Analysis:

Filter Size Analysis:

As the filter size increases, noise reduction improves, leading to a smoother image. However, this comes at the cost of losing fine details and sharpness, especially noticeable with larger filter sizes like 50 and 75. The filter size of 25 appears to offer the best compromise, effectively reducing noise while still preserving most of the details.

Filter Size 10 Filter Size 25
Filter Size 50 Filter Size 75

Material Analysis:

Denoising effectiveness varies significantly across different material types. Diffuse materials generally show a uniform noise pattern that can be smoothed out but might lead to color desaturation. Specular and mirror materials require careful denoising to maintain reflection clarity. Emissive materials, while smooth on their own, contribute to noise in their vicinity, requiring a balance in denoising to maintain the light's impact on the scene.Materials with stronger hues, like red and green, may require more nuanced denoising to prevent color shifts. In contrast, neutral materials like white need a denoising approach that preserves detail without introducing a grayish or washed-out appearance.

Diffuse White Diffuse Red Diffuse Green
Specular White Mirror Emissive

Scene Analysis:

The Cornell Ceiling Light scene, with its expansive light source, yields a more homogeneous distribution of light across the room. This uniform illumination simplifies the denoising process, as the noise patterns are more regular and predictable, allowing for smoother denoising with less potential for detail loss. In contrast, the traditional Cornell Box scene, illuminated by a smaller light source, presents a more challenging environment for denoising. The intricate interplay of light and shadow, combined with the subtleties of indirect lighting, results in a complex noise pattern. The denoising algorithm must then carefully differentiate between noise and essential details, especially in the nuanced gradients and shadows. Consequently, the denoised output may retain more noise or lose some fine details, depending on the algorithm's sophistication and the parameters used for denoising. Comparatively, the denoised image of the Cornell Ceiling Light scene tends to be more consistent and clean, showcasing the advantage of uniform lighting in facilitating noise reduction.

Cornell Undenoised Cornell Denoised
Cornell Ceiling Light Undenoised Cornell Ceiling Light Denoised

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 84.7%
  • C 13.8%
  • Other 1.5%