Hardware Assisted Ray Tracing

by Leo Selavo


The goal of this project was to design a custom reconfigurable architectire for real-time ray tracing applications. First, a software solution was created. Then it was ported to an abstract reconfigurable hardware architecture. The point of this exercise was to explore requirements for reconfigurable hardware.

The implemented raytracing software renders models as defined by primitive and complex objects. The primitive objects are spheres, boxes, planes, and point light sources. The complex objects are created from other primitive and complex objects by using unification, intersection and subtraction operators. Every object has a set of properties that define the surface color, transparency, reflection and refraction.

Below are a few pictures rendered by the Leo's ray tracing program:
The original plots are 400x400 pixels at 24 bit color depth.

Three balls and two light sources. Monochromatic light processing.
A glass ball with red, green and blue light sources in various positions. There is a smaller ball behind the big one a bit to the right, which is responsible for the intricate play of color.
3x3x3 grid of balls with a slightly reflective wall behind them. Two light sources, one right in front of the wall, the other behind the viewpoint, making the shadows.
The same as above with glass balls instead of the solid balls. The intent of this model was to test the recurive ray tracing with refractive and reflective materials

Te Leo's Ray Tracer can be downloaded here (48KB) for noncomercial purposes.