What’s rendy anyway?
rendy is collection of crates to “build your own renderer”. It’s not a renderer on its own. You can’t just throw a mesh into some scene and it will render that mesh for you, no.
rendy crate itself is umbrella crate for all
rendy-* crates each of which solve particular task.
In its core
rendy has small and concise crates to solve hardest tasks that arise before modern graphics API user.
Memory management (
rendy-memory), resource management (
rendy-resource), command encoding (
rendy-command) and synchronization (
rendy has also two big crates -
First one (
rendy-factory) gives you simple and reliable way to create resources, upload data, gives access to command queues and manages resource destruction (built upon
Second one (
rendy-graph) allows user to build complex rendering graphs from simple nodes, manages transient resources and calculates required inter-node synchronization (using
Rendering node has own tree of traits and implementations to further simplify node construction.
See “quads” example to know how to create graph that will render 2 millions moving quads in no time.
On top of it we are working on data-driven rendering system that will allow user to render objects with custom shaders with ~0 lines of additional code.
Instead of picking one of modern graphics API to support
gfx-hal (it provides vulkan-ish API and implements various backends including Vulkan, DirectX12 and Metal).
I hope we will replace old clunky amethyst renderer in next few weeks and start creating new features with it.