Flip convention of motion vectors. #81074
Merged
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.
As seen in PR #80723, the motion vectors used by Godot seem to go against the convention seen in other solutions where the vector of a pixel points towards its position in the previous frame.
While there's no hard rule written about this, the closest thing I can probably cite is what FSR2 expects.
https://github.com/GPUOpen-Effects/FidelityFX-FSR2#providing-motion-vectors
Instead of flipping around the sign of the value sampled from the buffer every time we need it and making FSR2 use a negative scale, it's probably better in the long term to just flip the convention to match. Integrating this should make the vectors go in the correct direction in the video shown in the PR.