Raytracing is a method of making photorealistic pictures. The basic concept involves following a ray from a point of view through a pixel and into a scene file. This ray will either strike an object or travel to infinity. If the ray does not strike an object then the pixel that it intersects will be set to a default color. On the other hand, if the ray strikes an object, then the nature of that object must be determined. In this particular ray tracing program an object can be a reflective sphere or a non-reflective triangle. In the case that the nearest intersection of the ray is with a non-reflective triangle, then the pixel's color is determined from that triangle's characteristics. If the nearest intersected object is a reflective sphere, then the intersection point and the new reflected ray are utilized in a recursive attempt to determine the pixel's color.
A program operating sequentially is one that uses a single processor to execute code chronologically. A program running in parallel can execute code simultaneously. The goal of parallel computing is to decrease the time it takes to execute programs. Some programs in particular seem to be tailor made for parallel programming, for instance, programs that perform similar computations over and over again. In a perfect world five processors would take one fifth the time that a single processor would take in completing the same program. The world is not perfect and neither is parallel computing. Time for communication between processes must be considered in the speed up factor that parallel computing incurs. However this communication is hopefully kept to a minimum in order to avoid a significant amount of overhead.
Advisor: Susan Reiser and Wayne Lang