So, i'm currently on a quest of finding a realtime world-space Ambient Occlusion algorithm for a game i'm making. (Or at least check if it's feasible. I wanted to avoid baking AO/lightmaps in a mapeditor as i would like to avoid storing lightmap data in my levelfiles in order to reduce the filesize as much as possible and avoid expensive/long precomputations in the first place.)
Now, i stumbled upon an AO concept which works by using multiple shadowmaps which are placed on the skys hemishpere and then merged together to create the Ambient Occlusion effect.
Here is an old example/demo from nvidia:
http://developer.download.nvidia.com/SDK/9.5/Samples/samples.html#ambient_occlusion
I was able to find a video which shows this in action:
It seems to work rather well, although i can see a couple issues with it:
- Rendering multiple shadowmaps is expensive (though that's expected with realtime AO)
- As shadows are only cast from the top, every surface which is pointing downwards will be 100% in shadow/black. (normally such a surface would have a bit of light around the edges due to the light bouncing around. It works best for surfaces facing upwards/towards the sky.)
- Flickering can be an issue if the shadowmap is covering a large scene/area or if the resolution of the shadowmap is too low. (could be fixed?)
It's incredibely hard to find information on this technique on the internet. (either demos, implementation/improvement details, etc...). I suppose because it's not that widely used?
Did anybody implement AO in a similar style like this? Are there any known sources which are covering this technique in more detail?