GTAO is broken

r.AmbientOcclusion.Method 0

r.AmbientOcclusion.Method 1

Fix? Or abandoned feature?

bump

Still nothing, i assume its just broken, will continue to use default.

There seems to be something wrong with the spatial filter. If you disable it, GTAO should work more like you would expect.

r.GTAO.SpatialFilter 0

I thought maybe it was just the default settings, but changing the other cvars (r.GTAO.*) didn’t seem to solve it.

1 Like

“r.GTAO.SpatialFilter 0” and “r.AmbientOcclusion.Method 1” still makes everything but the sky light grey, darkening everything by a decent amount. Is there anything else that can help? SSGI is too expensive and some better AO would be nice.

I assume you mean the GTAO is appearing correctly, but all of the meshes in the scene max out at 50% grey in areas where there is no AO.

I don’t know that there’s any way to fix this, or at least I wasn’t able to resolve it.

1 Like

I know this probably isn’t much consolation since you’re most likely on UE4; But this appears to be fixed in UE5 (as well as the issue with the spatial filter). So I guess it was just a bug…

I’m assume the fix could probably be backported if you’re familiar enough with the engine code, but I suspect Epic won’t do it themselves.

1 Like

Thanks to this thread, I was able to fix it by diffing it with UE5 source code. The fix is surprisingly easy. In “Engine\Source\Runtime\Renderer\Private\CompositionLighting\CompositionLighting.cpp”, function AddPostProcessingGTAOAllPasses(), change the following

		if (bSpatialPass)
		{
			CurrentOutput =
				AddGTAOSpatialFilter(
					GraphBuilder,
					View,
					CommonParameters,
					CommonParameters.SceneDepth,
					CurrentOutput);
		}

to

		if (bSpatialPass)
		{
			CurrentOutput =
				AddGTAOSpatialFilter(
					GraphBuilder,
					View,
					CommonParameters,
					HorizonSearchOutputs.Color,
					CommonParameters.SceneDepth);
		}

Hope that helps!

2 Likes