Rust hardware real time path-tracing library
This project was developed by Riccardo-Finello supervised by Professor Marco Patrignani for the bachelor thesis at the University of Trento, Italy
It's based on the sunray project developed by kalsifer-742 and circled-square
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:
- Library Integration kalsifer-742#52
| 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 | ❌ | ✅ | ✅ | ❌ | |
| sunPath | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | 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)