Facebook Twitter YouTube Frictional Games | Forum | Newsletter | Dev Blog | Dev Wiki | Support


Thread Closed 
Thomas, 2008-07-10, "SSAO"
Author Message
Thomas Offline
Frictional Games

Posts: 2,456
Joined: Apr 2006
Reputation: 44
Post: #1
Thomas, 2008-07-10, "SSAO"

I recently implemented SSAO which the acronym for "Screen Space Ambient Occlusion", which in turn is a way of simulating ambient occlusion in screen space.

Normally real time games only light that directly hits a surface is used in lighting calculations. However, in the real world light bounces of surfaces and interacts with the environment in a multitude of ways. Ambient occlusion is a way of simulating all this bouncing around by estimating how much light will be able to reach a point in the world. This was something only used in offline (non real time) rendering and only used in games as precalculated light maps or similar.

Now that graphical processors can crunch billions of calculations per second it is finally possible to try things like Ambient Occlusion in real time. The way it works is simply by using the depth map (which stores distance from screen to pixel) of the rendered scene and on a per pixel basis checking neighboring pixels if they are in front or behind the current. By doing this for enough pixels one can determine an occlusion value for the current pixel and use that as a value for the ambient occlusion.

Because ambient occlusion in itself is an approximation of a global lighting model, ssao is an approximation of an approximation. So in my approach I have tried to make it as nice and fast as possible and ignored trying to copy any proper formulas. The result is a quite fast algorithm that gives less then 20% drop in frame rate (at the time, still more things to imporove!) and gives a pretty nice results! It also allows the artists to skip alot of extra lights that have previously been added only to simulate ambient occlusion and might therefore even improve the frame rate in the end!

See below for an attached screenshot.
07-10-2008 01:36 PM
Find all posts by this user
WindexGlow Offline
Posting Freak

Posts: 1,108
Joined: Mar 2007
Reputation: -6
Post: #2
RE: Thomas, 2008-07-10, "SSAO"

Oh my, that is really cool. I realize that this is still a work in progress; but you will improve fine-ness right? You can see shadow-blocks on those balls!

Please -REP me.
Honestly, please do. I want to see how low I can go!!
Ignore that error message too. Just ignore it and keep going to give me -rep.
07-10-2008 01:44 PM
Find all posts by this user
Thomas Offline
Frictional Games

Posts: 2,456
Joined: Apr 2006
Reputation: 44
Post: #3
RE: Thomas, 2008-07-10, "SSAO"

Shadow smoothing is something that I will give more time later on.
07-10-2008 01:59 PM
Find all posts by this user
WindexGlow Offline
Posting Freak

Posts: 1,108
Joined: Mar 2007
Reputation: -6
Post: #4
RE: Thomas, 2008-07-10, "SSAO"

Btw, any luck with doing a "HPL1, HPL2 without SSAO, HPL2 with SSAO comparison pics?
Same scene, same angle, and the such? Would be cool to see how far you guys have gotten.

Please -REP me.
Honestly, please do. I want to see how low I can go!!
Ignore that error message too. Just ignore it and keep going to give me -rep.
07-10-2008 04:52 PM
Find all posts by this user
Thomas Offline
Frictional Games

Posts: 2,456
Joined: Apr 2006
Reputation: 44
Post: #5
RE: Thomas, 2008-07-10, "SSAO"

I'll see what we can do later. Would be fun to do once all features are in.
07-10-2008 05:26 PM
Find all posts by this user
IIPEE Offline
GameScraper.net

Posts: 3,214
Joined: Mar 2007
Reputation: 55
Post: #6
RE: Thomas, 2008-07-10, "SSAO"

Hmm... This looks good! Keep up the good work, Thomas! Smile
07-25-2008 01:01 AM
Visit this user's website Find all posts by this user
Thread Closed 




User(s) browsing this thread: 1 Guest(s)