-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Add low level post process example using a custom render pass #6909
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IceSentry
added
A-Rendering
Drawing game state to the screen
C-Examples
An addition or correction to our examples
labels
Dec 10, 2022
IceSentry
force-pushed
the
post-process-pass
branch
from
December 12, 2022 07:16
69c2911
to
40b2e59
Compare
IceSentry
force-pushed
the
post-process-pass
branch
from
January 21, 2023 06:56
40b2e59
to
3fc441e
Compare
IceSentry
force-pushed
the
post-process-pass
branch
from
March 15, 2023 05:04
3fc441e
to
e7b3573
Compare
IceSentry
force-pushed
the
post-process-pass
branch
from
March 15, 2023 05:04
e7b3573
to
6c2518b
Compare
JMS55
approved these changes
Mar 15, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lots of minor suggestions on what to reword and explain better.
Major stuff I noticed missing:
- No usage of prepare/queue systems to create textures or bind groups
- No usage of specialized pipelines and per-view pipelines, or shader defs for when runtime uniform settings aren't desired
- I feel like we should mention that you you can use fancier filters and stuff with ExtractComponent, implement it manually instead of deriving, or implement it entirely manually with a system. Maybe this should go into the rustdoc, though.
Random other thoughts:
- Node boilerplate is pretty bad, can't wait for you to improve it
- Perhaps we should take ExtractComponent/Uniform one step further, and add some kind of template trait for preparing a list of textures based on descriptors, preparing a bind group, creating one or more specialized pipelines, and then possibly integrating the pipelines into a render node. Would greatly simplify TAA/SSAO/etc.
Co-authored-by: JMS55 <[email protected]>
Co-authored-by: JMS55 <[email protected]>
Co-authored-by: JMS55 <[email protected]>
Co-authored-by: JMS55 <[email protected]>
superdump
requested changes
Mar 15, 2023
Co-authored-by: Robert Swain <[email protected]>
superdump
approved these changes
Mar 16, 2023
Shfty
pushed a commit
to shfty-rust/bevy
that referenced
this pull request
Mar 19, 2023
…gine#6909) Co-authored-by: JMS55 <[email protected]> Co-authored-by: Robert Swain <[email protected]>
Shfty
pushed a commit
to shfty-rust/bevy
that referenced
this pull request
Mar 19, 2023
…gine#6909) Co-authored-by: JMS55 <[email protected]> Co-authored-by: Robert Swain <[email protected]>
This was referenced Jun 28, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Objective
Solution
Notes
The actual shader is pretty much the same as the current post_process example but adapted for the custom render pass. So it's still just chromatic aberration. This could probably be something slightly more complicated to show using more bindings. For example the offset could be configured from a binding instead of being hardcoded.
I originally wanted to use this example to also teach about all the various render stages, but it's already quite complex so I chose to keep it simple.