MCPcopy Create free account
hub / github.com/Zydak/Vulkan-Path-Tracer

github.com/Zydak/Vulkan-Path-Tracer @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
164 symbols 279 edges 13 files 2 documented · 1% updated 39d ago★ 443

Browse by type

Functions 139 Types & classes 25
What it actually does AI analysis from the code graph — generated when you open this
loading…
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::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

  • https://developer.nvidia.com/orca/amazon-lumberyard-bistro - Bistro
  • https://www.intel.com/content/www/us/en/developer/topic-technology/graphics-research/samples.html - Sponza
  • https://sketchfab.com/3d-models/screaming-dragon-head-3d-print-5712b52618f743b193bdd39459099f25 - Screaming Dragon Head
  • https://sketchfab.com/3d-models/dog-statue-49d97ca2fbf34f85b6c88ae8ebc7514f - Dog Statue
  • https://github.com/mmacklin/tinsel - Ajax
  • https://polyhaven.com/hdris - Env Maps
  • https://benedikt-bitterli.me/resources/ - Dragon
  • https://wirewheelsclub.com/models/1965-ford-mustang-fastback/ - Mustang
  • https://renderman.pixar.com/official-swatch - RenderMan teapot
  • https://www.cgbookcase.com/ - Textures for teapots
  • https://casual-effects.com/g3d/data10/ - Breakfast Room
  • https://luxcorerender.org/example-scenes/ - Cannele & Fromage
  • https://disneyanimation.com/resources/clouds/ - Disney Cloud
  • https://www.openvdb.org/download/ - Bunny Cloud
  • https://jangafx.com/software/embergen/download/free-vdb-animations - Smoke Plume
  • https://www.blackboxcolour.com/assets - Cloud pack
  • https://samk9632.gumroad.com/l/Freebie-Cloud - Wispy Cloud by Samuel Krug
  • https://drive.google.com/file/d/1ACBLnJBbmFzP07djNC1N15qnlqTGHmOM/view - Cloud by Samuel Krug
  • https://drive.google.com/drive/folders/17RueIORCc-Na4zjszHbShv9MbV_RUeBo - Cloud Pack by Samuel Krug
  • Other clouds courtesy of Samuel Krug
  • https://developer.nvidia.com/ue4-sun-temple - Sun Temple

Core symbols most depended-on inside this repo

Shape

Method 138
Class 23
Enum 2
Function 1

Languages

C++100%

Modules by API surface

PathTracer/PathTracer.cpp54 symbols
PathTracer/PathTracer.h43 symbols
PathTracer/Editor.cpp20 symbols
PathTracer/FlyCamera.cpp12 symbols
PathTracer/FlyCamera.h11 symbols
PathTracer/PostProcessor.h6 symbols
PathTracer/PostProcessor.cpp6 symbols
PathTracer/Editor.h4 symbols
PathTracer/LookupTableCalculator.h2 symbols
PathTracer/LookupTableCalculator.cpp2 symbols
PathTracer/Application.cpp2 symbols
PathTracer/Main.cpp1 symbols

For agents

$ claude mcp add Vulkan-Path-Tracer \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page