Search Issue Tracker
By Design
Votes
0
Found in
6000.0.58f1
6000.2.6f1
6000.3.0b3
6000.4.0a1
Issue ID
UUM-120144
Regression
No
Ambient occlusion appears incorrect when character is rendered with a fixed FOV using Render Objects
Reproduction steps:
1. Open the attached “IN-113002” project
2. Open the “Scenes/SampleScene” Scene
3. Enter the Play Mode
4. Observe the character hands in the Game View
Expected result: Character’s hands remain visible at a fixed FOV, and ambient occlusion shadows are correctly applied based on the character’s projected depth.
Actual result: Character’s hands are visible, but ambient occlusion appears incorrect, showing shadows from other objects through the hands
Reproducible with: 6000.0.58f1, 6000.2.6f1, 6000.3.0b3, 6000.4.0a1
Reproducible on: Ubuntu 25.04, Windows 11
Not reproducible on: No other environments tested
Notes:
- As a workaround, under “Settings/PC_Renderer” set the “Screen Space Ambient Occlusion” Render Feature source to "Depth" and check the "After Opaque" option.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- UI Builder Scrollview is unable to scroll all the way down when the window is downsized vertically
- Celestial bodies order remains unchanged when the Distance setting is modified
- A memory leak occurs with massive terrain when camera position changes occur.
- No valid hits are returned when using RaycastCommand
- Camera is not overlooking the main Scene in Scene View in the HDRP Sample Template
Resolution Note:
In URP, the prepass layer mask can’t render different layers with different camera settings. Given that limitation, your current setup behaves as expected:
- The depth prepass correctly includes the Character layer.
- The ScriptableRendererFeature Render Objects feature correctly renders the Character layer after Opaque using user-defined camera settings.
However, because SSAO relies on the depth buffer produced by the depth prepass, it will produce visual artifacts on the Character objects rendered with a different FOV.
Recommendations:
- Disable SSAO if it isn’t required for the scene or target platform.
- Add an additional Render Objects pass for the Character layer that writes to the depth buffer before the URP depth prepass, using camera settings aligned with the Character rendering (e.g., different FOV). In this case:
* Remove the Character layer from the prepass layer mask.
* Be aware this approach increases overdraw and requires enabling Depth Priming.
* Note that Render Objects does not write to the normal buffer, so SSAO will not correctly affect Character objects.
- The preferred solution is to implement and inject a custom depth–normal prepass prior to the standard URP prepass to render Character objects into both the depth and normal buffers with the correct user-specified camera settings. This ensures SSAO considers the adjusted FOV and applies correctly to the Character layer.
Thanks for reporting this, we will take it into account for our roadmap and see if we can facilitate this use-case.