Bachelor Thesis - Voxel Path Tracing
Bachelor Thesis - Voxel Path Tracing

Bachelor Thesis - Voxel Path Tracing

Created on:
Team Size: 1
Time Frame: 7 Months
Tool Used: Jai / Vulkan

Final project of my studies at SAE Institute Geneva. Implemented Voxel Path Tracing in a Vulkan compute shader using the Jai programming language. The thesis document was made in Typst.

It features :

  • Per-voxel and per-pixel lighting
  • Diffuse, reflective and emissive materials
  • A palette compressed world
  • An environement map as a light source

What I Learned

  • The Vulkan API: As the project requires the use of compute shaders, and because I wanted to learn the API, Vulkan was chosen.
  • Jai: At first the project started with Rust, but then I got access to the beta of Jai, so I decided to use it. It is aimed to be a replacement of C++ geared towards games and the “joy of programming”.
  • Various path tracing techniques: This project deepened my understanding of the subject, with things such as cosine-weighted sampling and russian roulette.
  • Statistics: Doing real-time path tracing requires to apply some statistics concepts, and I also used student’s T-test to prove than an optimisation made something faster.
GitLab Page of Media Project GitLab Page of Thesis

The Thesis

Unable to display PDF file. Download instead.

Open in new tab

Screenshots

Screenshot of the project
Screenshot of the project
Screenshot of the project
Screenshot of the project
Screenshot of the project
Screenshot of the project