bevyengine / bevyengine/bevy

Propagation for RenderLayers

Open
#22,601 2 comments 0 reactions 0 assignees View on GitHub
A-Rendering C-Docs C-Feature S-Needs-Design X-Contentious
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?

Visibility propagation is:
- The norm across software
- Intuitive
- Practical

Which is why we have it, and it's great.

But when you need something more complicated than global visibility, you end up using `RenderLayers`, and in my case being confused that they don't propagate.

This lack of propagation is in my opinion both unintuitive and impractical.

For example if you want to make a gltf model hidden from a specific camera, you now need to somehow insert the `RenderLayers` across the whole gltf tree.

## What solution would you like?

My solution is to implement propagation very similar to the existing `Visibility` propagation.

So RenderLayers would probably become an enum like:

- Inherited
- Layers(layers)

## What alternative(s) have you considered?

For my GLTF problem, I could do some `iter_descendants` stuff but it would be pretty clunky in my opinion.

## Additional context

I'm up to implement this into a PR if the design is validated 👍

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.