Tim's Project 5: Ray Tracing

Because each applet takes some time to run, I've placed instances of the applets with different models on different pages.

In addition to the refraction and completing the triangle mesh, I added cylinder and disc primitives.

 

Algorithms Used

Ray - Triangle Intersection (Triangle.java)
based on Tomas Möller and Ben Trumbore. Fast, minimum storage ray-triangle intersection. Journal of graphics tools, 2(1):21-28, 1997, see here
also explained well here

Ray - Cylinder Intersection (Cylinder.java)
based on the infinte cylinder intersection provided in Joseph M. Cychosz and Warren N. Waggenspack, Jr., Intersecting a Ray with a Cylinder, Graphics Gems IV, pp. 356-365, with sample C code available here

Ray - Plane Intersection (Disc.java)
based on May 2001 Algorithm