Commit Graph

171 Commits

Author SHA1 Message Date
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.
2021-06-04 20:57:44 -05:00
dmcdiarmid-ly d19d2aff9d Merge pull request #1110 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-15517
[ATOM-15517] Software Occlusion Culling
2021-06-04 15:21:39 -07:00
dmcdiarmid-ly 579f4ca9d6 Merge pull request #1138 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-15718
[ATOM-15718] DiffuseProbeGrid quality level
2021-06-04 15:14:47 -07:00
AMZN-mnaumov 8fa6d5d1b0 Merge pull request #1050 from aws-lumberyard-dev/Atom/mnaumov/ATOM-15631
[ATOM-15631] First pass on exposing Display Mapper properties to Behavior Context
2021-06-04 10:30:04 -07:00
Qing Tao dcdd63966e ATOM-15658 Better option of CreateCommonBuffer requires unique buffer name (#1133)
* ATOM-15658 Better option of CreateCommonBuffer requires unique buffer name
- Change the CreateCommonBuffer function to not require an unique  name by default.
- Remove the code for generating unique buffer names.
- Add buffer name to BufferAsset so it can be used for device object name instead of using asset file name.
- Change RPI::Buffer to use BufferName_AssetUuid as attachment id.
2021-06-04 10:28:56 -07:00
Doug McDiarmid fefa46dd6a Added DiffuseGlobalIlluminationFeatureProcessor and moved the DiffuseProbeGrid files to the DiffuseGlobalIllumination directory 2021-06-04 02:39:25 -07:00
Doug McDiarmid 2449a9322d Changed the occlusion culling plane model to be on the XZ plane and adjusted the corner point computations 2021-06-03 18:42:13 -07:00
Doug McDiarmid 792176d764 Cached occlusion plane corner points and AABB in the feature processor 2021-06-03 16:02:16 -07:00
mnaumov 856204a5ea merge from main 2021-06-03 16:01:27 -07:00
Doug McDiarmid ef05412063 Merge branch 'main' into Atom/dmcdiar/ATOM-15517 2021-06-03 13:31:18 -07:00
Esteban Papp 5d7aae9bd8 SPEC-2513 Fixes to enable w4459 (#1107)
* fixing w4459

* Fixes for nounity

* putting OLD_APARAM_USER in a common place to avoid duplicated declarations
2021-06-03 11:12:54 -07:00
Doug McDiarmid d63edf9b84 Merge branch 'main' into Atom/dmcdiar/ATOM-15517 2021-06-02 19:09:48 -07:00
mnaumov c3df73bed8 PR feedback and fixing TrackView 2021-06-02 18:48:50 -07:00
mnaumov 4f72e49ad4 Merge main 2021-06-02 13:40:33 -07:00
guthadam 25a114d324 updating includes 2021-06-02 11:35:40 -05:00
Doug McDiarmid 35d7ee5e53 Merge branch 'main' into Atom/dmcdiar/ATOM-15517 2021-06-02 00:10:55 -07:00
guthadam b37145589d Merge branch 'main' into Atom/guthadam/LYN-3871_LYN-3872_material_assignment_json_serializer_for_prefabs 2021-06-01 19:38:57 -05:00
hershey5045 9e3b7b45d9 Fix window handle retrieval in frame capture system. (#1073)
Capturing screenshots via hydra should work now.
2021-06-01 14:21:02 -07:00
guthadam d115eae84a LYN-3871/3872 Added JSON serializer for MaterialAssignment property overrides 2021-06-01 11:43:05 -05:00
Doug McDiarmid 59ab6edaef Added occlusion culling plane visualization 2021-05-31 01:38:13 -07:00
Esteban Papp 50a9e94eca Fix old method call (#1049) 2021-05-28 18:28:29 -07:00
mnaumov ab45ea7efa [ATOM-15631] First pass on exposing Display Mapper properties to Behavior Context 2021-05-28 17:15:20 -07:00
hershey5045 75cb293b2a Png fix for vulkan rhi (#962)
* Add supported formats for pngs in frame capture system. Add conversion logic from bgra to rgba.
2021-05-28 16:40:44 -07:00
Doug McDiarmid 1b235e0b16 Merge branch 'main' into Atom/dmcdiar/ATOM-15517 2021-05-28 13:43:26 -07:00
Doug McDiarmid 9ec4278f86 Added TLAS dependency 2021-05-28 00:09:00 -07:00
Doug McDiarmid fdc57cdaff Added TLAS dependency 2021-05-28 00:08:13 -07:00
Doug McDiarmid c0c9e5e90d Merge branch 'main' into Atom/dmcdiar/ATOM-15555 2021-05-27 19:24:16 -07:00
Doug McDiarmid bee811ae4f Moved Simulate to OnBeginPrepareRender. 2021-05-27 19:22:46 -07:00
Chris Santora ed56635c3e Merge remote-tracking branch 'upstream/main' into Atom/santorac/MaterialTypeCleanup 2021-05-27 15:12:56 -07:00
greerdv e1e1217c6a Merge pull request #984 from aws-lumberyard-dev/attachments-transform-scale
update usages of transform vector scale
2021-05-27 18:24:16 +01:00
greerdv c4dafc8495 update usages of transform vector scale 2021-05-27 12:54:13 +01:00
Tom Hulton-Harrop 4205a69106 Allow ComponentAdapter (and related types) to work with EntityComponentIdPairs as well as EntityIds (#920)
* provide the ability for component adapters to support multiple components per entity

* add missing explicit keywords

* updates following review feedback - update how template logic works

* small updats (fix typo, remove redundant includes)

* add missing this->

* naming change, common -> controller

* add [[maybe_unused]]
2021-05-27 09:34:52 +01:00
Doug McDiarmid 1d3322f881 Merge branch 'main' into Atom/dmcdiar/ATOM-15517 2021-05-27 01:25:38 -07:00
Doug McDiarmid 8223f241b5 Merge branch 'main' into Atom/dmcdiar/ATOM-15555
# Conflicts:
#	Gems/Atom/Feature/Common/Code/Source/Mesh/MeshFeatureProcessor.cpp
#	Gems/Atom/Feature/Common/Code/Source/RayTracing/RayTracingFeatureProcessor.cpp
2021-05-26 21:57:43 -07:00
Chris Santora c84989832d ATOM-13216 Delete Deprecated Functors
Removed unused PropertyVisibilityFunctor and ShaderEnableFunctor
2021-05-26 21:07:49 -07:00
Doug McDiarmid 74bdf2b069 Minor changes: Updated comments and removed an include file. 2021-05-26 20:25:48 -07:00
Doug McDiarmid 045def6ce1 Merge branch 'main' into Atom/dmcdiar/ATOM-5034 2021-05-26 19:23:06 -07:00
Doug McDiarmid 17e9c17f31 Added Occlusion Culling Planes and RPI Culling support for Masked Occlusion Culling 2021-05-26 19:18:18 -07:00
jiaweig 50085d0487 Merge pull request #823 from aws-lumberyard-dev/Atom/jiaweig/ATOM-15125_UV_Tangent
ATOM-15125 Support Reorder of Tangent Streams
2021-05-26 11:25:13 -07:00
greerdv 1c7d5e5615 Merge branch 'main' into transform-float-scale-continued 2021-05-26 10:27:18 +01:00
Doug McDiarmid 9f8948556f Merge branch 'main' into Atom/dmcdiar/ATOM-15555 2021-05-26 00:03:31 -07:00
Doug McDiarmid 40435fcb2e Added RayTracingMaterialSrg.
Added UV buffer to the RayTracingSceneSrg mesh buffers.
Added RayTracingSceneUtils and RayTracingMaterialUtils shader includes.
2021-05-25 23:52:19 -07:00
greerdv bdf9ac31fb update to use uniform scale calls to Transform 2021-05-25 22:31:41 +01:00
mriegger 14513af1fe Fix for lowend pipeline not having shadows (needed update call) 2021-05-25 08:48:18 -07:00
Doug McDiarmid c29c1825cb Added RayTracingPass and RayTracingPassData 2021-05-24 01:19:37 -07:00
antonmic 0b9e98c50e Fix for potential lighting pass crash with uninitialized pipeline 2021-05-22 00:27:06 -07:00
antonmic 6388277cd1 Fixed ImGui Pass as well as how exposure pass enables itself 2021-05-21 21:20:08 -07:00
dmcdiar fcdd79eff1 Fixed include file name for Linux build. 2021-05-21 20:22:52 -07:00
dmcdiar 45ab467274 Merge branch 'main' into Atom/dmcdiar/ATOM-5034
# Conflicts:
#	Gems/Atom/Feature/Common/Code/Source/DiffuseProbeGrid/DiffuseProbeGridRayTracingPass.cpp
2021-05-21 18:22:59 -07:00
jiaweig 13893e77f3 merge main 2021-05-21 13:08:10 -07:00