Activision Ambient Occlusion GTAO

Hi all,

someone know if and when this AO from activision will be supported on Unreal?

[Activision Research | Home

https://www.activision.com/cdn/research/PracticalRealtimeStrategiesTRfinal.pdf](Activision Research | Home)

They probably don’t have any plans to currently

thx for the reply !

well it’s really really pity

i hope nvidia will get some know how from this amazing tecnique :slight_smile:

Based on what?

This is already in engine. Released on 4.17.

This feature just needs better integration with different ambient occlusion sources. SSAO or DFAO does not currently use this technique. It’s really cheap and easy to implement. Actually I am going to implement it now myself.

I implemented colored multibounce AO for SSAO static lighting pass. Pull request is here. https://github.com/EpicGames/UnrealEngine/pull/4334

thx sooo much man :slight_smile:
you are the best!

So does that mean that I have to bake bent normal maps for every asset that I want the colored AO to work for? Cause thats how it is suggested in the release notes. If thats the case its almost useless for environments since you cant afford that load of extra texture samples for all those special normal maps. The hard part is to make stuff look better inside the budget. Of course I can make stuff look better by just adding things on top that make it more expensive :wink:

Dont mean to be offensive here, but I am just stressing this from a production point of view!

Also, I do believe that the benefit of GTAO is that you dont need additional input maps, so “we already have that” doesnt really count as an argument to me :wink:

you mean that this GTAO technique is really the Bent Normals thing?
also does that mean you’d need a bent normal for every asset in the game? :eek:
[edit] Daedalus beat me to it, but he expresses my own concerns very well :smiley:

Where did I mentioned bent normals? GTAO is just formula how to turn SSAO + albedo as close to ground truth as possible. This is implemented in engine with function named AOMultiBounce. Currently this is applied only to materialAO. I implemented this for ssao static fraction in this PR. https://github.com/EpicGames/UnrealEngine/pull/4334

Patch notes said this quite clearly.

Edit: Actually GTAO is also the “cosine” part but this should already be included to materialAO. For SSAO this part still could be improved.

you didn’t mention Bent Normals, you just linked to the release notes which mostly talks about Bent Normals :wink:
you’re right that it mentions multi-bounce approximation afterwards, but it’s all contained within the Bent Normals feature explanation of the notes so it really feels like it’s part of the Bent Normals. it goes like this:

is this AOMultibounce really decoupled from Bent Normals?

Yes. You can look at BasePassPixelShader.usf.

Does it means Bent Normals won’t be needed anymore?

that explains why I haven’t seen any of it, as I don’t really use Material AO :smiley:
you PR sounds quite interesting. I hope they integrate it and improve upon it (but we know how PRs go these days)

Bent normals are meant for directional occlusion. It’s better than just uniform occlusion.

It’s really simple to integrate PR that just alter shader files. You don’t even need source code build.

GTAO has now been added to UE4: https://github.com/EpicGames/UnrealEngine/commit/065e4d71a84c73e5ee59081d85bc3c99e8554911

D a m n (<- why is this a censored word?!), maybe i’ll start investigating in upgrading to 4.25. SSAO is killing my project on smaller budget rigs.