Cycles nodes for using AO maps?

What’s the node setup for an ambient occlusion map?
I’m making myself a large multi-shader and I need this, but I’m not sure how to incorporate an AO map.

I’m talking about the kind of AO map that pretty much goes over your diffuse texture as expected, shouldn’t be that hard, right?

1 Like




I usually multiply the AO map with the Diffuse map, like this:

Hmm, this will work.
Many thanks!

Cycles does not need AO maps for anything specifically. AO is used to fake indirect shadows, which Cycles has “for real”. AO maps in Cycles really only used for a specific visual effect, like dirt. You should NOT be using them in every shader as a matter of course. See this article for more info:

1 Like

But what about low-poly models, you do not take them into account, but what about the gaming industry, etc., AO maps were created and used specifically for PBR materials in order to see small details baked from a high-poly model, if the Principled BSDF material positions itself as a material supporting pbr then support for AO textures should be my opinion, and built-in ray tracing is for high poly models …

Low poly game models were not designed to be used in raytracers. There are any number of issues with using a model (and its textures) outside of a rendering environment that it was designed for. If you want to use a game model with an AO map, I would recommend using Eevee with a specular node for your material, which has an AO input. Yes, it’s a shame that there’s no AO input for Eevee principled for metalness workflows. It could potentially be done in compositing, from two renders (one with world lighting only, one with other lighting only, multiply the world lighting by AO then add the two in linear space.)

AO has nothing to do with PBR. No real world material has any such thing as AO.

Well, here you are right about PBR, I did not write correctly, the fact is that the PBR term is very arbitrary and vague, I mean pbr is what is called false pbr in games these are materials on the textures BaseColor (Albedo), Metallic, Normal, Roughness, AO (Ambient occlusion), it’s not even that, it’s in the industry - there is Marmoset, there is Substance Painter (unity ue sketchfab etc), these programs perfectly create and use AO textures, and they mix it with diffuse light, most likely automatic, but the fact is that there is no any superfluous nodes known only to the blender, there is a slot for the AO texture, just like in game engines, and in any real-time rendering application except of course blender…

well, and the fact that nowadays low-poly models cannot do without an AO map, I just thought that blender is probably too versatile and not a mess of everything.

Eevee should have an AO socket on the material output, really. Just no one has implemented it yet.

This link I posted in my previous comment years ago is still true:

Direct lights do not need AO, not even in video games. Only ambient lights need it. Because it’s AMBIENT occlusion, aka shadows (occlusion) for the ambient lamps. Which is why there’s a special ambient input on shaders for engines that have ambient lights (such as the Substance or Unreal renderers). You can’t combine it with diffuse/basecolor because it is only supposed to be used when evaluating certain lamps.