-
-
Notifications
You must be signed in to change notification settings - Fork 21.3k
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 motion vector support for GPU 3D Particles #80688
Add motion vector support for GPU 3D Particles #80688
Conversation
I think this is ready for testing. |
This should be mentioned in the |
I'm not entirely sure if it'll need to be documented that much because users don't have a need to edit that setting unless the draw order is important. And draw order is important only when transparent particles are involved, which shouldn't be involved in the motion vectors pass anyway (which is actually a general current bug because any transparent objects can draw to the motion vector buffer right now). In the case of opaque particles, there should be no need for the user to ever change this setting from the default. I'm fine with documenting it but it might end up being visual noise as it'll be irrelevant in most cases once the transparency writing motion vectors bug is fixed. Gonna tag @reduz for some input on this as it's something we discussed. |
Add the capability of resizing the transforms buffer for particles to be double its size and alternate where the current output is written to. Only works for particles that use index as their draw order.
2a4d7a0
to
293302c
Compare
I've added a comment for GPU Particles but don't think it'll be necessary for the I'll see about addressing that issue in a separate PR before we merge this one. |
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.
Tested locally, it works as expected.
Testing project: test_pr_80688.zip
Particles on the left use the default 30 Hz update rate + interpolation. Particles on the right update every rendered frame and have interpolation disabled.
This project is capped to 60 FPS by default to ensure TAA appearance is consistent across displays.
Before
simplescreenrecorder-2023-08-28_18.20.54.mp4
After (this PR)
simplescreenrecorder-2023-08-28_18.21.20.mp4
Performance is pretty much identical before and after this PR.
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.
Looks great! I reviewed the code, but I didn't test locally as I have a big refactor on my local and I don't want to recompile from scratch twice. I trust the previous reviews, so let's go ahead with this now
Thanks! |
Cherry-picked for 4.1.2. |
Add the capability of resizing the transforms buffer for particles to be double its size and alternate where the current output is written to. Only works for particles that use index as their draw order.