I've been experimenting a new idea for faster SSAO. To keep it short, it's a post-processing effect that only requires the depth/distance buffer. The depth buffer is blurred in a smart way ( the amount of blur is determined per-pixel, depending on the absolute depth difference between the pixel and its neighboors ), then subtracted from the original depth. This gives a value that can be scaled to get an ambient occlusion term, then used to modulate the scene buffer.
There are many advantages over the previous SSAO effect:
- much faster
- less noise artifacts
- only requires depth, not normals
At the moment I'm using a two-pass separate gaussian blur with 17 samples. It's possible to increase the performance even more than downsampling the depth buffer to 1/4th of its area and reducing the blur to 9 samples.
The SSAO effect is subtle, but works well on the Bellerophon. It's especially nice on the shadowed areas.
Bellerophon
SPECTRE has pretty much finished the Bellerophon, with the help of Eleandor for mesh fixes. I spent an hour to texture it with SpAce's texture pack. Nothing very advanced, simply box/planet mapping and drag & dropping materials over selected triangles. The result looks a bit repetitive, but it's already nice IMO.
Wide-screen 2 monitors views:
This is the SSAO buffer term:
Single monitor view:
I've also produced a video of it:
http://www.infinity-universe.com/Infinity/Media/Videos/bellerophon.avi ( 25 MB Divx 5 ). Note that it was taken in wide screen ( 1600 x 640 ), so while pretty high quality, it caused FRAPS to slow down a bit regularly ( gotta write all the uncompressed data to the hard drive in real-time, heh ! ).
Same video, with extremely poor quality, is also available on youtube:
Finally, random pictures can be seen here in full res:
http://www.infinity-universe.com/Infinity/Media/Screenshots/bellerophon1.jpg
http://www.infinity-universe.com/Infinity/Media/Screenshots/bellerophon2.jpg
http://www.infinity-universe.com/Infinity/Media/Screenshots/bellerophon3.jpg
http://www.infinity-universe.com/Infinity/Media/Screenshots/bellerophon4.jpg
http://www.infinity-universe.com/Infinity/Media/Screenshots/bellerophon5.jpg
http://www.infinity-universe.com/Infinity/Media/Screenshots/bellerophon6.jpg
http://www.infinity-universe.com/Infinity/Media/Screenshots/bellerophon7.jpg
http://www.infinity-universe.com/Infinity/Media/Screenshots/bellerophon8.jpg
Planetary engine:
In other news, I've also resumed work on the planetary engine. There are so many things to fix that I don't know where to start, but I'm soon in vacation, and I'd like this part to be considered done before January. I'm currently experimenting terrain texturing, but in random order I also have to fix z-fighting problems with the ocean surface, improve geomorphing, optimize a bit, etc..
Jack