CS 6620.001 "Ray Tracing for Graphics" Fall 2014
Welcome to my ray tracing site for the course CS 6620.001, being taught at the University of Utah in Fall 2014 by Cem Yuksel.
Welcome fellow students! I have lots of experience tracing rays, and with graphics in general, and so I'll be pleased to help by giving constructive tips throughout (and I'll also try very hard to get the correct image, or say why particular images are correct as opposed to others). If you shoot me an email with a link to your project, I'm pretty good at guessing what the issues in raytracers are from looking at wrong images.
Hardware specifications, see bottom of page.
Timing information will look like "(#t #s ##:##:##)" and corresponds to the number of threads used, the number of samples (per pixel, per light, possibly explained in context), and the timing information rounded to the nearest second.
Project 6.75 - More Preliminary Photon Mapping
I decided to sort out all the problems in photonmapping, and I learned more things. Here are some of the bugs I found and killed:
Lucy, (16t ?s 00:12:35):

This is an image from before I did too much work. There are a number of problems.
Here's a visualization of an issue related to sampling the KD-tree. The photon adding was slightly messed up. Here's the raw photon map and then different maximum radii. Timing unknown, but pretty fast:




I discovered that the sampling of the photons wasn't what I wanted. Not necessarily incorrect, mind you (although I didn't work out whether it was or not), but just somewhat strange. I altered it to be more logical.
One nagging issue for the past renders was that the photonmap looks "too dark". I thought about it, and realized that the easiest way to (dis)prove this is to render the caustic from a transparent object with the refractive index of air using photonmapping. So, I implemented an AABB primitive (it was mostly done, but rendering them wasn't quite working right), set it to be completely transparent, and 'lo, the caustics were indeed too dark! I quickly traced it down to a missing factor of \\(2\\) when calculating the flux (my emissive materials emit on both sides).
I played around with it a bit, but the first one I actually let sit for a good long while produced this simply beautiful render in about \(40\) minutes with 50 samples:

Here's a much larger version (1920x1080) rendered using the same data (16t 50s 02:25:10). Be sure to view the original!

Proceed to the Previous Project or Next Project.
Hardware
Except as mentioned, renders are done on my laptop, which has:
- Intel i7-990X (12M Cache, [3.4{6|7},3.73 GHz], 6 cores, 12 threads)
- 12 GB RAM (DDR3 1333MHz Triple Channel)
- NVIDIA GeForce GTX 580M
- 750GB HDD (7200RPM, Serial-ATA II 300, 16MB Cache)
- Windows 7 x86-64 Professional (although all code compiles/runs on Linux)