Skip to content

millersy/Project4-CUDA-Denoiser

This branch is 46 commits ahead of, 8 commits behind CIS565-Fall-2020/Project4-CUDA-Denoiser:base-code.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2ed7ca5 · Oct 20, 2020
Sep 17, 2019
Oct 4, 2020
Oct 20, 2020
Oct 16, 2020
Oct 16, 2020
Oct 20, 2020
Sep 27, 2020
Sep 14, 2015
Sep 14, 2015
Sep 14, 2015
Oct 16, 2020
Sep 14, 2015
Sep 25, 2020
Sep 14, 2015
Oct 20, 2020

Repository files navigation

CUDA Denoiser For CUDA Path Tracer

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

  • Sydney Miller
  • Tested on: GTX 222 222MB (CETS Virtual Lab)

README

Original Denoised

Results

Smoothness Based on Iterations

1 Iteration 3 Iterations 7 Iterations 10 Iterations

Looking at these images, it took about 7 iterations to get a smooth image. With the iterations less than 7, there are some artifacts around the specular sphere.

Denoising Different Materials

Specular Diffuse Refractive

The render with diffuse walls and specular sphere looks the best. The surface of the diffuse sphere has some artifcats. The refractive sphere does not look refractive anymore. With different parameters maybe the other materials on the sphere would look better. The paramters used here were: Filter Size: 156, Color Weight: 3.5, Normal Weight: 0.005, and Position Weight: 0.2.

Denoising With Different Filter Sizes

10 x 10 px 25 x 25 px 50 x 50 px 100 x 100 px

You can see that lower filter sizes make for a more noticible grid patter in the image.

Comparing Different Scenes

Large Light Small Light

With the same parameters, the scene with the smaller light has a siginifcant lower quality than the scene with the larger light. Maybe the brighter scenes looks better because there is less darker pixels after each iteration since there is a higher probability of rays reaching the light. The paramters used here were: Filter Size: 156, Color Weight: 3.5, Normal Weight: 0.005, and Position Weight: 0.2.

Performance Analysis

Runtime at Different Resolutions

This graph shows that for each tested resolution, the average iteration runtime in ms is greater for the denoised image than the noisy image. These results match my hypothesis that the runtime would increase with a greater resolution because there are more pixels in images that have a greater resolution. This means that there are more pixels to run the denoise algorithm on at every iteration.

Runtime with Varying Filter Sizes

This chart shows that the average runtime per iteration increases with increasing filter sizes, however the runtime increase is smaller as the filter goes up. The increase in runtime is still significant though. This result also matches my hypothesis because greater filter sizes mean more iterations of the denoise algorithm per pixel. It also makes sense that the runtime increase is less as the filter size increases because every iteration multiples the step size by two, so the step size grows larger between each iteration at larger filter sizess. Thi means there is a lower increase in iterations between larger filter sizes.

Bloopers

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 85.6%
  • C 13.1%
  • Other 1.3%