Skip to content

Simple Vulkan GPU accelerated path tracer combined with PBR raster renderer governed by nice editor

License

Notifications You must be signed in to change notification settings

wpsimon09/Vulkan-RTX

Repository files navigation

Vulkan RTX

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.

Used technology

Build

To run this project, for now it is crucial that your GPU supports VK_KHR_ray_tracing_pipeline !

1. Clone this repo

git clone https://github.com/wpsimon09/Vulkan-RTX.git --recursive  ## recursive has to be there 

2. Download GLFW

  • 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

3. Download GLM

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

4. Build the project

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

Compiling shaders

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

Features:

  • 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

Little showcase

Screencast.From.2025-07-08.15-45-02.mp4
image

image

image image

![image]Screenshot From 2025-07-25 20-49-26

About

Simple Vulkan GPU accelerated path tracer combined with PBR raster renderer governed by nice editor

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published