Reduction of TAA jitter positions for better motion clarity and reduced ghosting.#114644
Draft
blendegames wants to merge 1 commit intogodotengine:masterfrom
Draft
Reduction of TAA jitter positions for better motion clarity and reduced ghosting.#114644blendegames wants to merge 1 commit intogodotengine:masterfrom
blendegames wants to merge 1 commit intogodotengine:masterfrom
Conversation
This is a basic 2 jitter positions implementation that doesn't do any major changes other then the renderer_scene_cull which is now only giving 2 different jitter positions.
Closed
Contributor
|
the 2nd image should be compared with the stick mirrored as well, as you're flipping between numpad 1 and 9 and there may be visible differences between this diagonal line and it's mirror |
Contributor
|
Some observations:
|
Author
|
Here is the stick mirrored: My fork: |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.


This is a basic 2 jitter position implementation that doesn't do any major changes to the current TAA implementation for now. In the scenes I was able to test, most of the issues present with the current TAA implementation are gone.
Here are some examples:
Videos:
Light ball test (#68343):
Master: https://github.com/user-attachments/assets/5be4bfd3-4d3d-488a-bfe9-fe47f847a7bb
My fork: https://github.com/user-attachments/assets/8d42003e-906f-4c76-80c1-e00f63a5c572
There is an improvement to the artifacting around the movable sphere, but there is an increase in aliasing since there is way less jitter positions.
FSR test (#111631):
Master: https://github.com/user-attachments/assets/4f3d1ca8-d6c6-4e49-bd69-f9508177963e
My fork: https://github.com/user-attachments/assets/dc911f9c-c411-4126-9513-ab0fbc6199f5
Less jitter is noticeable in certain areas of the scene.
Thin geometry test:
Master: https://github.com/user-attachments/assets/23efbdb2-41fb-4cc8-b5ec-3e8e4ad9f4b
My fork: https://github.com/user-attachments/assets/9bb9b66f-30a8-4aec-84cb-a50b828765a2
The thin object is a lot less blurry and ghosting is almost non existent.
Screenshots:


Light ball test (#68343):
Master:
My fork:
Even when I'm not moving the ball around the scene, I get an improvement in sharpness.
FSR test (#111631):
Motion is needed to see the difference, no screenshots needed.
Thin geometry test:


Master:
My fork:
The ghosting is barely noticeable if not completely gone and the object looks less blurry.
There is a caveat to all of this. There is a loss in anti-aliasing capability, but with the combination of other anti-aliasing techniques such as SMAA or FXAA, that issue can be mitigated. If someone wants to keep the previous TAA implementation, it might be possible to keep it when no other anti-aliasing solutions are turned on.