Skip to content

Zydak/Vulkan-Path-Tracer

Repository files navigation

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

Releases

No releases published

Packages

 
 
 

Contributors