Sean Bouchard
CS 155
21 October 2004
I have implemented all of the required features in my ray tracer: Casting rays into the scene, Intersections with spheres, Intersections with triangles, Transformations, Emissive color, Ambient color, Diffuse lighting, Specular lighting, Basic shadows, Reflection, Transmission, and Snell's Law. In addition, I have implemented: Texture mapping, Box primitive, and Bounding boxes. The normal rt interface can be used to adjust settings for level of recursion, recursive contribution, and texture mapping. Bounding boxes cannot be turned off.
All the features that have been implemented have also been tested. Several rayfiles were created; for the most part, these test files were simple, designed to test one or two specific features. Some features were difficult to test, because they were implemented according to a different model than the full implementation of the program. However, all features behaved as expected on the test input. There are no known bugs. Examples of test renders can be found here.
My raytracer is based on the following lighting model:
The texture mapping model for triangles does not differ from the full implementation. The texture mapping model for spheres is based on the texture mapping of spheres in OpenGL. The texture mapping model for boxes is as follows: The texture map is sliced evenly into 12 pieces, four across the width and three down the height of the image. Each face of the box is textured with one of these 12 pieces. This allows boxes to use specially created textures that allow a different image on each face and permit consistency between faces.
TEXTURE IMAGE![]() |
MAPPING TO BOX![]() |
| The red letters in the above texture image correspond to the faces on the box which they will be mapped to: top, left, front, right, back, and under. The blue dots mark areas of the texture image which will be discarded by the mapping process. |
I have not submitted a .ray and .bmp for the art contest, or an .mpeg movie.