Crate wde_renderer

Crate wde_renderer 

Source
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 sync module 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 core and sync modules 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 assets module that defines the render pipeline asset system and related types.
  • The core module that defines core types and resources for the renderer, such as the render graph and pipeline manager.
  • The passes module that defines the traits and types for render passes and sub-passes, as well as a simple render graph implementation.
  • The sync module that provides utilities to automatically extract resources, query and entities from the main to the render world.
  • The utils module 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

Structs§

RenderPlugin