Body Sorter

Back to Projects

Java Ray Tracer

Summer 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.
A more artistic scene of the interlocking tori - "The sunset of the Tori".
One single area light on the ceiling. Distributed ray tracing is used to create more realistic soft shadows. This is computationally very intensive, since each area light is treated as many lights. Sample light rays are jittered across the light polgyon.