A realtime Vulkan voxel path tracer.
This is a work in progress!
This system is a Vulkan/SPIRV implementation of the BrickMap by stijnherfst which is in turn based on this paper by Wingerden. After taking apart several voxel systems as learning exercises, I found that BrickMap was a great starting point for building my own systems and wanted to provide a version of that code implemented in Vulkan and GLSL.
The Vulkan framework used here is pulled out of my personal tinkering engine project and is based on various tutorials and learning. https://vkguide.dev/ has been particularly helpful in learning Vulkan. This project uses vulkan.hpp.
- Press ESC to toggle between mouselook and UI interaction.
- You can build rebel_engine with DEBUG_MARKER_ENABLE to assign and see buffer names in NSight.
- Linux doesn't build yet, but coming soon.
- Tracy can be enabled by building with TRACY_ENABLE.
You'll need to install the Vulkan SDK on your system.
These dependencies will be downloaded during the first run of cmake:
Fetching content with cmake can take a while, but I find this approach to managing dependencies is easier overall. Once you've grabbed everything, you can uncomment set(FETCHCONTENT_FULLY_DISCONNECTED TRUE) in cmake_modules/dependencies.cmake to suppress dependency checks.