Category Archives: rendering

CS148

This summer I taught CS 148, the introduction to computer graphics course at Stanford. This was the first time I taught the class and, despite being incredibly time consuming, I really enjoyed it. I created all my own slides and new projects for the course.

The final project was to combine a path traced object with a real photograph—creating a “special effects” style image. I thought this was quite successful. The winning image was created by Zhan Fam Quek:

This was created using a path tracer written by the students, using a HDR environment map and HDR background image captured by the students.

More images from the final project can be found in the course gallery. Slides and assignments can be found on the course webpage.

SIGGRAPH course on Importance Sampling

I just noticed that my Masters work on Resampled Importance Sampling was included in a SIGGRAPH course last year.

In standard importance sampling you have to draw samples from a distribution which can be sampled and which has a known scaling factor (so that the area under the pdf = 1). This is very limiting in some MC situations, such as sampling the incoming light direction in a path tracer. The function we want to sample from is the product of the BRDF and the incident light field. However, we can typically only sample from one component or the other, not both. In RIS, we create a sampled, discrete approximation to the desired distribution and then draw our samples from that. Since the approximation is discrete we can easily normalize it and draw samples from it. In my thesis, I showed that when weighted correctly, this results in an unbiased estimate.

RIS will beat IS when it is substantially cheaper to create the approximate distribution than it is to evaluate the true function. In the path tracing context, I did this by evaluating the BRDF and environment map lighting for the approximate distribution, but not the visibility (the ray tracing step). With this approach, the RIS image (on the right) has substantially lower variance than the IS image (left).

IS vs. RIS

As long as the visibility test accounts for a substantial fraction of the execution time, RIS will beat IS. However, this wasn’t particularly true when I wrote the thesis and is probably less true now. In my thesis, I concluded that, for current rendering tasks, RIS wasn’t a big win since the difference in evaluation cost between the approximate samples and the actual samples wasn’t very high. However, I think it could be quite useful in some MC applications where a relatively good and cheap discrete approximation can be found.