

This should be more complete, but I really just wanted to point people at 
the papers that I used in creating this raytracer.  Much thanks to all the
excellent researchers and their papers, as well as the personal communications
that I have had.

Ray/Object Intersections:

The sphere code is almost identical to the code given in Heckbert's EXCELLENT
article "Writing a Ray Tracer" in the Siggraph Course Notes.  Paul Heckbert 
is to be commended on his excellent article.  The general structure of my 
raytracer is closely modelled after his.

Polygon intersections are modelled after the method described by Eric Haines 
in his excellent paper, "Essential Algorithms for Ray Tracing", also in 
the Siggraph course notes.  Between these two papers, much of the drudgery of 
developing intersection code is removed.

The code for cone/cylinder intersections is fairly crude, but essentially my
own derivation.  

Ray/Bounding Volume Intersections:

Rather than use octrees, I decided to use Kay/Kajiya bounding volumes, 
as described in their 86 Siggraph paper, "Ray Tracing Complex Scenes".  Their
method has proven to be fast and simple to implement.   The bounding volumes
for the cones and cylinders could be improved to provide a "tighter" bounding 
volume.

I "discovered" simultaneously with Eric Haines through our conversations that
we could cheapen the cost of certain rays by establishing a max cutoff for 
distance during the Intersect() routine.  

The shadow caching optimization was introduced to me through conversations
with Eric Haines, although probably not original, and was quite simple to 
implement in my raytracer.
