Rust hardware ray-tracing library
This project was developed by kalsifer-742 and circled-square supervised by Professor Marco Patrignani for the bachelor thesis at the University of Trento, Italy
If you wish to contribute to the project you may check our issues, or if you found a bug or missing feature feel free to create one. You may also contact us at the e-mail addresses linked to our GitHub accounts.
If you're studying at University of Trento and are looking for a thesis subject you can ask Professor Marco Patrignani to be your supervisor to work on this project and we will be available if you need help or clarifications.
Thesis proposals:
| Active project | Non-trivial | Real-time | Fully ray-traced | Hybrid | GPU | HW RT | Compute | SIMD | BVH | Mesh | Materials | Denoise | Rust | Crate | Engine | Notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Kajiya | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ? | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | |
| Cycles | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | N/A | ✅ Blender | |
| manta-ray | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | N/A | ✅ Blender | |
| luxcore | ✅ | ✅ | ❌ | ? | ? | ✅ | ❌ | ✅ | ? | ? | ✅ | ✅ | ? | ❌ | N/A | ✅ Blender | |
| akari_render | ❌ | ✅ | ? | ? | ? | ✅ | ❌ | ✅ | ? | ? | ✅ | ✅ | ? | ✅ | ❌ | ✅ Blender | Rebuild blender to install |
| KaminariOS/rustracer | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | uses Nix |
| RayTracingInVulkan | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ? | ✅ | ✅ | partial | ❌ | ❌ | N/A | ❌ | |
| referencePT | ❌ | ✅ | ? | ? | ? | ✅ | ✅ | ❌ | ❌ | ? | ✅ | ✅ | ? | ❌ | N/A | ❌ | |
| gbrt | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | |
| Godot4-RayTracing | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | partial | ❌ | ❌ | N/A | ✅ Godot | |
| Raytracing_Godot4 | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | N/A | ✅ Godot | |
| bevyray | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | partial | ❌ | ✅ | ❌ | ✅ Bevy | raytracing in fragment shader |
| hanamaru-renderer | ❌ | ❌ | ❌ | ? | ? | ❌ | ❌ | ❌ | ? | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | docs are in japanese |
| rtwlib | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | |
| rustic-zen | ❌ | ❌ | ✅ | ? | ? | ❌ | ❌ | ❌ | ? | ? | ? | ? | ? | ✅ | ✅ | ❌ | 2D |
| andros21/rustracer | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | |
| sunray | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | partial | ❌ | ✅ | ✅ | ❌ |
- Nvidia tutorial on vulkan KHR raytracing
- SaschaWillems basic ray tracing tutorial (C++)
- SaschaWillems vulkan tutorials (C++)
- Khronos vulkan samples (C++)
- Ray Tracing in One Weekend - series
- Ray Tracing Gems II
- pbrt
- PBR for materials
- page 197 - appendix B: BRDF Implementation
- see this nvidia blog for best practices for acceleration structures (and hit shading)
