Jacob Juszak

CSC 473 Final Project

For Broë Wood

Spring 2013

Project Description

The goal of this project was to create a raytracer that could handle many different types of lighting and materials including reflection, refraction, and specular highlights. To increase the speed and efficiency of the project, I implemented a bounding volume hierarchy, and it had hugely positive effects. We also had to implement global illumination, so I used the Monte Carlo method. Even with the BVH, without using CUDA, it is incredibly slow but it does have a really nice effect. For my final project, I decided to do a blur effect that is stronger the further it gets from the center of the view. I like to call this... Perspective Blur. In effect, it is higher anti-aliasing sampling the further the pixel is from the center. Below are some example renders of this raytracer.

Examples

Here are a few examples of the Monte Carlo GI, with very generous color sharing. The runtimes for each are about 25 minutes. The first one has spheres on the back wall.




This one has no spheres on the back wall.




This one is the same image with no white spheres sharing light with the scene




Here is a large file called "balls2.pov" renedered with no GI. Render time: 29 seconds.






An example of some refraction here. Render time: 30 seconds




Here are a couple pictures demonstrating "Perspective Blur"




Another one




A simple scene with mildly reflective spheres.




The same two spheres in the same room but with reflective planes all around them




Here's a cool bug I had when I ran "balls2.pov" a while back




Here's an interesting bug I had when running anti-aliasing the first time