Zydak/Vulkan-Path-Tracer

Vulkan Path Tracer. Physically based path tracer made in Vulkan with Ray Tracing Pipeline.

C++

454

167 commits

updated Aug 17, 2026

See the code

README

Vulkan-Path-Tracer

Sponza

Physically based offline path tracer made in Vulkan with Ray Tracing Pipeline extension. It uses energy conserving BSDF with Diffuse, Dielectric, Metallic and Glass lobes + volumetric scattering. Renders can also be saved as png images. There's also a small writeup on how exactly the participating media is being rendererd if you're interested.

System Requirements

  • Windows 10 with MSVC or Linux with GCC (Only debian 12 with GCC 12.2 is tested)
  • Either NVIDIA RTX 2000+ series or AMD RX 6000+ series to support all of the extensions below. You may check whether they're present on your device here, maybe it's possible to run on some older hardware.
    • VK_KHR_ray_query
    • VK_KHR_acceleration_structure
    • VK_KHR_ray_tracing_pipeline
    • VK_KHR_swapchain
    • VK_KHR_deferred_host_operations

Building

Prerequisites

Windows

git clone --recursive https://github.com/Zydak/Vulkan-Path-Tracer
cd Vulkan-Path-Tracer
mkdir build
cd build
cmake .. -DCMAKE_POLICY_VERSION_MINIMUM=3.5

Then open generated Visual Studio solution and build.

[!NOTE] On some versions of msvc the OpenVDB library won't build. You might get an error on line 1935 inside GridBuilder.h. You can comment that line out since it doesn't do anything significant.

// static_assert(util::is_same<ValueType, typename std::result_of<Func(const Coord&)>::type>::value, "GridBuilder: mismatched ValueType");

Linux

git clone --recursive https://github.com/Zydak/Vulkan-Path-Tracer
cd Vulkan-Path-Tracer
mkdir build
cd build
cmake .. -DCMAKE_POLICY_VERSION_MINIMUM=3.5
make

Executable will be in build/Debug/VulkanPathTracer.

Features Overview

Gallery

References

Papers Implemented

Models

bsdf
energy-conservation
energy-preservation
gpu
gpu-computing
linux
path-tracer
pathtracer
path-tracing
pathtracing
postprocessing
ray-tracer
raytracer
ray-tracing
raytracing
slang
vulkan
vulkan-renderer
windows

Zydak/Vulkan-Path-Tracer

Vulkan Path Tracer. Physically based path tracer made in Vulkan with Ray Tracing Pipeline.

C++

454

167 commits

updated Aug 17, 2026

See the code

README

Vulkan-Path-Tracer

Sponza

Physically based offline path tracer made in Vulkan with Ray Tracing Pipeline extension. It uses energy conserving BSDF with Diffuse, Dielectric, Metallic and Glass lobes + volumetric scattering. Renders can also be saved as png images. There's also a small writeup on how exactly the participating media is being rendererd if you're interested.

System Requirements

  • Windows 10 with MSVC or Linux with GCC (Only debian 12 with GCC 12.2 is tested)
  • Either NVIDIA RTX 2000+ series or AMD RX 6000+ series to support all of the extensions below. You may check whether they're present on your device here, maybe it's possible to run on some older hardware.
    • VK_KHR_ray_query
    • VK_KHR_acceleration_structure
    • VK_KHR_ray_tracing_pipeline
    • VK_KHR_swapchain
    • VK_KHR_deferred_host_operations

Building

Prerequisites

Windows

git clone --recursive https://github.com/Zydak/Vulkan-Path-Tracer
cd Vulkan-Path-Tracer
mkdir build
cd build
cmake .. -DCMAKE_POLICY_VERSION_MINIMUM=3.5

Then open generated Visual Studio solution and build.

[!NOTE] On some versions of msvc the OpenVDB library won't build. You might get an error on line 1935 inside GridBuilder.h. You can comment that line out since it doesn't do anything significant.

// static_assert(util::is_same<ValueType, typename std::result_of<Func(const Coord&)>::type>::value, "GridBuilder: mismatched ValueType");

Linux

git clone --recursive https://github.com/Zydak/Vulkan-Path-Tracer
cd Vulkan-Path-Tracer
mkdir build
cd build
cmake .. -DCMAKE_POLICY_VERSION_MINIMUM=3.5
make

Executable will be in build/Debug/VulkanPathTracer.

Features Overview

Gallery

References

Papers Implemented

Models

bsdf
energy-conservation
energy-preservation
gpu
gpu-computing
linux
path-tracer
pathtracer
path-tracing
pathtracing
postprocessing
ray-tracer
raytracer
ray-tracing
raytracing
slang
vulkan
vulkan-renderer
windows

Significant stargazers

Nico Weber

308 followers · starred Oct 2025

Ollie Charles

784 followers · starred Sep 2025

Marc Espin

516 followers · starred Oct 2025

Trent Nelson

1,411 followers · starred Dec 2024