Implement instancing render pipeline base on material pipeline
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 4d 8m
- Merged PRs (30d)
- 147
Description
## What problem does this solve or what need does it fill?
Currently the GPU instancing in bevy can only be implemented in a very low level abstraction: [official example](https://github.com/bevyengine/bevy/blob/main/examples/shader/shader_instancing.rs).
If you try to integrate some assets from material plugin, RenderCommand `SetMaterialBindGroup` for example, it won't run properly as the systems that extract and prepare data for this command are private and can't be accessed.
## What solution would you like?
Extend material pipeline or provide a new pipeline base on it. Make instancing can be implemented in an easier way, just like normal material plugin did.
## What alternative(s) have you considered?
At least public material data preparation related system and component so that I can create a plugin to hide the complexity myself.
## Additional context
All change can be scoped in material.rs in bevy_pbr, I guess.
Contributor guide
Assessment
This issue has not been assessed yet.