CS6620 - Ray Tracing for Graphics

Project 11 - Monte Carlo GI

Daqi Lin

Config

Processor: Intel(R) Core i7-6700HQ CPU @ 2.60GHz, 4 physical cores
RAM: 8 GB DDR4 2133Mhz (2xDIMMs)
OS: Windows 10 Pro x64

Implemented functions

diffuse-diffuse reflection

importance sampling for diffuse reflection

Irradiance Caching

Selected Test results(s):
the "cornell box" scene:
Stratified pattern for pixel sampling with Gaussian filter; Random pattern for hemisphere sampling; adaptive sampling with maximum 64 samples per pixel
2 bounces for both irradiance caching and rendering
irradiance caching threshold: color-0.05, normal-0.9, Z-5.0
irradiance caching - 22.16(preparing irradiance cache) + 2.75(rendering)
brute force (adaptive sampling) - 78.83
brute force (non-adaptive) - 132.35
the "skylight teapot" scene:
Stratified pattern for pixel sampling with Gaussian filter; Random pattern for hemisphere sampling; adaptive sampling with maximum 64 samples per pixel
1 bounce for both irradiance caching and rendering
irradiance caching threshold: color-0.1, normal-0.99, Z-10.0
irradiance caching - 6.08(preparing irradiance cache) + 0.83(rendering)
brute force (non-adaptive) - 22.57

Result (irradiance caching)

Result (4 bounces, brighter)

Result (brute force, 4 bounces, brighter)

Result (brute force with adaptive sampling) (notice from the result that it is not very suitable to do adapative sampling together with Lambertian sampling)

Result (brute force with non-adaptive sampling)

Result (skylight teapot, irradiance caching)

Result (brute force with non-adaptive sampling)