Simple Vulkan physically based render that can render meshes in classic rasterisation pipeline, but also contains Path tracer that uses RayTracingPipeline
to utilise RT cores for a real time path tracing.
- Rendering API - Vulkan (
vulkan.hpp
) - Shading Language - Slang
- Language - C++
- Math - glm
- User interface - Dear ImGui
- .glTF parsing - fastgltf
- .ini parsing - mINI
- SPIR-V Reflection - SPIRV-Reflect
- Gizmo - ImGuizmo
To run this project, for now it is crucial that your GPU supports VK_KHR_ray_tracing_pipeline
!
git clone https://github.com/wpsimon09/Vulkan-RTX.git --recursive ## recursive has to be there
- this library is used for window creation and provides context for Vulkan
On windows
On Linux
# On Ubuntu/Debian:
sudo apt update && sudo apt install -y libglfw3 libglfw3-dev
# On Arch Linux:
sudo pacman -S glfw --noconfirm
# On Fedora (Red Hat-based distros):
sudo dnf install -y glfw glfw-devel
# On openSUSE:
sudo zypper install glfw-devel
On windows
On Linux
# On Ubuntu/Debian:
sudo apt update && sudo apt install -y libglm-dev
# On Arch Linux:
sudo pacman -S glm --noconfirm
# On Fedora (Red Hat-based distros):
sudo dnf install -y glm-devel
# On openSUSE:
sudo zypper install glm-devel
sh build.sh ## default is debug
## in debug mode (explicitly)
sh build.sh debug
## in release mode (app wont work in release mode now)
sh build.sh release
Note that you must have python installed verify this by running
python --help
Shaders are compiled using the slangc
compiler, which can be downloaded from here.
Shaders are already precompiled, so you don't need to do this. Only recompile them when you change the shaders.
To get started, navigate to the Shaders
directory:
cd Shaders
Then, open compileSlang.py
and change the variable SLANGC_PATH
to point to the slangc
executable.
Example:
SLANGC_PATH = "/home/user/SDKs/slang/bin/slangc"
Once done, use Python to compile the shaders from the Shaders
directory:
## assuming you are in the Shaders directory
python compileSlang.py --verbose
- Model Loading
- Scene Exporting (To glTF)
- Forward Renderer
- Area Light With LTC
- Ray Traced Pixel Perfect Shadows
- Real time path tracing (with RT cores)
- Image Based Lighting
- ACES Tone Mapping
- Scene Editor With Gizmos
- Real Time Material Customisation
- Multy threaded lazy texture loading
- Bindless descritptors for material textures
- Large scale homogeneous participating media rendering
Screencast.From.2025-07-08.15-45-02.mp4


