Cycles, ambient occlusion that doesn't emit light?

Hi

Is there any way to make ambient occlusion, which works in the more classical sense “make corners darker” instead of “ambient light emitter”.

In other words it would be multiplicative instead of additive.
The ambient occlusion option in cycles behaves in a strange way where the objects emit light onto others as any other sort of emitter except the corners do not emit light, which is very weird and can’t imagine a use for.

Any way to do this “corner shadowing” without using comp from blender internal ao?

Well, cycles can do a AO layer aswell instead of switching back to blender internal for the ao pass, which is computed at the same time as normal render, but in terms of what you are wanting to do, no it isnt possible… if you want to use the BSDF AO shader, and have the AO not emit light by plugging in the camera ray (light path) into the color…

But, what you are wanting is to multiply… and this isnt supported under mixing materials in cycles. I am not sure if it ever will because no material is ever made up like that. AO is a cheat for global illumination. you shouldnt need to use both GI and AO in the same renders…

Pretty much, use comp if you want to achieve the multiplying effect…

Thanks, I didn’t remember cycles had the seperate AO pass behaving differently.
Btw, for others, it takes the distance setting from the world ambient occlusion setting even if not activated.

Personally I use AO like that as a trick for enhancing details and corners. Especially useful for boring architectural shapes, where otherwise the corners would not be visible.
It is of course not real but some people (ie architects) like their shapes to show up in the picture, in some cases the artificial effect will not be detectable but enough emphasize the image detail and shapes.

Edit, I wonder in the future we may be able to render and comp at the same time, then we could use the effects like this and other comp effects as part of the render immediately.

Having some sort of AO texture would be also useful for driving dirt shaders… There is another way i just remembered… if you select the object, go into vertex paint mode, go down the bottom to paint > Dirty vertex colours, that will give you a vertex based AO solution… then you can use this in cycles

This isnt hte most accurate of ways to do this, as it is on a per-vertex basis and doesn’t interact with other objects… but it is a workaround

1 Like