Page MenuHome

Ambient Occlusion working in LookDev but not Rendered shading
Closed, ArchivedPublic

Description

System Information
Operating system: Windows 10
Graphics card: GeForce GTX1070Ti and Iris 640

Blender Version
Broken:
(example: 2.80, 16fc62e15f0, blender2.8, 2018-12-12, as found on the splash screen)
Worked: (optional)

Tested on two computers. Basically, when using Eevee, when looking at a scene in LookDev, I get nice smooth Ambient Occlusion, but when I switch to Rendered, Ambient Occlusion is gone. Enabling and disabling AO does seem to change the scene lighting a little bit, but nothing close to actual AO.

Nothing particular needed to reproduce issue, behavior is consistent over several projects I worked on. Just turning on AO and creating a scene with nice AO influence.

Submitting test file, and screenshots to illustrate.

Event Timeline

Brecht Van Lommel (brecht) changed the task status from Unknown Status to Unknown Status.Dec 14 2018, 3:37 PM
Brecht Van Lommel (brecht) claimed this task.

Ambient occlusion in EEVEE is used for shadowing of environment / indirect light.

In LookDev mode there is a strong environment light and no direct light. In this scene there is a dim environment light and strong direct light, and as a result AO has little impact.

I assumed it can't be compared directly, and thaty's why I used large area lamp to get as close to LookDev look as possible. That being said, there's almost no way to get pronounced AO. For motion graphics work, sometimes you need to boost AO over the top, and no matter what the intensity is set to, AO is barely visible. What's in LookDev would be ideal.

If you use the same HDR image and no are lamp in the render it will give the same result as LookDev. For lamps you can use contact shadows for sometimes similar results.

It might be useful to support AO as an effect that is multiplied on the entire render, not just for shading. For now this can be done in individual shaders with the AO node.

AO is not used to shadow lights.

You can output an AO pass in the render layer settings and overlay it over the render. You can also do as @Brecht Van Lommel (brecht) said and use the AO node in the shader.