Simen Wolters

Generalist Game Programmer

simenwol@gmail.com

🎓 3rd year game programming student at Breda University of Applied Sciences.

← Back

Preview image for Custom CPU-based Raytracing Engine

Custom CPU-based Raytracing Engine

April 12, 2024

C++ CUSTOM ENGINE SOLO PROJECT UNIVERSITY MAR. - APR. 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)

Platforms:

Windows

☀️ Custom Runtime CPU-Based Voxel Raytracing Engine

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.


My Contributions