Rendering global scene ambient occlusion in cycles possible?

hi to all …:grinning:,

as i´m new to blender i search for a possibility to render an AO directly in the scene.
i dont want neither to give every material a AO node, nor render an AO layer and compose afterwards.

i want to click AO as is it possible with eevee render, and get the same AO everywhere in the scene.

thanks for help!

Hey there,

So you mean that instead of working with each of the materials manually you just want some kind of the button that would apply an AO nodes automatically to all of your objects?

If so, I don’t think that it’s possible. Maybe it can be done via Python.

Doing this in Cycles is not easy and was never really intended to be a thing. If you are trying to get realism, AO is not needed in Cycles.

In Cycles, there is little focus put on ambient occlusion, because Cycles has full realistic bounce light, which is considered better than AO. Basically, AO is a cheap replacement that realtime renderers use to fake what Cycles does by default.

If you really want AO in Cycles, you will find a section called “fast GI approximation” in the render settings. This feature allows light rays to be replaced with AO after a certain number of bounces and will give you an AO tinted with the world color.

However, if you want more control, you will need to do it in each material one by one.

1 Like

It is possible to get an AO pass.

Enable Fast GI Approximation, set method to Add, so it will only affect AO. Factor to 0 and distance to taste.

Then enable AO pass, mix in the compositor or set a file output.

…that does not work as expected. with 0 i see nothing of an AO…bigger than 0 it gets much brighter,…

what do you mean with “ao pass” … the compositing thing with AO layer ?


btw. this is the render with 0

in vray there is a AO button for global ao…makes the scene much more realistic and 3d with that. for further compositing you can use the ao renderlayer…

As said, you don’t really need this in Cycles:

ok, if you think so… i did no realtime render in 3dsmax-vray…

…this is a “material preview” of the scene with default white material on all 3 objects. “fast GI approx” is OFF.

can anyone explain what i see here?

The material preview mode doesn’t use Cycles, it uses Eevee. If you switch to Eevee and change the render settings, it will affect the material preview (even when the renderer is set to Cycles).

That’s the original and most important purpose of Eevee: to serve as a viewport.

You should check the occlusion settings in Eevee’s render settings.

1 Like

thanks etn249

for eevee ao was set to 50 :joy:

can´t believe that i´m the only one that misses the global ao feature. maybe all the rest composes.
for me it looks better with a bit of AO everywhere in the edges… it is possible to see that after compositing AO renderlayer in… afterwards…

1 Like

Vray is an old renderer. If I understand correctly, it has gone through multiple rendering methods. Depending on when and how you used it, it’s possible AO was in fact needed to replace missing details in the bounce light.

However, if you used it recently, maybe you didn’t really need the AO. Your Cycles image here is actually realistic, if you compare it with real life (it looks fake mostly because it lacks textures). You can see an AO effect naturally happening in the shadow, while the side of objects in the direct light looks mostly flat. This is actually realistic and how it happens in real life. AO is the shadowing of ambient light and doesn’t affect direct light.

It might look better and “more 3D” if you put a full occlusion pass over your render, but if you start looking at objects in real life, you will realize the AO is really only visible in the shadows and only affects the soft ambient light.

Can’t have proper AO in viewport with Cycles.

But can have it in final render for post-processing


thanks jonathan for your time and work,
…as i said in the initial post, i did not want to compose. i knew that it is possible to edit every material or to do it in compositing. but i wanted to get it directly rendered in.