Decouple materials from meshes
- 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
Assessment
This issue has not been assessed yet.