bevyengine / bevyengine/bevy

Implement instancing render pipeline base on material pipeline

Open
#7,147 2 comments 0 reactions 0 assignees View on GitHub
A-Rendering C-Usability
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

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.