🎓 3rd year game programming student at Breda University of Applied Sciences.
April 12, 2024
A custom runtime C++ CPU-based raytracing engine which was used to create a simple puzzle demo. Use a laser and your environment to hit the target.
My Contributions: Raytracing Algorithm | Point-, Spot-, Area-, and Directional Lights | Shadows | Recursive (Whitted) Raytracing | Reflections | Dielectrics | Beer's Law | Accumulator | Basic Denoising | Anti-Aliasing | Depth of Field | Reprojection | Ray-Traced Portals
Engine/Tools: ImGui
Team Size: Solo
Duration: 8 weeks (Mar 2024 - Apr 2024)
Custom CPU-based Raytracing Engine was a solo technical research project focused on creating a fully raytraced renderer running on the CPU for runtime calculations. Diving into mathematics for ray tracing, spatial data structures, algorithmic complexity, and things like SIMD to improve the performance of the ray tracer and make it look better in the process.
The system is able to support multiple lights and shadows, as well as reflections and dielectrics using recursive (whitted) raytracing. And also has techniques like accumulation, basic denoising, anti-aliasing, and reprojection to make the end-result smoother. At the end of the project, a small game was made with the engine, using ray-traced portals to make some interesting puzzles.
This project served as a way to strengthen my math and C++ programming skills, as well as my knowledge of data structures. And as a deeper exploration into rendering pipelines and ray tracing techniques used in modern games.
Click here to find the code for this project.