Mark Schmelzenbach
Homework #8
CS684

This assignment is very similar to the last assignment, except that now the inderaction between diffuse surfaces is taken into account. A method similar to calculating reflections is used to determine the color of a diffuse surface.

When a ray strikes a surface, it is 'bounced' in a direction determined by a cosine weighted hemisphere. This models the scattering of light caused by perfectly diffuse surfaces.

Look at the left side of the tall box, and you can see the color red 'bleeding' onto the white surface.

Notice that images generated in this manner are much noiser than the ones from homework #7. This forces the number of samples required per pixel to increase enormously in order to smooth the image



The image sampled at 1024 rays per pixel
This image (I believe) has an incorrect bounce function. However, it does generate an interesting pattern on the ceiling, so I include it for amusement value. Click here for a larger picture.

The image sampled at 1024 rays per pixel
This image has some problems that did not become apparent until I rendered it at this size with this many samples... for instance, the surface normals of the ceiling are backwards! This means that the ceiling is completely black. When a corrected version is ready, it can be seen here.