-
-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Per-Object Motion Blur #9924
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
Per-Object Motion Blur #9924
Conversation
The generated |
CI is failing on check bans for some reason. 🤷 |
Needs rebasing, please |
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.
Shader could avoid some branches, use a better noise (IGN/STBN), and could experiment with some established surface comparison heuristics (plane distance, normals) (commonly used in denoising), but it works well enough and I don't want to block on further, possibly futile, experimentation. I'm happy merging it as-is.
Can anyone recommend a way to profile performance? I'm dubious to make perf changes without being able to meaningfully measure perf. |
Make sure you have a reproducible exact frame setup, and then run it through Nvidia's NSight GPU Frame Profiler, or AMD's equivalent (Radeon Graphics Analyzer iirc). You'll get per-pass timings, as well as statistics on shader occupancy, per-line stalls and timings, etc. |
I'm working on Metal. 😧 |
I really wouldn't worry about the perf, lets just leave it as-is. |
The generated |
The generated |
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.
I didn't look at this too closely yet but it looks fine to me, none of these nits should be considered blocking.
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.
This looks good to me, just a couple of nits.
I'm comfortable with the code quality here, and this is a useful standard rendering feature. Merging :) |
Thank you to everyone involved with the authoring or reviewing of this PR! This work is relatively important and needs release notes! Head over to bevyengine/bevy-website#1305 if you'd like to help out. |
Screen.Recording.2023-12-12.at.1.42.15.AM.mp4
Objective
Solution
naga
capabilities #9000. This is because the prepass buffers are multisampled, and require accessing withtextureLoad
as opposed to the widely compatibletextureSample
.Future Improvements
Changelog
MotionBlurBundle
to a camera entity.