You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems
Ken Pruiksma 9df995dd26
Temporal anti-aliasing and constrast adaptive sharpening (#1161)
First version of temporal antialiasing and contrast adaptive sharpening for GA. Works well in most cases but still has a few issues that will need additional time. This is only the passes and shaders with no exposure to the editor. TAA and CAS can be turned on by enabling their respective passes in the pipeline.

All of the code has been previously reviewed in smaller PRs into the taa_staging branch:
aws-lumberyard-dev#29
aws-lumberyard-dev#53
aws-lumberyard-dev#73
aws-lumberyard-dev#79
aws-lumberyard-dev#84

Main issues:

- Bloom doesn't play nice with TAA and seems to greatly amplify any flickering
- AuxGeom jitters with the camera, so TAA doesn't currently work well in editor
- Transparencies don't have correct motion vectors. History rectification keeps this from looking too bad, but could still be improved
- There is still more that could be done to inhibit flickering, usually from specular aliasing
- Motion vectors aren't correct on POM unless PDO is turned on, which can result in some blurring during motion.
- SSAO can contribute to flickering in its default half res configuration. Changing this to full res mitigates the problem.

Squashed merge of the following:

* [ATOM-13987] Initial checkin of Taa pass.

* TAA pass setup WIP. (does not work yet due to pass configuration issues).

* Taa WIP - Camera motion vectors fixed and hooked up. TAA does simple reprojection and rejection based on depth.

* Small update to use lerp and add some comments.

* Fix issue with attachments not being set up on bindings at initialization. Fixing issue with half-pixel offsets in TAA shader

* - Motion vector passes now use the same output with mesh motion vectors overwriting camera motion vectors.
- Taa pass now works with multiple pipelines.
- Cleaned up TAA shader a bit.

* Fixes from PR review.

* Adding check for multiple attachments of the same name with different resources in Pass::ImportAttachments().

* Adding camera jitter with configurable position count. Updated TAA to blend in tonemapped space.

* Fixes from PR review. Fixing camera motion vectors for background (infinite distance)

* Updates to taa shader from PR review

* Adding a rcp input color size.

* Fix comment on PassAttachment::Update()

* Updates for PR review.

* Fixing missing const on the FrameAttachment* in Pass's call to FindAttachment()

* Taa WIP - Adding filtering to both the current pixel and history. Adding rectification based on variance clipping. Adding some basic anti-flickering. Removing rejection based on depth.

* Updates from PR code review. Mostly better commenting and naming.

* Adding contrast adaptive sharpening based on AMD FidelityFX CAS to help with the softness added by TAA.

* Changing to using luminance for sharpening instead of just green. Added some comments.

* Moving Taa's NaN check to a better location. Disabling TAA and sharpening in prep for check in.

* Updates from PR feedback.
5 years ago
..
AWSClientAuth [LYN-4184] AWSClientAuth, AWSCore and AWSMetrics don't have the expected target or alias defined (#1089) 5 years ago
AWSCore [LYN-4200] Fail and log error if required aws config file is not found (#1099) 5 years ago
AWSMetrics [LYN-4184] AWSClientAuth, AWSCore and AWSMetrics don't have the expected target or alias defined (#1089) 5 years ago
Achievements The new gem registration and usage system 5 years ago
AssetMemoryAnalyzer The new gem registration and usage system 5 years ago
AssetValidation Merge branch 'main' into ly-as-sdk/LYN-2948 5 years ago
Atom Temporal anti-aliasing and constrast adaptive sharpening (#1161) 5 years ago
AtomContent Merge branch 'main' into ly-as-sdk/LYN-2948 5 years ago
AtomLyIntegration Merge pull request #1110 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-15517 5 years ago
AtomTressFX Adding empty CMakeLists.txt to Asset only gems to fit the new definition 5 years ago
AudioEngineWwise Pass on fixing LmbrCentral.Static dependencies 5 years ago
AudioSystem SPEC-2513 Fixes to enable w4457 5 years ago
AutomatedLauncherTesting Pass on fixing LmbrCentral.Static dependencies 5 years ago
Blast Merge pull request #1039 from aws-lumberyard-dev/transform-float-scale-3 5 years ago
Camera Avoid more sources of camera update re-entrancy that can lead to stack overflow (#1136) 5 years ago
CameraFramework The new gem registration and usage system 5 years ago
CertificateManager The new gem registration and usage system 5 years ago
CrashReporting The new gem registration and usage system 5 years ago
CustomAssetExample The new gem registration and usage system 5 years ago
DebugDraw Merge branch 'main' into ly-as-sdk/LYN-2948 5 years ago
DevTextures Adding empty CMakeLists.txt to Asset only gems to fit the new definition 5 years ago
EMotionFX SPEC-2513 Fixes to enable w4457 5 years ago
EditorPythonBindings Merge branch 'main' into ly-as-sdk/LYN-2948 5 years ago
ExpressionEvaluation The new gem registration and usage system 5 years ago
FastNoise SPEC-2513 Fixes to enable w4701 (#1105) 5 years ago
GameState The new gem registration and usage system 5 years ago
GameStateSamples Merge remote-tracking branch 'origin/lawsonamzn_prototype_gem_naming_conventions' into ly-as-sdk/LYN-2948-phistere 5 years ago
Gestures The new gem registration and usage system 5 years ago
GradientSignal Merge pull request #1039 from aws-lumberyard-dev/transform-float-scale-3 5 years ago
GraphCanvas SPEC-2513 Fixes to enable w4457 5 years ago
GraphModel SPEC-2513 Fixes to enable w4457 5 years ago
HttpRequestor The new gem registration and usage system 5 years ago
ImGui Pass on fixing LmbrCentral.Static dependencies 5 years ago
InAppPurchases The new gem registration and usage system 5 years ago
LandscapeCanvas Merge remote-tracking branch 'origin/lawsonamzn_prototype_gem_naming_conventions' into ly-as-sdk/LYN-2948-phistere 5 years ago
LmbrCentral Merge pull request #1039 from aws-lumberyard-dev/transform-float-scale-3 5 years ago
LocalUser The new gem registration and usage system 5 years ago
LyShine SPEC-2513 Fixes to enable w4457 5 years ago
LyShineExamples More dependency fixes for linux builds 5 years ago
Maestro SPEC-2513 Fixes to enable w4459 (#1107) 5 years ago
MessagePopup The new gem registration and usage system 5 years ago
Metastream The new gem registration and usage system 5 years ago
Microphone SPEC-2513 Fixes to enable w4457 5 years ago
Multiplayer Fixed Multiplayer unit tests. 5 years ago
MultiplayerCompression The new gem registration and usage system 5 years ago
NvCloth Merge branch 'main' into ly-as-sdk/LYN-2948 5 years ago
PBSreferenceMaterials Merge branch 'main' into ly-as-sdk/LYN-2948 5 years ago
PhysX Use '<Default Physics Material>' instead of 'Default' in Material Selection widget. (#1140) 5 years ago
PhysXDebug Merge remote-tracking branch 'origin' into MultiplayerComponents 5 years ago
PhysXSamples Merge branch 'main' into ly-as-sdk/LYN-2948 5 years ago
PhysicsEntities Adding empty CMakeLists.txt to Asset only gems to fit the new definition 5 years ago
Prefab Merge branch 'main' into ly-as-sdk/LYN-2948 5 years ago
Presence The new gem registration and usage system 5 years ago
PrimitiveAssets Adding empty CMakeLists.txt to Asset only gems to fit the new definition 5 years ago
PythonAssetBuilder LYN-4128 EditorPythonBindings.Editor in debug does not load (missing python_d.dll) 5 years ago
QtForPython The new gem registration and usage system 5 years ago
RADTelemetry The new gem registration and usage system 5 years ago
SaveData The new gem registration and usage system 5 years ago
SceneLoggingExample The new gem registration and usage system 5 years ago
SceneProcessing Merge branch 'main' into ly-as-sdk/LYN-2948 5 years ago
ScriptCanvas Merge branch 'main' into SpawnableEntityIdMapping 5 years ago
ScriptCanvasDeveloper Merge remote-tracking branch 'origin/lawsonamzn_prototype_gem_naming_conventions' into ly-as-sdk/LYN-2948-phistere 5 years ago
ScriptCanvasPhysics Physics material system for spectra launch 5 years ago
ScriptCanvasTesting Bug fixes and improvements brought over from demo work. 5 years ago
ScriptEvents The new gem registration and usage system 5 years ago
ScriptedEntityTweener The new gem registration and usage system 5 years ago
SliceFavorites The new gem registration and usage system 5 years ago
StartingPointCamera Pass on fixing LmbrCentral.Static dependencies 5 years ago
StartingPointInput Merge remote-tracking branch 'origin/lawsonamzn_prototype_gem_naming_conventions' into ly-as-sdk/LYN-2948-phistere 5 years ago
StartingPointMovement The new gem registration and usage system 5 years ago
SurfaceData Pass on fixing LmbrCentral.Static dependencies 5 years ago
TestAssetBuilder The new gem registration and usage system 5 years ago
TextureAtlas Simplified the o3de package gem enable/disable logic 5 years ago
TickBusOrderViewer The new gem registration and usage system 5 years ago
Twitch Merge remote-tracking branch 'origin/lawsonamzn_prototype_gem_naming_conventions' into ly-as-sdk/LYN-2948-phistere 5 years ago
UiBasics Merge branch 'main' into ly-as-sdk/LYN-2948 5 years ago
Vegetation Pass on fixing LmbrCentral.Static dependencies 5 years ago
Vegetation_Gem_Assets Adding empty CMakeLists.txt to Asset only gems to fit the new definition 5 years ago
VideoPlaybackFramework The new gem registration and usage system 5 years ago
VirtualGamepad The new gem registration and usage system 5 years ago
WhiteBox SPEC-2513 Fixes to enable w4457 5 years ago