Commit Graph

15 Commits (7dabe8b6e966273940e7d98284966104064b783e)

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.
5 years ago
Doug McDiarmid a9a42a5405 Added AZ_TRAIT_MASKED_OCCLUSION_CULLING_SUPPORTED 5 years ago
Doug McDiarmid 59ab6edaef Added occlusion culling plane visualization 5 years ago
Doug McDiarmid c84882869b Changed to a fixed-size occlusion buffer 5 years ago
Doug McDiarmid 17e9c17f31 Added Occlusion Culling Planes and RPI Culling support for Masked Occlusion Culling 5 years ago
nvsickle 64d53d1fab Fix View::GetCameraTransform 5 years ago
nvsickle dca2294b36 Move GetCameraTransform into RPI::View. 5 years ago
Vicky e4509dbe68
Merge pull request #322 from aws-lumberyard-dev/Atom/qingtao/ATOM-6088
ATOM-6088 Unified approach to send draws to a single viewport

    Created a template class TagRegistery which implements the previous DrawListTagRegistry. The template is used for both DrawListTagRegistry and DrawFilterTagRegistry
    Added DrawFilterTag to DrawItemKeyPair
    Added DrawFilterMask support in DrawPacket and DrawPacketBuilder
    Added CreateDynamicContext for render pipeline which allows draw to selected render pipeline.
    Updated RasterPass's BuildCommandListInternal function to filter draw items for its owner RenderPipeline.
5 years ago
qingtao 60db6b55d0 Address feedback of PR for ATOM-6088.
* Rename DrawItemKeyPair to DrawItemProperties.
* Switch back to use Ptr<DrawListTagRegistry> instead of DrawListTagRegistry
* Updated some comment.
5 years ago
nvsickle f835372c0f Fix capitalization... 5 years ago
nvsickle 228fa7ff6b Fix search and replace fail 5 years ago
nvsickle e6cfe36a03 Fix typo 5 years ago
nvsickle 9e6244dc99 Fix game mode camera components not working in-Editor
Ensures RPI::View updates always make it back to the ViewportContext, even if you talk directly to the View
5 years ago
alexpete c2cbd430fe Integrating up through commit 90f050496 5 years ago
alexpete a10351f38d Initial commit 5 years ago