In this project we programmed a simple raytracer that implements hard and soft shadows, reflection, refraction, phong shading, light bloom, motion blur, and anti-aliasing. Rendering is accelerated using bounding volume hierarchies.

Some standard meshes rendered using the raytracer are shown below.

Rendering the Cornell box using soft shadows and reflections Rendering the Cornell box using soft shadows and reflections

Phong specular highlights Phong specular highlights

Refraction through a translucent sphere Refraction through a translucent sphere

Bloom filter for high light intensity on the Stanford dragon Bloom filter for high light intensity on the Stanford dragon

Motion blur along a vector towards the dragon Motion blur along a vector towards the dragon

Visualizing the BVH nodes at level 6 Visualizing the BVH nodes at level 6