Screen space ambient occlusion (SSAO) is a rendering technique for efficiently approximating the computer graphics ambient occlusion effect in real time. It was developed by Vladimir Kajalin while working at Crytek and was used for the first time in 2007 by the video game Crysis, developed by Crytek and published by Electronic Arts.
The algorithm is implemented as a pixel shader, analyzing the scene depth buffer which is stored in a texture. For every pixel on the screen, the pixel shader samples the depth values around the current pixel and tries to compute the amount of occlusion from each of the sampled points. In its simplest implementation, the occlusion factor depends only on the depth difference between sampled point and current point.
Without additional smart solutions, such a brute force method would require about 200 texture reads per pixel for good visual quality. This is not acceptable for real-time rendering on current graphics hardware. In order to get high quality results with far fewer reads, sampling is performed using a randomly rotated kernel. The kernel orientation is repeated every N screen pixels in order to have only high-frequency noise in the final picture. In the end this high frequency noise is greatly removed by a NxN post-process blurring step taking into account depth discontinuities (using methods such as comparing adjacent normals and depths). Such a solution allows a reduction in the number of depth samples per pixel to about 16 or fewer while maintaining a high quality result, and allows the use of SSAO in soft real-time applications like computer games.
Tomorrow's coming 'round
A hair-pin curve in the road
She's got a run in her stocking
And she's missing the heel of her shoe
Got up this morning rolled out of bed
I spilled a diet coke
Called my mother said, "Hi"
What I meant to say was, "Why is your life a joke?"
Then, I went down to that ugly bar and
I clicked my heels three times just like you said
And I climbed that road to your empty house
The anticipation was a turn on
But you let me down
'Coz, I stood on that empty street alone
I said, "I'm ready for my close up now, Mr. Demille"
I waited for the light, but it never shone
Well I wonder what you do with that expensive piece of land
That overlooks a billion years of history
I have a sneaking suspicion, you will never understand
Hey maybe I'll see you down by the Rocky and Bullwinkle
And we can talk to that charlatan psychic
And she can paint a prettier picture of your future
'Coz that day in my life, that day in my life
I dreamt tomorrow, had a prettier face
I dreamt tomorrow, would have better things to say
Than, "You look like shit, what's your problem, bitch?
You're legs feel like sandpaper, you can't do anything right"
'Coz that day, never should have taken place
'Coz this day, in my life still cannot explain
Why I listened in the first place to you?
Oh yeah, something else
I hope one day you call up your father
And you have the guts to tell him, how he hurt you
And he made you hurt another