Sweet Little Lines is my first ray tracer, it was build on the CPU with C++ over the span of eight weeks. It was my first interaction with Light Transport Theory.

This project focused on complexity over accuracy. It was made to push the limits of the CPU using acceleration structures and other optimization methods.

The entire project is open-source and available on GitHub. It can be found right here: https://github.com/stefanpgd/SLL-Framework

What did I do?

  • Build a ray tracing rendering pipeline that supports both Whitted-Style and Diffuse Reflection
  • Made a multi-threaded worker system that runs the renderer
  • Optimized the renderer, resulting in 30-300 million rays per second on the CPU, giving 30+ FPS with 80.000+ spheres in a scene
  • Loaded in textures as skydome to use as a light source
  • Created fractal scenes: Sphereflake, Mengersponge and Sierpinski Carpet
  • Bounding Volume Hierarchy as acceleration structure
  • Included post processing techniques such as ACES tone mapping