twirl

Ambient Occlusion Map Not Working with Lumen in Unreal Engine?

October 2, 2026·twirl

If a material AO map seems to do nothing with Lumen in Unreal Engine, check Allow Static Lighting, the Ambient Occlusion input, packed texture channels, and the AO visualization mode.

An ambient occlusion map can be connected to an Unreal Engine material and still appear to do almost nothing when the scene uses Lumen. The texture may be valid, the material may compile, and the Ambient Occlusion input may be connected correctly.

When an ambient occlusion map is not working with Lumen in Unreal Engine, the first thing to check is the project's static-lighting setting. Epic's current Lumen documentation says Material Ambient Occlusion works with Lumen when Allow Static Lighting is disabled, which frees the required GBuffer space. There are also a few texture and debugging details that can make a working AO map look broken.

Generate weathered poured concrete on twirl after sign-in, with five free generation credits per day.

Free generate

weathered poured concrete, fine aggregate, subtle pitting, light surface wear

weathered poured concrete, fine aggregate, subtle pitting, light surface wear
Albedo
Normal
Roughness
Metallic
Height

Sign in with email to generate. Five free credits per day. Public library downloads need no account.

Generate this surface free (5/day)Browse public materials

Material AO and Lumen AO are not the same thing

It helps to separate the texture you authored from the occlusion Unreal calculates for the scene. A material AO map is local surface data. It can describe small creases, pores, seams, and recessed areas that belong to the material or asset.

Lumen, meanwhile, calculates dynamic indirect lighting and indirect shadowing from the scene. Epic describes Lumen as its dynamic global illumination and reflections system, and notes that Lumen Global Illumination replaces Distance Field Ambient Occlusion for the GI path.

Those systems can work together, but they are not interchangeable. A grayscale AO texture does not replace Lumen's scene lighting, and enabling Lumen does not automatically make every supplied material AO texture visible.

This distinction also matters when comparing AO with other PBR maps. Roughness controls reflection spread, normal maps change the surface direction used for lighting, and height can drive bump or displacement. AO represents occlusion rather than geometry or microsurface roughness. Our PBR map guide covers the role of each map in the set.

Disable Allow Static Lighting when using Material AO with Lumen

For a project using Lumen Global Illumination, open Project Settings, find Allow Static Lighting, and disable it if you want Lumen to use Material Ambient Occlusion.

This requirement comes directly from Epic's current Lumen Global Illumination documentation. Epic explains that disabling static lighting saves static-lighting shader permutations and also allows Material Ambient Occlusion to work with Lumen Global Illumination.

After changing project-level rendering settings, follow Unreal's restart or shader-recompile prompts before judging the result. If the project was previously using baked lighting, there may also be existing lightmap data in the level. Epic documents Force No Precomputed Lighting and a lighting rebuild as the path for removing that data when it is no longer wanted.

This is an easy issue to miss because the material graph itself does not necessarily look wrong. The AO texture can still be connected while the project configuration prevents it from contributing through the Lumen path you expected.

Connect the map to the material Ambient Occlusion input

Once the project is configured for Material AO with Lumen, connect the grayscale occlusion value to the material's Ambient Occlusion input.

For a separate AO image, sample the texture as material data rather than display color. If the texture is imported with sRGB enabled, gamma decoding changes the numerical values before the material uses them. The same general rule applies to roughness and metallic data. Our PBR texture color space guide covers the color-versus-data distinction across Blender, Unreal Engine, and Unity.

If you are using a packed texture, confirm the channel order instead of connecting the RGB output directly. An ORM texture conventionally stores ambient occlusion in red, roughness in green, and metallic in blue. Use the red channel for the Ambient Occlusion input, green for Roughness, and blue for Metallic.

Our ORM texture guide goes through the packed layout and why similarly named packed textures cannot always be treated as interchangeable.

Do not use the Ambient Occlusion visualization to validate Material AO

One of the less obvious Lumen troubleshooting traps is the viewport's Ambient Occlusion visualization.

Epic's Lumen documentation explicitly says that Material Ambient Occlusion is not visible in the Buffer Visualization Ambient Occlusion view mode. The viewport documentation also distinguishes the AO calculated by the scene from an AO texture applied through a material.

That means a blank or unchanged AO visualization does not prove that the material AO input is being ignored. Validate the material in the normal lit view under the actual Lumen lighting setup instead.

If you need a controlled comparison, temporarily disconnect the material AO input, save the material, and compare the lit result with the AO connected again. Keep the camera, exposure, lights, and material parameters fixed while you compare. This isolates the material contribution without changing several variables at once.

Check the AO texture before changing the material

An AO map can be technically connected and still produce a very subtle result because the image itself contains little range. A nearly white map with only faint gray creases is supposed to have a restrained effect.

Open the texture asset or preview the channel directly before adding Multiply or Power nodes to exaggerate it. White represents unoccluded regions, while darker values identify areas with more local occlusion. If a packed ORM image is being inspected as a normal RGB picture, remember that only the red channel represents AO.

This is also a useful place to check UVs and texture scale. If the AO pattern is stretched or sampled at a different scale from the base color and normal map, the dark creases will no longer line up with the features they are meant to support.

For tileable surface materials, micro-AO should line up with the same repeating material structure. Object-level cavities and contacts are a separate problem that the scene lighting, baked asset data, or other occlusion techniques may handle.

Avoid baking AO permanently into Base Color

If a material AO texture seems weak, multiplying it aggressively into Base Color can look like a quick fix. It also changes what the texture represents.

Base Color should describe the surface color rather than contain fixed lighting. Baking strong dark creases into it means those creases remain dark regardless of how the scene's indirect lighting changes. With dynamic lighting, that can make cavities look over-dark because the color texture already contains shading before Unreal evaluates the scene.

Keeping AO separate gives the renderer a chance to use the data in the intended lighting path. It also makes the material easier to move between engines because the original albedo and AO remain independently available.

This is one reason twirl keeps its generated material maps separate. The twirl AI PBR material generator provides albedo, normal, roughness, metallic, and height as individual maps rather than baking the material response into one flattened image.

Lumen can already create strong indirect shadowing

A material AO map does not need to recreate all of the shadowing already present in the scene. Lumen calculates diffuse indirect lighting, including occlusion caused by scene geometry. Epic's documentation describes meshes blocking indirect lighting as part of the Lumen GI solution.

That means a strong AO texture can become redundant or overly dark when it tries to represent large-scale cavities that the geometry and lighting system already understand. Material AO is more useful when it carries local information that the scene representation does not capture well enough, particularly small self-occlusion detail on an asset.

Epic specifically calls out Material Ambient Occlusion as providing reliable self-occlusion on Skeletal Meshes. For a flat tileable material on a large wall or floor, the useful AO information is usually the smaller-scale structure of that surface rather than the room-scale corner shadows around it.

Separate an AO problem from a normal or roughness problem

Sometimes the material feels flat and AO gets blamed because the visual symptom is vague. Before increasing occlusion, check what is actually missing.

If cracks and pits do not react to a moving light, inspect the normal map. If highlights are too broad or too sharp, inspect roughness. If large relief should alter the silhouette, AO cannot provide that and a height or displacement workflow may be more appropriate.

For Unreal imports, also verify that normal, roughness, metallic, AO, and other data textures are not being interpreted as ordinary sRGB color. Our Unreal Engine PBR texture import settings guide covers those import checks, while the Unreal normal-map green-channel guide covers inverted tangent-space normals separately.

Changing the map that corresponds to the missing property usually produces a more predictable material than using AO as a general contrast control.

A reliable Lumen Material AO troubleshooting order

Start in Project Settings and confirm that Lumen Global Illumination is actually enabled for the project. If you want Material Ambient Occlusion with Lumen, disable Allow Static Lighting as Epic requires for that path and let the project update its shaders.

Then inspect the texture. Confirm that a standalone AO map contains useful grayscale variation, or that a packed ORM texture is feeding its red channel into Ambient Occlusion. Treat the texture as data rather than sRGB color, and make sure its UV scale matches the rest of the material.

Test the material in the normal lit viewport instead of relying on Buffer Visualization's Ambient Occlusion view, because Epic notes that Material AO is not displayed there. Compare the material with and without the AO connection under identical lighting.

If the result is still subtle, check whether Lumen and the mesh geometry are already supplying most of the visible indirect shadowing. At that point, a restrained material AO contribution may be the correct result rather than evidence that the texture is broken.

Generate brushed brass on twirl after sign-in, with five free generation credits per day.

Free generate

brushed brass with subtle oxidation and fine surface wear

brushed brass with subtle oxidation and fine surface wear
Albedo
Normal
Roughness
Metallic
Height

Sign in with email to generate. Five free credits per day. Public library downloads need no account.

Generate this surface free (5/day)Browse public materials

What to do next

Browse

Public materials

Browse public materials and download tileable PBR sets without an account.

Browse public materials
Read next

Unreal Engine Normal Map Green Channel: When to Flip It

If a normal map looks inverted in Unreal Engine 5, learn when to flip the green channel, how DirectX and OpenGL normals differ, and which import settings to check.

Continue reading

Sources

Epic Games: Lumen Global Illumination and Reflections

Epic Games: Viewport Modes

twirl

© 2026 twirlTerms·Privacy·Featured on ToolPilot