Java Ray TracerSummer 2016
Here are some scenes rendered using my Ray Tracer. Click on an image to see a larger version. Supersampling is used to improve quality of images.
Sphere and infinite plane primitives including diffuse (Lambertian), specular, and perfect (mirror) reflection. Tiled plane using a procedural texture. Transparent sphere using Snell's refraction Laws. Simple supersampling for antialiasing.
A better demonstration of refraction through glass balls. Small white spheres show where point lights are.
Introduction of the torus primitive. Intersection calculation required me to write code to solve quartic equations with real coefficients. This means that intersecting rays with tori is significantly more computationally expensive than with a plane or sphere.