Expand description
The main renderer plugin and related utilities.
This crate provides the main rendering plugin for the engine, as well as core types and utilities for defining render pipelines, render passes and related resources. It is designed to be flexible and extensible, allowing users to define their own render pipelines and passes while providing a solid foundation of core functionality.
It is an overlay over wde_wgpu that integrates it with the engine’s asset system, ECS and render graph.
The renderer flow is composed of the following stages:
|--------------------------------------------------------------------|
| | | Main World Update |
| Sync | Extract |---------------------------------------------------|
| | | Render World Update |
|--------------------------------------------------------------------|Where:
- The Sync stage is responsible for synchronizing entities between the main and render worlds (see the
syncmodule for more details). - The Extract stage is responsible for extracting resources, queries and entities from the main world to the render world, so that they can be used by the render passes (see the
coreandsyncmodules for more details). - The Main World Update and Render World Update stages are responsible for running the systems in the main and render worlds, respectively.
The main components of this crate are:
- The
assetsmodule that defines the render pipeline asset system and related types. - The
coremodule that defines core types and resources for the renderer, such as the render graph and pipeline manager. - The
passesmodule that defines the traits and types for render passes and sub-passes, as well as a simple render graph implementation. - The
syncmodule that provides utilities to automatically extract resources, query and entities from the main to the render world. - The
utilsmodule that provides utility resources and systems, such as the depth texture and meshes for rendering.
Modules§
- assets
- Renderer assets module.
- core
- The renderer module is responsible for rendering the scene.
- passes
- This module contains the render graph that describes the render logic of the engine.
- sync
- The sync module provides tools to synchronize entities, components and resources from the main world to the render world. This is useful for plugins that need to extract data from the main world and use it in the render world.
- utils
- Utility functions and resources for the renderer.
- wgpu_
utils