In this school assignment I created a Realtime Raytraced Renderer that runs on the CPU. The renderer supports rendering spheres, planes and TriangleMeshes. And supports materials using BDRF shaders.
This school project was my first introduction with graphics programming other than playing around with OpenGL and Vulkan in my free time. The goal of this project was to create a ray traced renderer running on the CPU. In my free time I wanted to explore multi threading in C++ so I enhanced my software ray tracer to divide the rendering of the frame over multiple threads to significantly increase the render time of each frame.