Rafx benefits from many great ideas from other people!
- The job/phase rendering design is inspired by the 2015 GDC talk "Destiny's Multithreaded Rendering Architecture".
- The render graph is inspired by the 2017 GDC talk "FrameGraph: Extensible Rendering Architecture in Frostbite"
- see also "Render Graphs and Vulkan - a deep dive" for an implementation of a render graph on vulkan
- The low-level API is somewhat similar to the API from "The Forge"
Rafx also benefits from many excellent crates - in particular bindings to native graphics APIs. (This is not a complete list of dependencies, just ones of particular note for graphics programming).
General:
raw-window-handle
: https://github.com/rust-windowing/raw-window-handle
Vulkan:
ash
andash-window
: https://github.com/MaikKlein/ashgpu-allocator
: https://github.com/Traverse-Research/gpu-allocator
Metal:
metal
: https://github.com/gfx-rs/metal-rsraw-window-metal
: https://github.com/norse-rs/raw-window-metalobjc
: https://github.com/SSheldon/rust-objcdispatch
: https://github.com/SSheldon/rust-dispatchcocoa-foundation
: https://github.com/servo/core-foundation-rsblock
: https://github.com/SSheldon/rust-block
Shader Processing
spirv-cross
: https://github.com/KhronosGroup/SPIRV-Cross- bindings: https://github.com/grovesNL/spirv_cross
shaderc
: https://github.com/google/shaderc- bindings: https://crates.io/crates/shaderc
Windowing:
sdl2
: https://www.libsdl.org- bindings: https://crates.io/crates/sdl2
winit
: https://github.com/rust-windowing/winit
gfx-hal
: https://github.com/gfx-rs/gfx- While rafx does not use gfx-hal, the rust ecosystem is in a much better place for having it, and many of the crates that rafx does depend on are maintained by gfx-hal contributors
- MoltenVK: https://github.com/KhronosGroup/MoltenVK
- rafx has a native backend for metal and does not require MoltenVK, however rafx benefits from much of the
pathfinding they have done, much of which has been rolled into projects like
spirv-cross
- rafx has a native backend for metal and does not require MoltenVK, however rafx benefits from much of the
pathfinding they have done, much of which has been rolled into projects like
The rust ecosystem has many options for low- and high-level graphics programming, many of which are listed at https://arewegameyet.rs
Finally, the rust ecosystem is built and maintained by many brilliant and NICE people in the community. To everyone who has or will play a part in making the community and ecosystem a better place for everyone else, THANK YOU!!