Vulkan path tracing with Rust
Last updated Jun 23, 2026
95
Stars
4
Forks
8
Issues
0
Stars/day
Attention Score
13
Topics
Language breakdown
Rust 82.7%
GLSL 16.5%
Nix 0.7%
Python 0.2%
โธ Files
click to expand
README
A PBR glTF 2.0 renderer based on Vulkan ray-tracing, written in Rust.
Naming
This project and I are not affiliated with the Rust Foundation. I name itrus-tracer only because I love Rust and ray tracing.
Credits
This project is based on Adrien Ben's vulkan-examples-rs.
Sample accumulation implementation, heatmap and Lucy obj model are from project Ray Tracing In Vulkan.
I stole the PBR shaders from the referencePT project and made some changes.
Demos
rustracer-0.2.0-Demo videos.
Features
- [x] Loading arbitrary glTF 2.0 models
- [x] Optimizations
- [ ] Realtime ray tracing
- [x] Extras
Building
Prerequisites
- Linux and a graphics card that supports KHR ray tracing
guistate.rs) and load models in the search paths(see resource manager).
- You can open arbitrary glTF file by cargo run -- -f <filename> or drag-and-drop
- Windows not supported. Need some minor cfg tweaks to work on Windows. Open to pull requests.
Build command
Thanks to the superior Rust package managerCargo, building and running can be as brainless as a one-liner: cargo run.
However, some external C libraries like Vulkan SDK may be missing on your system(those libraries are necessary for basically any Vulkan or non-trivial graphics programming project, regardless of whatever programming language used).
- To install those libraries automatically,
cd into the project directory and direnv allow.
- To install external libraries manually
cargo run to find out what is missing and install it
- Look into the list in flake.nix.
Assets
Pointers to glTF models:- My collection
- glTF sample models.
- A ton of glTF models
- Open Research Content Archive can be converted to glTF with Blender.
- Poly heaven
References
๐ More in this category