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/Atom/Feature/Common/Assets/Passes
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
..
AuxGeom.pass Add newlines to the end of all files 5 years ago
BRDFTexture.pass Add newlines to the end of all files 5 years ago
BRDFTexturePipeline.pass Add newlines to the end of all files 5 years ago
BlendColorGradingLuts.pass Add newlines to the end of all files 5 years ago
Bloom.pass Add newlines to the end of all files 5 years ago
BloomBlur.pass Add newlines to the end of all files 5 years ago
BloomComposite.pass Add newlines to the end of all files 5 years ago
BloomDownsample.pass Add newlines to the end of all files 5 years ago
CameraMotionVector.pass Add newlines to the end of all files 5 years ago
CascadedShadowmaps.pass Initial commit 5 years ago
CheckerboardResolveColor.pass Add newlines to the end of all files 5 years ago
CheckerboardResolveDepth.pass Add newlines to the end of all files 5 years ago
ContrastAdaptiveSharpening.pass Temporal anti-aliasing and constrast adaptive sharpening (#1161) 5 years ago
ConvertToAcescg.pass Add newlines to the end of all files 5 years ago
DebugOverlayParent.pass Integrating latest 47acbe8 5 years ago
DeferredFog.pass Initial commit 5 years ago
Depth.pass Add newlines to the end of all files 5 years ago
DepthCheckerboard.pass Add newlines to the end of all files 5 years ago
DepthDownsample.pass Add newlines to the end of all files 5 years ago
DepthExponentiation.pass Add newlines to the end of all files 5 years ago
DepthMSAA.pass Add newlines to the end of all files 5 years ago
DepthMSAA2x.pass Add newlines to the end of all files 5 years ago
DepthMSAA4x.pass Add newlines to the end of all files 5 years ago
DepthMSAA8x.pass Add newlines to the end of all files 5 years ago
DepthMSAAParent.pass Integrating latest 47acbe8 5 years ago
DepthMax.pass Add newlines to the end of all files 5 years ago
DepthOfField.pass Initial commit 5 years ago
DepthOfFieldBlurBokeh.pass Initial commit 5 years ago
DepthOfFieldComposite.pass Initial commit 5 years ago
DepthOfFieldDownSample.pass Initial commit 5 years ago
DepthOfFieldMask.pass Initial commit 5 years ago
DepthOfFieldOnBokeh.pass Initial commit 5 years ago
DepthOfFieldPrepare.pass Initial commit 5 years ago
DepthOfFieldReadBackFocusDepth.pass Initial commit 5 years ago
DepthOfFieldWriteFocusDepthFromGpu.pass Initial commit 5 years ago
DepthToLinearDepth.pass Add newlines to the end of all files 5 years ago
DepthUpsample.pass Add newlines to the end of all files 5 years ago
DiffuseComposite.pass Removed ClearCoatNormal RT from the pipeline and shaders. 5 years ago
DiffuseGlobalFullscreen.pass Removed ClearCoatNormal RT from the pipeline and shaders. 5 years ago
DiffuseGlobalFullscreen_nomsaa.pass Removed ClearCoatNormal RT from the pipeline and shaders. 5 years ago
DiffuseGlobalIllumination.pass Initial commit 5 years ago
DiffuseProbeGridBlendDistance.pass Add newlines to the end of all files 5 years ago
DiffuseProbeGridBlendIrradiance.pass Add newlines to the end of all files 5 years ago
DiffuseProbeGridBorderUpdate.pass Add newlines to the end of all files 5 years ago
DiffuseProbeGridClassification.pass Added DiffuseProbeGridClassification pass. 5 years ago
DiffuseProbeGridDownsample.pass Initial commit 5 years ago
DiffuseProbeGridRayTracing.pass Add newlines to the end of all files 5 years ago
DiffuseProbeGridRelocation.pass Add newlines to the end of all files 5 years ago
DiffuseProbeGridRender.pass Initial commit 5 years ago
DiffuseProbeGridUpdate.pass Added DiffuseProbeGridClassification pass. 5 years ago
DiffuseSpecularMerge.pass Add newlines to the end of all files 5 years ago
DisplayMapper.pass Add newlines to the end of all files 5 years ago
DisplayMapperConfiguration.azasset Initial commit 5 years ago
DownsampleLuminanceMinAvgMaxCS.pass Add newlines to the end of all files 5 years ago
DownsampleMinAvgMaxCS.pass Add newlines to the end of all files 5 years ago
DownsampleMipChain.pass Add newlines to the end of all files 5 years ago
EnvironmentCubeMapDepthMSAA.pass Add newlines to the end of all files 5 years ago
EnvironmentCubeMapForwardMSAA.pass Add newlines to the end of all files 5 years ago
EnvironmentCubeMapPipeline.pass Add newlines to the end of all files 5 years ago
EnvironmentCubeMapSkyBox.pass Add newlines to the end of all files 5 years ago
EsmShadowmaps.pass Add newlines to the end of all files 5 years ago
EyeAdaptation.pass Add newlines to the end of all files 5 years ago
FastDepthAwareBlur.pass Initial commit 5 years ago
FastDepthAwareBlurHor.pass Add newlines to the end of all files 5 years ago
FastDepthAwareBlurVer.pass Add newlines to the end of all files 5 years ago
FilterDepthHorizontal.pass Add newlines to the end of all files 5 years ago
FilterDepthVertical.pass Add newlines to the end of all files 5 years ago
Forward.pass work in progress 5 years ago
ForwardCheckerboard.pass Add newlines to the end of all files 5 years ago
ForwardMSAA.pass Merging main 5 years ago
ForwardSubsurfaceMSAA.pass addressed review feedback and resolved issues from merge with main 5 years ago
FullscreenCopy.pass Add newlines to the end of all files 5 years ago
FullscreenOutputOnly.pass Add newlines to the end of all files 5 years ago
ImGui.pass Add newlines to the end of all files 5 years ago
LightAdaptationParent.pass Fixed ImGui Pass as well as how exposure pass enables itself 5 years ago
LightCulling.pass Initial commit 5 years ago
LightCullingHeatmap.pass Add newlines to the end of all files 5 years ago
LightCullingParent.pass Integrating latest 47acbe8 5 years ago
LightCullingRemap.pass Initial commit 5 years ago
LightCullingTilePrepare.pass Initial commit 5 years ago
LightCullingTilePrepareMSAA.pass Initial commit 5 years ago
LookModificationComposite.pass Add newlines to the end of all files 5 years ago
LookModificationTransform.pass Add newlines to the end of all files 5 years ago
LowEndForward.pass work in progress 5 years ago
LowEndPipeline.pass Add m_linearDepthTexture as input for transparent pass. 5 years ago
LuminanceHeatmap.pass Add newlines to the end of all files 5 years ago
LuminanceHistogramGenerator.pass Add newlines to the end of all files 5 years ago
MSAAResolveColor.pass Add newlines to the end of all files 5 years ago
MSAAResolveCustom.pass Add newlines to the end of all files 5 years ago
MSAAResolveDepth.pass Add newlines to the end of all files 5 years ago
MainPipeline.pass Temporal anti-aliasing and constrast adaptive sharpening (#1161) 5 years ago
MainPipelineRenderToTexture.pass Add newlines to the end of all files 5 years ago
MainRenderPipeline.azasset Add newlines to the end of all files 5 years ago
MeshMotionVector.pass Temporal anti-aliasing and constrast adaptive sharpening (#1161) 5 years ago
ModulateTexture.pass Add newlines to the end of all files 5 years ago
MorphTarget.pass Add newlines to the end of all files 5 years ago
MotionVectorParent.pass Temporal anti-aliasing and constrast adaptive sharpening (#1161) 5 years ago
OpaqueParent.pass skybox pass separation for single vs double output 5 years ago
PassTemplates.azasset Temporal anti-aliasing and constrast adaptive sharpening (#1161) 5 years ago
PostProcessParent.pass Temporal anti-aliasing and constrast adaptive sharpening (#1161) 5 years ago
ProjectedShadowmaps.pass Add newlines to the end of all files 5 years ago
RayTracingAccelerationStructure.pass Add newlines to the end of all files 5 years ago
ReflectionComposite.pass Initial commit 5 years ago
ReflectionCopyFrameBuffer.pass Add newlines to the end of all files 5 years ago
ReflectionGlobalFullscreen.pass Merge branch 'main' into Atom/dmcdiar/ATOM-14951 5 years ago
ReflectionGlobalFullscreen_nomsaa.pass Removed ClearCoatNormal RT from the pipeline and shaders. 5 years ago
ReflectionProbeBlendWeight.pass Initial commit 5 years ago
ReflectionProbeRenderInner.pass Removed ClearCoatNormal RT from the pipeline and shaders. 5 years ago
ReflectionProbeRenderOuter.pass Removed ClearCoatNormal RT from the pipeline and shaders. 5 years ago
ReflectionProbeStencil.pass Add newlines to the end of all files 5 years ago
ReflectionScreenSpace.pass Initial commit 5 years ago
ReflectionScreenSpaceBlur.pass Initial commit 5 years ago
ReflectionScreenSpaceBlurHorizontal.pass Initial commit 5 years ago
ReflectionScreenSpaceBlurMobile.pass [ATOM][RHI][Vulkan][Android] 5 years ago
ReflectionScreenSpaceBlurVertical.pass Initial commit 5 years ago
ReflectionScreenSpaceComposite.pass Initial commit 5 years ago
ReflectionScreenSpaceMobile.pass [ATOM][RHI][Vulkan][Android] 5 years ago
ReflectionScreenSpaceTrace.pass Initial commit 5 years ago
Reflections.pass Merge branch 'main' into Atom/dmcdiar/ATOM-14951 5 years ago
Reflections_nomsaa.pass ATOM-14947 5 years ago
SMAA1xApplyLinearHDRColor.pass Temporal anti-aliasing and constrast adaptive sharpening (#1161) 5 years ago
SMAA1xApplyPerceptualColor.pass Initial commit 5 years ago
SMAABlendingWeightCalculation.pass Add newlines to the end of all files 5 years ago
SMAAConfiguration.azasset Initial commit 5 years ago
SMAAConvertToPerceptualColor.pass Add newlines to the end of all files 5 years ago
SMAAEdgeDetection.pass Add newlines to the end of all files 5 years ago
SMAANeighborhoodBlending.pass Add newlines to the end of all files 5 years ago
ShadowParent.pass Integrating github/staging through commit 5f214be 5 years ago
Skinning.pass Add newlines to the end of all files 5 years ago
SkyBox.pass work in progress 5 years ago
SkyBox_TwoOutputs.pass skybox pass separation for single vs double output 5 years ago
SsaoCompute.pass Add newlines to the end of all files 5 years ago
SsaoHalfRes.pass Initial commit 5 years ago
SsaoParent.pass Initial commit 5 years ago
SubsurfaceScattering.pass Add newlines to the end of all files 5 years ago
Taa.pass Temporal anti-aliasing and constrast adaptive sharpening (#1161) 5 years ago
Transparent.pass Add m_linearDepthTexture as input for transparent pass. 5 years ago
TransparentParent.pass ATOM-4782 [Material] Transparent pass is using StandardPBR_Forwardpass shader with incorrect SRG (#1103) 5 years ago
UI.pass Add newlines to the end of all files 5 years ago
UIParent.pass Integrating latest 47acbe8 5 years ago