Quick Poll: Ambient Occlusion Post Processing in URP - Concluded

Based on your recent feedback, we’re hearing that improvements to Ambient Occlusion post processing in URP should be considered a priority.

Related to this, we’d love to learn more about your use cases, challenges, the solutions you have experience with, and which solution you feel Unity should consider implementing to improve image quality and runtime performance of Ambient Occlusion post processing.

We greatly value your input—thank you for helping us shape the future of Unity!

Survey link: This survey is now closed. Thanks to all of you that provided us with your feedback!

17 Likes

As also the Ambient Occlusion in HDRP is not without flaws (I mean the SSAO / GATO implementation, the RTAO is completely fine), maybe consider to build a unified solution?

IMO optimal case would be: Have a unified solution working in both URP and HDRP, based on RenderGraph, which offers high fidelity AO (SOTA algorithm like visibility bitmask based), plus an raytraced option.

4 Likes

Thank you for the feedback request, I have completed the form.

I have this video on my desktop for a while, I think it’s time to post it:

This is the URP SSAO in the Unity Official Universal 3D sample project.

I really don’t like the “noisy” pattern static in screen space visible around the Unity logo (video compression blends the issue). When the camera move, the noise move with it. It looks like I have dirty noise printed on my screen.
SSAO will be way better without any noise, or if the noise is static in the 3D space.

7 Likes

we are still using GitHub - AmplifyCreations/AmplifyOcclusion: Full source-code for Amplify Occlusion plugin for Unity since it has always been the best.. (for pc/vr)

6 Likes

I don’t really have a preference for SSAO solution as long as it looks clean, in the end all SSAO looks wrong compared to RTAO.

But i do agree a unified solution between URP and HDRP at least in terms of settings would be nice, as HDRP SSAO has it’s flaws.

4 Likes

I think there has been very old feedback too unfortunately - it always looked poor compared to asset store solutions which then could have some issues with certain render paths.
Really you should take from the asset store solutions HBAO/HTrace to look as good as those. There is a reason they are so popular. They are like an essential plugin for any new project.
But effects plugins should also be able to replace the hard-coded selection of effects you have which have that weird “always-on but not if intensity 0” setup. Last time I looked Unity’s effects were still not customisable without modifying the package.

3 Likes

I know it’s way too early to ask right now but I wonder if features like “volumetric fogs”, “screen space global illuminations” and “screen space reflections” will be added into URP sometime in the future.

I could’ve used HDRP for my games but there doesn’t seem to be as many resources for HDRP shaders as in URP. Also I don’t know if it’s really worth sacrificing tons of FPS to get those features.

1 Like

I just use HBAO I found the quality and customization to be better, the built in AO with URP is lacking in quality no idea if it is any faster probably not much either way it lacks in quality and customization controls.

I also use Radiant GI by Kronnect as it works with URP, allows HDR color lighting to look more realistic in the scene without using actual lights when it’s just far easier to have the color texture to emit light on surrounding surfaces.

The effect should be combined ie HTrace GI for URP, too many HDRP things that could and should be on URP already but have relied on the asset store where it has been possible. Especially for those who use URP even for desktop targeted projects and want more highend scaling graphics.

Might aswel mention Umbra Shadows by Kronnect is another essential third party addon to improve URP shadows (Built in had a similar ugly shadow problem that only NGSS fixed but wasn’t an URP update) frankly that is probably the worst part of URP, the AO post processing feature is decent in comparison to what you can achieve in tweaking settings but good luck making URP shadows not look terrible with any of the built in controls and customization for it.

What ever happened to Multi-scale Volumetric Occlusion (MVO)?

This was featured in the Post-processing package for the built-in RP. It was often superior for dense scenes such a forests. But it was never ported to URP, my guess on account of it being under an MIT license and requiring compute shaders?

It is the same technique used in the Decima Engine (Horizon Zero Dawn) and is available in Unreal Engine 5. As opposed to other techniques (SSAO, GTAO, HBAO) it works by reconstructing a volumetric representation of the scene, rather than soley relying on sampling depth information. It does so at different scale levels over a distance, which makes it excellent for both fine-near and broad-far occlusion shading.

Definitly the most resource intensive of the bunch and regarded up as “high end” for both this reason and the visual fidelity it brings.

When SSAO was introduced to URP in 2020, I was quite dissappointed. The wait was long, and the result was a 15+ year-old obsolete technique :smiling_face_with_tear:

14 Likes

Seconding on bringing back MSVO and implementing GTAO similar to Amplify Occlusion.
The current SSAO looks horrendous (like image-effects from Unity 4, lol) and performs really bad in comparison to other algorithms (tested on R5 4600G Vega 7).

I remember it performing very nicely on my old laptop with GT 740m in 768p and 60 fps, so it’s on the same level as other algorithms, if not better, and it’s visuals are indeed superior. Also, there’s not much reason to use SSAO outside desktop platforms.

2 Likes

This came up again in our latest abandoned attempt to move BIRP–>URP.

The built in URP AO’s distinguising feature is a pretty robust copydepthbuffer (rather than camera depthpass) mode that works on all the major Unity platforms. Due to how our rendering works, almost all of our cost is geometry, so having AO without a depth/depthnormals pass is a massive win on low-end hardware. I’m not aware of any other AO solution that can do this, and the frame boost on low end is on the order of 100%, and would remain high even with a very complex kernel to compute normals from depth. Granted, we’re a bit of an edge case.

Unfortunately the URP AO isn’t visually competitive with other solutions in any tests we did.

As an aside, there’s also cases where SSAO can be replaced by SSGI solutions, for example ghostwire tokyo included SSAO and SSGI in the same option.

SSAO

SSGI

Considering URP lacks an SSGI option it would be nice to cover both. Probably more performant to have both in one instead of separate too. The bottom image definitely does all it needs with the SSGI cause the SSGI is also casting shadows in a way.

But even in RT SSGI solutions AO is a fallback for performance so it’s not like having both in one isn’t entirely unreasonable.

EDIT: an additional note, especially for characters and things like hair edges are a big deal. A lot of solutions have halos everywhere. Most solutions it seems like they’re made for environments and settings for characters are secondary or not even considered.

EDIT2: Someone mentioned HBAO and i liked that a lot but the problem was the occlusion shader values from SSAO kept getting stripped. It was an annoying time consuming issue that made me stop using it.

Look at the HTrace AO. Unity should aim at similar quality for it’s ao otherwise people will still be forced to buy plugins. URP should have option to use SSAO or GTAO and improve HDRP’s GTAO, it’s really bad rn.

1 Like

The HDRP GT?AO implementation is honestly really good if you use a higher range.
I couldn’t really complain. This really is about as good as it gets in terms of “logical coverage”
Of course it dosn’t have the resolution and sharpness of a RTAO but I dont see any real logic mistakes. Even the inside areas of the bunkers are dark.
This looks mostly like a quite blurry version of a RTAO which is perfect.
Just port over the HDRP AO as higher end version. Performance is also solid on it.

The SSGI also works quite well but you need to have the right Sky intensity and light intensity for it to show.

HTrace was also good but HDRP SSGI had better performance and accomplished about the same, but it feels like SSGI needs more control settings for sure on HDRP.
Also I suppose HDRP SSGI dosnt work well in FPS games due to the screen space nature. (Corridors etc)

GTAO is good, but visibility bitmask based stuff (SSAO using Visibility Bitmasks - Research Blog) is usually better, while not costing much more in terms of performance. GTAO in HDRP also has some XR related issues with eye divergence (which RTAO does not have), which is unfortunately a common bug in screen space effects . This is usually easy to fix, but unfortunately Unity decided to put XR in HDRP on low prio…

3 Likes

We’re offering SSAO options in an in-game settings menu. A problem is that Unity doesn’t offer a public API to control SSAO settings such as DirectLightingStrength, Radius, Intensity, BlurQuality, Samples, Downsample, and Falloff. Instead we have to rely on Reflection.

Unity 6.2, URP 17.2.0

10 Likes

Hi again, and thanks so much to all of you that provided us with your feedback. We’ve recorded your suggestions and will bring them to the team for consideration.

Hi! Screen space reflections in URP is already highly prioritized by the team. Screen space global illumination at this point isn’t as highly prioritized, however. Should it be? Would our recently communicated roadmap for Dynamic GI based on a surface cache provide a viable alternative to SSGI? Feedback Request: Changes to Unity's Dynamic GI Roadmap

3 Likes

Oh, that’s great to hear! As for global illumination methods, Í was worried about applying it to huge open world maps. Adaptive probe volumes definitely work the best in small maps but the bigger the map is the bigger the lighting data will be in size. Considering we currently have these solutions in URP, I don’t see adding screen space global illumination as necessary as things like screen space reflections and volumetric fogs but I believe it would be a neat addition.

2 Likes