CS 6620 Fall 2014 - Project 13

Comparison of Final Gathering Results

Both scenes were rendered with 16/32 adaptive sampling, shooting 1M caustic and 2M indirect photons. The scenes using final gathering were rendered with approximately 1M radiance photons and used 40 final gather samples. The photon map lookups were done for a search radius of 0.1 to query 50 photons. For all renders unless otherwise mentioned the photon map is only used for indirect and caustic lighting effects, direct lighting is sampled explicitly as usual.

Cornell Box Gallery with gathering

Pre-process: 16.861s. Rendering: 00:06:31

Cornell Box Gallery without gathering

Pre-process: 8.27s. Rendering: 00:01:03

SmallPT Cornell Box with gathering

Pre-process: 26.885s. Rendering: 00:12:19

SmallPT Cornell Box without gathering

Pre-process: 11.417s. Rendering: 00:01:08

Boatloads of Photons!

The scenes below compare the results of shooting a huge number of photons vs. those achieved with final gathering for significantly fewer (above). Both scenes below shot 15M caustic and 40M indirect photons. The photon map lookups were done for a search radius of 1 to query 300 photons.

Cornell Box Gallery with tons of photons, no gathering

Pre-process: 00:03:07. Rendering: 00:05:11

SmallPT Cornell Box with tons of photons, no gathering

Pre-process: 00:04:50. Rendering: 00:07:10

Assorted Caustic Playgrounds

All of the caustic playground scenes were rendered with 32/64 adaptive sampling, 40 final gather samples and 4M caustic, 2M indirect and approximately 1M radiance photons. The dragon, bunny and Buddha are from the Stanford 3D Scanning Repository, the monkey head is a higher poly version of Blender's Suzanne created by taking the original Suzanne model and running it through a few rounds of subdivision and smoothing in Blender. The teapot is the high res version of the Utah teapot. The photon map lookups were done for a search radius of 0.65 to query 300 photons.

Stanford Dragon

Pre-process: 14.003s. Rendering: 00:15:55

Stanford Buddha

Pre-process: 14.249s. Rendering: 00:11:13

Stanford Bunny

Pre-process: 14.251s. Rendering: 00:11:29

Suzanne

Pre-process: 14.333s. Rendering: 00:10:01

Utah Teapot

Pre-process: 13.631s. Rendering: 00:11:04

A Neat Bug

This bug was the result of using a sequence to compute the ray origins and directions for photons leaving the light producing an interesting pattern in the lighting. The image below was rendered with just the direct photons to easily showcase the issue.

Hardware Used and Other Details

Render times were measured using std::chrono::high_resolution_clock and only include time to render, ie. time to load the scene and write the images to disk is ignored.

CPU: Intel i7-4790k @ 4.0Ghz
RAM: 16GB 1600Mhz DDR3
Compiler: gcc 4.9.2 x86_64 (on Windows, built by MinGW-W64 project)
Compilation Flags: -m64 -O3 -march=native -flto -fno-exceptions -DNDEBUG