Ray Tracing Projects

Assignments 10 & 11: Soft Shadows, Fuzzy Reflection

Return to Ray Tracing Assignment Overview
 

While working on this assignment, I realized that I had a bit of a shadow problem.  It was causing shadows where there was no object between it and the light--and is the reason I thought I needed hundreds of triangles for my Cornell box.  After resolving that issue, I realized that making my box out of only 12 triangles was sufficient (just like Brian said it was).

Here, we add an imitation of an area light source for more realistic shadows, and also the ability to perturb object normals to give softer reflections.  I now display the light in the scene (unlike the previous assignments where the light was just magically coming from somewhere).  The first image is the "before", if you will, point light sources (note the hard shadows) and perfect reflection.  In the images that follow, an area light source is used and some perfect reflectors are made, well, not so perfect.

Also, I took the time to render a pane of glass instead of just spheres...so I could be like everyone else in the class (see last image).
 


Point Light (Hard Shadows), Perfect Reflection (see floor)
400x400 JPEG converted from 400x400 PPM output
64 samples per pixel
17.4 minutes
 


Small Area Light and Non-Perfect Reflection
400x400 JPEG converted from 400x400 PPM output
256 samples per pixel
22.5 minutes
 

In the image above, note how the area light gives a soft shadow.  Contrast this with the image below, which has a bigger light and therefore casts even softer shadow.  Both images also have a floor that is not a perfect reflector.  The floor is 35% reflective and has a 0.2 radius normal perturbation to give the fuzzy effect (easiest to see where the red wall is reflected).  The spheres are still perfect reflectors.
 


Large Area Light and Non-Perfect Reflection
400x400 JPEG converted from 400x400 PPM output
256 samples per pixel
24.0 minutes
 


Another View with the Small Area Light
400x400 JPEG converted from 400x400 PPM output
256 samples per pixel
47.0 minutes
 

Above: Another view of the same scene but with a 0.05 radius normal perturbation on the floor.

Below: This is one of my favorite images to date.  Everyone else in the class seemed like they did some sort of pane of glass to show total internal reflection, where before I just did spheres.  Here the Cornell box contains a fuzzy reflected metal sphere (80% reflective, 0.035 radius normal perturbation), a lambertian sphere (which is reflected in the glass), a pane of green tinted glass, and a non-tinted glass sphere.  The floor is set at 50% gray, is 20% reflective, and has a 0.05 radius normal perturbation for fuzzy reflection.
 


Glass, Soft Shadows, and Fuzzy Reflection
400x400 JPEG converted from 400x400 PPM output
256 samples per pixel
1 hour, 20.3 minutes
 

Executable compiled with Microsoft Visual Studio .NET Professional and run on a Dell desktop with an Intel Pentium 4 1.8 GHz processor with 1.0GB of RDRAM running Microsoft Windows XP.
 

email at jasonwaltman dot com

(c) 2000-2007 jason waltman