This implementation of the Amethyst Renderer utilizes the
rendy crate, built on top of
gfx-hal to provide the building blocks for a AAA configurable rendering graph-based pipeline.
As a general overview, this crate can be broken down as follows:
Module containing structures useful for batching draw calls in scenarios with various known assumptions, e.g. order independence.
A home of [RenderingBundle] with it's rendering plugins system and all types directly related to it.
Camera type with support for perspective and orthographic projections.
Debug Drawing library
Renderer error types.
Pre-defined graphical formats and data provided by amethyst_rendy
Loaders re-exported from
A library that makes linear color calculations and conversion easy and accessible for anyone. It uses the type system to enforce correctness and to avoid mistakes, such as mixing incompatible color types.
Passes and shaders implemented by amethyst
Graphics pipeline abstraction
Set of predefined implementations of
GPU POD data types.
Rendy's top level crate. Reexports all others.
This module contains a few serialization shims for types from
Basic shape prefabs.
Skinned mesh and bone implementation for renderer.
2D Sprite Rendering implementation details.
Transparency, visibility sorting and camera centroid culling for 2D Sprites.
Various helpers and implementations for sub functions of render passes.
Transparency component implementation
'Global' rendering type declarations
Misc. rendy and rendering utility functions and types.
Transparency, visibility sorting and camera centroid culling for 3D Meshes.
Active camera resource, used by the renderer to choose which camera to get the view matrix from. If no active camera is found, the first camera will be used as a fallback.
Higher level device interface. Manges memory, resources and queue families.
Build graph from nodes and resource.
Image format description newtype wrapper for
A physically based Material with metallic workflow, fully utilized in PBR render pass.
A resource providing default textures for
Asset processing system for
A [RenderPlugin] for drawing debug lines. Use with [debug_drawing::DebugLines] resource or [debug_drawing::DebugLinesComponent].
A [RenderPlugin] for drawing 2d objects with flat shading. Required to display sprites defined with [SpriteRender] component.
RenderPlugin for rendering skyboxes.
A [RenderPlugin] for opening a window and displaying a render target to it.
A bundle of systems used for rendering using
Amethyst rendering system
Dimensions and texture coordinates of each sprite in a sprite sheet.
Information for rendering a sprite.
Meta data for a sprite sheet texture.
Allows loading of sprite sheets in RON format.
Build for rendering sub-pass.
Asset processing system for
Transparent mesh component
Helper structure for tracking indexed changes for per-image draw call recording.
A format descriptor that describes the channels present in a texture or view, how they are laid out, what size they are, and how the elements of the channels are interpreted (integer, float, etc.)
Specifies the dimensionality of an image to be allocated, along with the number of mipmap layers and MSAA samples if applicable.
Internal mesh loading
Extension of the rendy Backend trait.
Graph trait implementation required by consumers. Builds a graph and manages signaling when the graph needs to be rebuilt.
Descriptor for render group
Basic building block of rendering in [RenderingBundle].
Helper function to create a