Material AO and a movable Skylight

Whenever I switch the Skylight over to a movable light all my AO plugged into my materials AO inputs turn off. Is this intended? I can share images if necessary, but this is pretty self explanatory. It partly defeats the purpose of PBR and has negative affects on your environment.

Hey joshezzell -

I am not seeing my Material AO disappear as you describe. Have you tried to go into the Lighmass settings and check the visualize Ambient Occlusion check box to true?

Thank You

Eric Ketchum

Hey Eric,

I have been meaning to reply to this thread for awhile. The issue is still present for me. Our game is using a fully dynamic light setup. We want to use a movable skylight for many reasons. Here is a video clearly showing the issue:

Also, I have noticed that the buffer visualization for Material Ambient Occlusion doesn’t show anything but white. This has been here since UE4’s release I believe. Is this a bug or intentional?

Hey joshezzell -

MaterialAO BUffer visualization was “removed” (actually set to 1 in code) in order to allow the GBuffer to be used for further Shader Models. It is true that currently Material AO does not work with Movable Sky Lights, but stay tuned.

Thank You

Eric Ketchum

In latest code, if you disable ‘AllowStaticLighting’ in your project’s Renderer settings, Material AO will now affect skylight. That will be in 4.8

The reason this happens is that Movable skylight diffuse is rendered in a deferred pass, and there aren’t any more GBuffer channels to store material AO in order to pipe that data to the deferred pass. However with static lighting disabled on the project we repurpose a channel previously used for static lighting to store Material AO.

Fantastic! You guys are the best. This was really bugging me and now our PBR materials will look just fine. Thank you.

Material AO and a movable Skylight still does not work in 4.14. In particular I would like to use materialAO with DFAO, are there any news on this issue?

I’m also interested in that!

if i multiply base color with AO, how this setup will render on metallic surface? first shader will calculate reflectance values based on base color and metallic mask< and then on top will cover AO, or reflectanse values will be computed out of base color+ao?