Introduction to raytracing

This project was my first introduction to ray tracing. It involved writing our own linear algebra library with matrix and vector functionality. The project is entirely written in C++. It was a solo project.

Acceleration Structures

During the project I learned about building efficient bounding volume hierarchies to traverse the scene faster. In combination with multi-threading, somewhat real-time framerate was possible on the CPU.

Rendering Effects

During the project I added refraction with fresnel taken into account. I also worked on soft shadows with area lights and ambient occlusion.

Shapes

Intersections are calculated by doing AABB and transforming the rays into local space. The primitives themselves are spheres, cubes, triangles and planes. I keep a hierarchy of materials to determine how to refract when leaving/entering multiple materials.

Path Tracing

This project was my introduction to ray tracing, and eventually resulted in me joining the path tracing project in year 3. The project page for the path tracing project can be found here.

Location

Breda, Noord-Brabant
The Netherlands