Ambient occlusion has been invented by ILM for Pearl Harbour and Jurrassic Park 4. It works by examining the scene from the point of view of each pixel; casting rays in a quasi-random pattern and checking if they hit anything and how far that other piece of geometry is. Summing up the results will tell you how much of the ambient (diffused) light from the scenery is blocked - occluded - out.
ILM has rendered the occlusion of each surface point into a separate pass - a render target if you will - and multiplied it with the pass containing the ambient lighting for the object. In CGI ambient lighting is usually constant throughout the entire scene so it tends to wash out shading detail and make objects look flat. Combined with AO it has changed dramatically and presented pretty cool results already; but ILM also combined it with changing the constant value to a spherical enviroment map. For movie VFX, this means that they photograph a chrome sphere on the set that reflects 99% of the enviroment, and thus they can extract practically all the lighting information of the real-world shooting location.
Another interesting technique is to manipulate the surface normal that they use for the enviroment map lookup in the lighting; kind of bending it based on the occlusion of the surface, into the direction where most of the light should be coming towards that surface point. Like, even though your surface is facing upwards, if it only gets ligh from the sides then it makes sense to modify your enviroment lookup to reflect this in the color and intensity of the incoming light.
AO has usually two main frequencies of detail: one is the result of large objects interacting with each other, like a character casting very soft 'contact shadows' to the ground around its legs, or the two legs occluding the crotch area and the inner sides of the thighs. This effect really helps to integrate objects into an enviroment.
The other part is the small surface details, like various pieces of equipment casting soft shadows on the clothing, or soft darkening effects on very rough surfaces in the cracks and other cavities.
For realtime applications, there's been a Microsoft research publication that replaced/approximated objects with spheres and created some low frequency soft shadows that looked quite good actually. It's obviously not as precise and detailed as real, raytraced AO, but it's probably very fast compared to that. I'll try to look up this presentation, I have the video on my computer somewhere.
Using this method objects could have a kind of an occlusion effect on the enviroments, though they obviously can't effect themselves. A part of the self-occlusion can be painted into the textures, it'll be static but it'll still have some effect.
Splinter Cell seems to be using this technique, combined with some sort of dynamic enviroment maps for the ambient lighting where they can render bright objects into the ambient sphere/cubemap. Rough approximation but it should work.
Another interesting thing is that Crysis seems to be using the 'bent normals' technique for the enviroment lighting.
ILM has rendered the occlusion of each surface point into a separate pass - a render target if you will - and multiplied it with the pass containing the ambient lighting for the object. In CGI ambient lighting is usually constant throughout the entire scene so it tends to wash out shading detail and make objects look flat. Combined with AO it has changed dramatically and presented pretty cool results already; but ILM also combined it with changing the constant value to a spherical enviroment map. For movie VFX, this means that they photograph a chrome sphere on the set that reflects 99% of the enviroment, and thus they can extract practically all the lighting information of the real-world shooting location.
Another interesting technique is to manipulate the surface normal that they use for the enviroment map lookup in the lighting; kind of bending it based on the occlusion of the surface, into the direction where most of the light should be coming towards that surface point. Like, even though your surface is facing upwards, if it only gets ligh from the sides then it makes sense to modify your enviroment lookup to reflect this in the color and intensity of the incoming light.
AO has usually two main frequencies of detail: one is the result of large objects interacting with each other, like a character casting very soft 'contact shadows' to the ground around its legs, or the two legs occluding the crotch area and the inner sides of the thighs. This effect really helps to integrate objects into an enviroment.
The other part is the small surface details, like various pieces of equipment casting soft shadows on the clothing, or soft darkening effects on very rough surfaces in the cracks and other cavities.
For realtime applications, there's been a Microsoft research publication that replaced/approximated objects with spheres and created some low frequency soft shadows that looked quite good actually. It's obviously not as precise and detailed as real, raytraced AO, but it's probably very fast compared to that. I'll try to look up this presentation, I have the video on my computer somewhere.
Using this method objects could have a kind of an occlusion effect on the enviroments, though they obviously can't effect themselves. A part of the self-occlusion can be painted into the textures, it'll be static but it'll still have some effect.
Splinter Cell seems to be using this technique, combined with some sort of dynamic enviroment maps for the ambient lighting where they can render bright objects into the ambient sphere/cubemap. Rough approximation but it should work.
Another interesting thing is that Crysis seems to be using the 'bent normals' technique for the enviroment lighting.