A high performance, physically based, progressive Path Tracer built from scratch using C++20 and Vulkan
Amazon Lumberyard Bistro (exterior)
Amazon Lumberyard Bistro (interior)
The table below demonstrates the visual and mathematical impact of each sampling technique at 64 samples per pixel (spp) compared to the fully converged ground truth reference.
- Vulkan Ray Tracing Pipeline
- Unidirectional Path Tracing
- Frame Accumulation
- Cook-Torrance BRDF
- Physically Based Materials
- Next Event Estimation
- Multiple Importance Sampling
- glTF 2.0 Scene Loading
- Mesh Instancing
- Procedural Atmosphere
- Shader Hot Reload
- Khronos PBR Neutral Tone mapping
- Anti-Aliasing
- OS: Windows 10/11 (x64) / Linux (x64)
- GPU: NVIDIA Turing (RTX 20 series) / AMD RDNA 2 (RX 6000 series)
- Vulkan SDK: 1.4
- Compiler: C++20 (GCC, Clang or MinGW)
- CMake: 3.20
- Shader Compiler: The Slang compiler
slangcmust be on yourPATHif you want to use theReload Shadersfeature
git clone --recursive https://github.com/gavrix32/hwrt.git
cd hwrt
# If you cloned without submodules
git submodule update --init --recursive# Compile shaders (only needed after editing them)
chmod +x src/shaders/compile.sh
./src/shaders/compile.sh
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc)
./hwrt -m ../assets/models/cornell_box.glb:: Compile shaders (only needed after editing them)
src\shaders\compile.bat
mkdir build && cd build
cmake ..
cmake --build . --config Release
hwrt.exe -m ..\assets\models\cornell_box.glbCopyright © 2026 Dmitry Gavrilov
Distributed under the MIT License.






