Screen Space Ambient Occlusion

Screen Space Ambient Occlusion

Screen Space Ambient Occlusion (SSAO) is a rendering technique for efficiently approximating the well-known computer graphics ambient occlusion effect in real-time. It was used for the first time in a video game in the 2007 PC game Crysis.Fact|date=June 2008

The algorithm is executed purely on the computer's GPU and 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 modern 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 "N"x"N" 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 less while maintaining a high quality result, and basically allows the use of SSAO in real-time applications like computer games.

Compared to other ambient occlusion solutions, SSAO has following advantages:
* Independent from scene complexity.
* No data pre-processing needed, no loading time and no memory allocations in system memory.
* Works with dynamic scenes.
* Works in the same consistent way for every pixel on the screen.
* No CPU usage – it is executed completely on the GPU.
* May be easily integrated into any modern graphics pipeline.Of course, it has its disadvantages, as well:
* Rather local and in many cases view-dependent, as it is dependent on adjacent texel depths which may be generated by any geometry whatsoever.
* Hard to correctly smooth/blur out the noise without interfering with depth discontinuities, such as object edges (the occlusion should not "bleed" onto objects).

ee also

*Ambient occlusion
*CryEngine 2
*Crysis
*Leadwerks Engine
*

External links

* [http://delivery.acm.org/10.1145/1290000/1281671/p97-mittring.pdf?key1=1281671&key2=9942678811&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618 Finding Next Gen – CryEngine 2]
* [http://video.google.com/videoplay?docid=-2592720445119800709&hl=en Video showing SSAO in action]
* [http://graphics.uni-konstanz.de/publikationen/2006/unsharp_masking/Luft%20et%20al.%20--%20Image%20Enhancement%20by%20Unsharp%20Masking%20the%20Depth%20Buffer.pdf Image Enhancement by Unsharp Masking the Depth Buffer]
* [http://perumaal.googlepages.com/ Hardware Accelerated Ambient Occlusion Techniques on GPUs]
* [http://meshula.net/wordpress/?p=145 Overview on Screen Space Ambient Occlusion Techniques]
* [http://developer.download.nvidia.com/presentations/2008/GDC/GDC08_Ambient_Occlusion.pdf Real-Time Depth Buffer Based Ambient Occlusion]


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Screen Space Ambient Occlusion — (сокращённо SSAO; англ. преграждение окружающего света в экранном пространстве) программная техника (методика) в трёхмерной компьютерной графике, которая является приближенной имитацией глобального освещения и представляет собой изменённый и …   Википедия

  • Ambient occlusion — is a shading method used in 3D computer graphics which helps add realism to local reflection models by taking into account attenuation of light due to occlusion. Unlike local methods like Phong shading, ambient occlusion is a global method,… …   Wikipedia

  • Ambient occlusion — Использованы модели (сверху вниз): прямого освещения, Ambient occlusion (AO)и комбинированная модель AO и прямого освещения Ambient occlusion (AO)  модель затенения, используемая в трёхмерной графике и позволяющая добавить реалистичности… …   Википедия

  • Occlusion — may refer to: Occlusion (dentistry), the manner in which the upper and lower teeth come together when the mouth is closed Occlusion effect, an audio phenomenon that occurs when one closes the opening into the ear canal and the loudness of low… …   Wikipedia

  • CryEngine 2 — Игровой движок (Список) Официальный логотип движка …   Википедия

  • Leadwerks Engine — infobox software name = Leadwerks Engine developer = Leadwerks Software operating system = Windows XP,Windows Vista,Linux genre = Game engine latest release version = Version 2.1 latest release date = September 16, 2008 website =… …   Wikipedia

  • Окклюзия — (от лат. occlusio  сокрытие; англ. occlusion)  термин, который указывает на какое либо состояние, которое обычно открыто, а в определённый момент времени полностью закрыто. В медицине этот термин обозначает нарушение… …   Википедия

  • CryEngine 3 — A screenshot from the CryEngine 3 GDC 2009 presentation Dev …   Wikipedia

  • Warscape — Игровой движок (Список) Разработчик …   Википедия

  • Geo Mod 2 — Игровой движок (Список) Разработчик …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”