Screen Space Ambient Occlusion

Screen Space Ambient Occlusion ( SSAO ) is a rendering technique in computer graphics for the efficient approximation of the effect of the commonly used " Ambient Occlusion " in real time. It was developed by Vladimir Kajalin during his work at Crytek, and was for the first time in 2007 in Crysis, a video game developed by Crytek for Microsoft Windows used.

Implementation

The algorithm is implemented as a pixel shader, by analyzing the depth buffer of a scene, which are stored in a texture. For each pixel on the screen, a pixel shader scans the depth values ​​for a pixel from around, trying to calculate the relevant amount of occlusion of the sampled points. In its simplest implementation, the occlusion ( concealment ) factor is calculated only on the basis of the difference in depth values ​​between the sampled point and the current point.

Without additional intelligent solutions should contain such a brute- force method for acceptable image quality about 200 times each calculated pixel texture data read. This is not acceptable for real-time rendering in the current state of graphics hardware. In order to get good results with far less access to the texture data, the sampling is done by a randomly rotating kernel. Kernel orientation all N display pixels repeated to limit the noise in the final image to a high-frequency noise. Subsequently, this high frequency noise is ( with methods for example, the normals to compare with the neighboring pixels with the corresponding depth values ​​) mostly removed by a NxN post-processing (blur) to account for any interruptions or disturbances in the depths of values. Such methods reduce the number of low- value samples of pixels to about 16 per pixel or less, and still have very good Bildqualitiät. Only through these methods can software side SSAO in real-time applications (eg computer games) are used.

In comparison to other ambient occlusion methods SSAO has the following advantages:

  • It works regardless of the complexity of the scene.
  • The data need not be prepared, there is no additional load times and no memory allocation in the system memory.
  • Works with dynamic scenes.
  • Works for every pixel on the screen in the same consistent manner.
  • No CPU usage - the procedure can be performed entirely by the GPU.
  • Is it relatively easy to integrate into any modern graphics pipeline.

This method also has some disadvantages:

  • The calculation is reduced to a small area, and the result in many cases of the respective view -dependent, since the result of SSAO is solely dependent on the respective adjacent texel depths, completely without any consideration of the geometry and other factors of objects.
  • It is difficult to remove the blurring the high frequency noise without compromising depth discontinuities, such as edges of objects (the effect was not "bleed " in other properties).
719387
de