[MT97]
Cornell University Program of Computer Graphics 

Fast, minimum storage raytriangle intersection.Tomas Möller and Ben Trumbore.Journal of Graphics Tools, 2(1):2128, 1997. We present a clean algorithm for determining whether a ray intersects a triangle. The algorithm translates the origin of the ray and then changes the base to yield a vector (t u v)T, where t is the distance to the plane in which the triangle lies and (u,v) represents the coordinates inside the triangle. One advantage of this method is that the plane equation need not be computed on the fly nor be stored, which can amount to significant memory savings for triangle meshes. As we found our method to be comparable in speed to previous methods, we believe it is the fastest raytriangle intersection routine for triangles that do not have precomputed plane equations.
The ACM site of the Journal of Graphics Tools contains more information (source code, errata, images). This paper is available as a compressed Postscript file MT97.ps.gz (324K).
This paper is available as a PDF file MT97.pdf (1.4M).
 
