The concept
AO means Ambient Occlusion. It’s the occlusion of ambient light
(light coming from all directions). Think for example the space between two objects that are close. Because of that, it’s more difficult that light rays coming from all directions reach that space. More examples: the bottom of a drawer, the cavities of an object, …
The AO map
Because ambient occlusion doesn’t depend on light direction, it can
be precalculated for an object. This leads to the AO map, a grey color texture that models how much each tiny surface area occludes ambient light. It’s not the same as a normal map, which models how each tiny surface area is oriented.
The techniques
In older engines, the AO map was baked in the diffuse map, which lead to faster rendering but less accurate lighting. In a modern engine, the AO map is used in conjuntion with the other maps when rendering the object. But the AO map only models ambient occlusion within the geometry of an object. We need to complement AO maps with a technique that renders inter-object ambient occlusion. Here comes SSAO.
Screen Space Ambient Occlusion
SSAO is currently one of the best techniques for real-time middle-scale ambient occlusion because of its performance/quality ratio. It works in screen space, which means that ambient occlusion is calculated over the final rendered image. This is why it’s fast, but this is also why it’s one of the most fake techniques and so it has its detractors.
My screenshots just showcase SSAO in my engine with the vanilla NWN2 assets. Because the original assets don’t have AO map, I can only showcase SSAO alone. My engine supports AO maps, so new assets for my engine could use them.
@krighaur: What do you not like about the last screenshot?