← Back to context

Comment by sudosysgen

4 years ago

The idea is, if the light is indirect or ambient, ambient occlusion will reduce indirect light. If the light is direct, then ambient occlusion will have no effect.

Which is exactly what you see in your picture of New York. If the corner is in direct light, then there is no difference from any other surface - or it is even more illuminated from radiance. If the corner is in indirect light, then yes, corners are less luminous.

It's not rare at all for corners to be darker in the real world. Compare a wide open, but shaded street, to a narrow alley. The alley will be much darker.

This is exactly the idea of modern AO with ray tracing. By raytracing AO, you can actually see how "open" each pixel is to the indirect light source. If the pixel is under direct light from some source, do not affect this component of illumination. If it is under indirect light from another source, be it the sky, or the walls, or some very large area light, reduce this indirect illumination.

So if the corner is directly lit by the sun, there is no darkening at all using RTAO and a PBR renderer.

It is indeed in the name. Occlude the ambient light component.

It's not a questions of "every shadow must be calculated". It's a question of approximating global illumination, or radiosity.