What is Ambient Occlusion and what are some of it's uses? I see it is used in creating what might be called "shadow catchers" in the following node tree setup:
What is it?:
It is a way to make objects in a scene look more realistic. Ambient occlusion casts shadows where objects are close to each other. Note that it will also cast light where they are not. Ambient Occlusion is a fake light.
Note that in Cycles there is also a Ambient Occlusion Shader:
Ambient Occlusion enabled in the world panel.
Ambient Occlusion can make a big difference especially in the Blender Internal Render Engine. In cycles enabling Ambient Occlusion does not make a big difference in terms of realism because Cycles is already rendering with Global Illumination, which is physically correct Ambient Occlusion. So in cycles there often is no need for it whereas in the Blender Internal render engine it is very useful.
Basically, the closer some geometry is to other geometry, the darker it is rendered. Angle also seems to have an effect; nearby surfaces facing towards each other will render darker than nearby perpendicular surfaces (look closely at the first and second spheres).
It's often baked into a texture. This is especially useful for game assets, as AO does not take light sources into account (only proximity and angle of nearby geometry), and so remains more consistent as the object (or objects around it) is/are moving.
It's also useful in rendering/compositing to help add a little more depth/contrast:
I've attached an image that shows a model(in grey) and visualization(arrows and blue balls) for ray-casting to show how an ambient occlusion algorithm can be constructed.
The little blue spheres indicate the current area that is being tested. For each pixel of the texture map there would be one little blue sphere. The red arrows that are shooting of the blue spheres represent ray-trace tests.
Rays(red) are shot off in several directions from every pixel(blue), and for each ray that makes contact with the surface of the model; the pixel at that point will be darkened a little bit.
So basically; areas that are concave will have lots of ray intersections with the model and areas that are convex will have very few hits and this gives a lighting cue that helps the model to look more 3D.
If you hold up your hand with your fingers together, you will see that the areas between your fingers are darker than the surrounding areas. This is basically one of the things that AO, cavity, dirt mapping are all meant to simulate.
Also, they can be used to simulate dirt and corrosion that accumulates in recessed areas.
There are many ways to calculate this effect and basically the author of the particular method in question gets to name it and this is why you will see different names like AO, Cavity Mapping, Dirt Mapping.
They are all meant to give depth to a model, whether it be a lighting cue or dirt accumulation.
PS: Vertex Paint mode's Dirty Vertex Colors is probably not ray-tracing. It's likely a slope calculation which uses nearby vertices, if you want to know for sure then you'd have to look at the code or ask someone who has.