bevyengine / bevyengine/bevy

Decouple materials from meshes

Open
#8,250 0 comments 9 reactions 0 assignees View on GitHub
A-Rendering C-Feature
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

## What problem does this solve or what need does it fill?
All of Bevy's current material infrastructure is focused on rendering meshes. This provides great flexibility for developers to define how their meshes are drawn, but this model only really works for static meshes or static-ish generated environments. Once you start adding more dynamic elements like dynamically generated meshes, [trail rendering](https://docs.unity3d.com/Manual/class-TrailRenderer.html), or particle systems, that may mutate geometry every frame, you either need to generate/mutate meshes and upload them to the GPU every frame, or abandon much of the material infrastructure to build your own pipeline from scratch.

## What solution would you like?
Decouple materials from meshes as the unit of rendering. Support materials as a way to define shaders, bind groups, and pipelines without tying explicitly to a mesh format.

## What alternative(s) have you considered?
Leave it as is.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.