Ray Tracer

I built a C++ ray tracer from scratch and progressively improved it over the course of a semester at DigiPen. It supports numerous shapes, reflection and refraction for various surface materials, and additional rendering modes. Shadows, soft-shadows, and anti-aliasing features are available too. The UI and renderer run in separate threads, so any part of the rendering process can be toggled mid-render.


  • Rendering and UI in separate threads
  • Flat shading
  • Depth rendering
  • Normal vector rendering
  • Reflection
  • Refraction
  • Soft shadows
  • Anti-aliasing
  • Custom orthorhombic pyramid shape