# vulkan-rust-learning Experiments for learning how write Vulkan, using Rust, for real-time raytracing, and other shenanigans. ## Resources - [NVidia's Raytracing Best Practices](https://developer.nvidia.com/blog/best-practices-using-nvidia-rtx-ray-tracing/) - [Khronos Best Practices for Hybrid Rendering](https://www.khronos.org/blog/vulkan-ray-tracing-best-practices-for-hybrid-rendering) - [vulkano - Rust Bindings for Vulkan](https://crates.io/crates/vulkano) - [vulkano on GitHub](https://github.com/vulkano-rs/vulkano) - [Bevy](https://bevyengine.org/) - [Bevy on GitHub](https://github.com/bevyengine/bevy) - [NVidia NSight with Vulkan](https://developer.nvidia.com/blog/optimizing-vk-vkr-and-dx12-dxr-applications-using-nsight-graphics-gpu-trace-advanced-mode-metrics/) ## Architectures Notes - Use Top Level Acceleration Structure (TLAS) for instancing and describing geometry - Use Bottom Level Acceleration Structure (BLAS) for actually storying geometry inside of AABB regions - Keep BLAS AABBs condensed (less negative space), but don't overlap them either - We could have an AABB system that automatically generates it from placed level geometry? Too overkill?