Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiview Rendering #16059

Draft
wants to merge 23 commits into
base: main
Choose a base branch
from
Draft

Multiview Rendering #16059

wants to merge 23 commits into from

Conversation

awtterpip
Copy link
Contributor

@awtterpip awtterpip commented Oct 22, 2024

Objective

  • The goal of this PR is to implement multiview rendering into the bevy engine with as much supported functionality as possible.
  • If needed, some functionality can be implemented in future pull requests
  • Fixes Add support for multiview cameras #15864

Solution

  • Add a multiview field to RenderPipelineDescriptor
  • Change view bindings to allow arrays of view's to be passed in.
    • Created a new DynamicArrayUniformBuffer storage type and changed existing code to use it.
  • Update bevy_pbr to support multiview rendering.
    • Updated mesh pipelines and shader code to support multiview.
    • Volumetric fog
  • Update pipelines and shaders in bevy_core_pipeline to support multiview with a key.
    • Blit (untested)
    • Bloom (untested)
    • CAA (untested)
    • Deferred lighting (unsure what this is for and if its necessary to implement for multiview)
    • Depth of Field
    • FXAA (untested)
    • Motion Blur
    • Order Independent Transparency
    • Post Processing Effects
    • Skybox
    • SMAA
    • TAA
    • Tonemapping
    • How should we handle Transparent3d items that need to be sorted by distance when the distance could possibly be different in each view?
  • Change ExtractedView to support multiple views
  • Change ViewTarget to support texture arrays.
  • Create or modify camera components to accommodate multiview rendering and request multiview pipelines when needed.
  • Change entity culling to work with multiple views
  • Create examples for multiview rendering

Testing

  • Will likely require extensive testing of most core bevy rendering features due to the extent of changes this PR brings.

Showcase

  • TODO

Migration Guide

  • TODO

@awtterpip awtterpip changed the title Multiview 0.15 Multiview Rendering Oct 22, 2024
@tychedelia tychedelia added C-Feature A new feature, making something new possible A-Rendering Drawing game state to the screen X-Contentious There are nontrivial implications that should be thought through S-Waiting-on-Author The author needs to make changes or address concerns before this can be merged labels Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Rendering Drawing game state to the screen C-Feature A new feature, making something new possible S-Waiting-on-Author The author needs to make changes or address concerns before this can be merged X-Contentious There are nontrivial implications that should be thought through
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

Add support for multiview cameras
2 participants