Program 3 - Path Tracer

I developed a bloaty image format so that I could save all my image data and tone map from that. Basically I just store out the XYZ values for each pixel. These files are 4x as large as a PPM and I'm sure there's a better way to do it, but this will allow me to easily use multiple tone mapping algorithms without having to re-render. The RGBE format (unless I was using it wrong) does not represent negative colors and so it didn't work for my purposes.

The two tone mapping algorithms I used are the one presented in class (with a k value of 0.003) and Ward's (in Pete's Tiger book). The one on the left is Erik Reinhard's (i.e. the one given in class) and the other is Ward's. Note that I did include the 683 multiplier when computing X, Y, and Z - the k value would need to be considerably higher otherwise.

I compiled -Ofast on burn.sci.utah.edu and used 14 threads (it is a 14 processor machine). Times given are for that configuration. All calculations were done using floats. All rays took 6 bounces. I used 15 spectral bins.

Note: The down sizing caused the images to look better than they actually are. Please click on them to see the true results.


100 rays/pixel; 3:58.41s
979 sequences of 25 samples used

1024 rays/pixel; 32:58.74
97 sequences of 256 samples used

10,000 rays/pixel; 5:19:24
47 sequences of 2500 samples used

65,536 rays/pixel; 34:50:23
31 sequences of 126^2 samples used

I'd like to do the following. When I do I'll post some images:


-Amy Williams