It looks like the SSAO shader does not clamp its sample space to the half view size for the two inputs "Ambient Occlusion" and "AmbientOcclusionSetup", leading to invalid data entering the edge of frame.
This might be from the functions "WedgeWithNormal(...)" and "WedgeNoNormal(...)" in PostProcessAmbientOcclusionCommon.ush.

Steps to Reproduce

1. Download the Licensee's test project, compile, and launch
2. Observe the SceneCapture pointing at a solid color wall. Wall is larger than Scene Capture's view.
3. On the SceneCapture object, set "Grabbed File Dir" under "Debugging" to a directory you can put screenshots in.
4. Simulate the Game, let it render a bit, then exit simulation.
5. Open the created "Capture.exr" in the directory specified in Step 3. Observe the artifacts along the bottom-right edges.
6. Simulate again, and run a GPU Dump
7. Observe the pass "AmbientOcclusionPS 960x540 ...". The inputs "Ambient Occlusion" and "AmbientOcclusionSetup" are larger than the half viewport size, and the output "ScreenSpaceAO" is larger than the viewport size (960x540).
8. Observe the artifacting in the output "ScreenSpaceAO" along the bottom-right of the red rectangle. This is easier to see with a modification to the visualizer shader: "display.r = texel * 0.6;"

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-201498 in the post.

Login to Vote

ComponentUE - Graphics Features
Affects Versions5.3
Target Fix5.4
Fix Commit31393885
Main Commit31396799
Release Commit31393907
CreatedNov 29, 2023
ResolvedFeb 12, 2024
UpdatedMar 19, 2024