How to bake-in ambient occlusion (AO) for all meshes?

Hi there,

I’m currently messing around to find a proper setup for my AO. It works well both for static geometry (lightmass) as in realtime for dynamic lights (SSAO).

I’m doing a VR project so every millisecond is really precious. So I wonder if there is any way to just bake it in for all actors in the level (bake it in the lightmap or something) which doesn’t affect performance on runtime and doesn’t have to be calculated every frame, even for dynamic actors?

Thank you,

Hey ,

In World Settings > Lightmass > towards the bottom there is the option to enable Ambient Occlusion so that it can be baked into the lightmaps. By default this is not set. Once enabled there are some options below to adjust the AO that is with lightmass.

I hope this helps.

1 Like

Hi ,

many thanks for your quick answer.

In my case, this isn’t working for movable actors. Lightmass is turned on in the world settings, but there is no AO applied:


I tried to check (light as if static) on this mesh, but now I lost shadows from my stationary directional light and still got no AO.

It works only with post processing in realtime (which is too slow for my VR project).

So is there any way to bake this even for moveable actors (which apperently have no lightmaps)?

If you’ve got a movable actor (not skeletal mesh) that is set to “light as if static” it will bake a lightmap for your asset so long as it has properly setup lightmaps with enough resolution to bake the information and look correct.

For skeletal meshes this will not work. I found a free convertible car model online to test this with. Not the greatest UVs, but decent enough to test with.

For something like VR, I’m not an expert or even really a beginner user with it, you may want to render out an AO map in your modeling application so that you can apply it via the material to get the results you need since you can’t really rely on using dynamic lighting to get the results needed.

Hi ,

ok, thanks for investigating this.