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 8 - "Antialiasing"

Our paper deadline got extended by two days, so I pretty much lost all last week (since I was up until early Friday, and that day wasn't very productive either). We did submit our paper though, and I've been playing catchup ever since.

Hence, I don't have anything much fancy to show. I wanted to implement reconstruction filtering, and I got part of the way through implementing adaptive subdivision, but my brain wasn't having it yesterday, and I have a "graphics lunch" presentation to prepare for on Tuesday besides.

Here are some pictures. I removed the background for clarity. The left sphere is supposed to be glass, but I didn't feel like replacing it with my physically based glass material. The right sphere is another delta+Blinn model that doesn't make sense in real-life/my framework. When I implement multiple layers eventually, I'll be able to do something similar, but it will be correct. Since I didn't provide new images last time, I chose the checkered BRDF instead of the delta.

The variance is calculated correctly (i.e., as an unbiased sample variance, not as a biased variance or standard deviation or something). I found \(0.001\) as a variance threshold to be reasonable for this scene. I'm updating my notation for timing to split the minimum and maximum number of samples iff they are different.

Basic render (16t 8s 00:01:01):

Rendering of required scene: a teapot and two spheres on a plane, with various textures.

Adaptive sampling (16t 8,64s 00:02:00):

Rendering of required scene, with adaptive antialiasing.

Full quality (16t 64s 00:07:47):

Rendering of required scene, rendered at full quality.

Sample count for adaptive sampling (black is \(8\) samples, white is \(64\) samples):

Visualization of shading density in previous adaptive antialiasing render.

You can see little speckles in the adaptive sampling and in the sample visualization. These correspond to places where all \(8\) samples just happened to be the same, but really more samples should have been used.


Proceed to the Previous Project or Next Project.


Hardware

Except as mentioned, renders are done on my laptop, which has: