Per-Object Motion Blur#9924
Conversation
|
The generated |
|
CI is failing on check bans for some reason. 🤷 |
|
Needs rebasing, please |
JMS55
left a comment
There was a problem hiding this comment.
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 |
pcwalton
left a comment
There was a problem hiding this comment.
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
nagacapabilities #9000. This is because the prepass buffers are multisampled, and require accessing withtextureLoadas opposed to the widely compatibletextureSample.Future Improvements
Changelog
MotionBlurBundleto a camera entity.