Software Raytracer

Project Type Educational Project
Tech C++
Date Autumn 2011 Duration 5 weeks part-time (research, implementation & optimization)

This raytracer was an educational assignment. The aim of this assignment was to implement a software raytracer with the following features:

  • Well-designed architecture
  • Support for point- and area (volumetric) lights
  • Support for the following mathematical shapes:
    • Spheres
    • Boxes
    • Planes
  • Hard & soft shadows
  • Lighting model (Phong in this case)
  • Reflections
  • Refraction
  • Material definitions supporting arbitrary combinations and values of reflectivity, refractivity, reflective diffuseness, refractive diffuseness
  • Visualization of traced rays in a top-down view
Additionally, this project includes:
  • Depth of Field
  • Anti-Aliasing
  • Dynamic multi-threading