Ambient occlusion

Ambient Occlusion (English Ambient Occlusion, AO ) is a shading method used in 3D computer graphics in order to achieve a realistic shading of scenes with relatively short render time. The result is not physically correct, but reaches into his realism often, to dispense with compute-intensive global illumination can.

Ambient Occlusion is calculated in addition to the conventional shading with Phong shading or similar algorithms. The result of the AO calculation is simply multiplied as a grayscale image with the conventional rendering result. This can be done directly when rendering or only in post processing. An image that was calculated using ambient occlusion, similar to the lighting situation a cloudy day - extremely diffuse shading are the main feature.

Operation

Ambient Occlusion is based on the observation that, in crevices and corners normally predominates a lower illuminance, which is mainly due to the numerous diffuse reflections that occur at these constrictions. Ambient Occlusion is supported by most render engines in the form of a shader or as a global effect.

The Ambient Occlusion method is based on the fundamental assumption that an object, a set of objects or a whole scene is surrounded by a unit ball of light. Incoming light can thus be blocked only by means of self- concealment by these geometry or decreased as a percentage. There are two parameters for each measuring point are calculated as follows: The percentage degree of occlusion, and the so-called Bent normal that points in the direction of the lowest percentage of occlusion. The Bent Normal can later be used for advanced lighting simulations, eg in the light transfer Irradiance Environment Maps.

Calculation of the parameters

The required to calculate the above two parameters approach can again be divided into two basic classes: The Inside-Out method represent the classical approach to calculating dar. Here, measurement from the point rays sent over the hemisphere and checked for collision with the object itself. The performance by the beam in the direction of a part of the geometry together, there can be no light from this direction arrive at the point. The opposite is the case, then the beam can continue on its way without hindrance. If this ratio by a visibility function that which takes the value 0, otherwise 1 in the case of concealment, so that the degree of occlusion is calculated by integrating the visibility function over the hemisphere of the point with normal n

This function can be implemented by Monte Carlo integration over a simple ray tracer. Averaging all the rays that were not obscured by geometry and get simultaneously the Bent -Normal. It should be noted that the Bent -Normal is not necessarily correct: Special situations may lead to the concealment of a point bisecting the transparent part of the hemisphere. In this case, there is no clear direction of the lowest masking.

The second class determining ambient occlusion parameters form the outside-in process. Here the object from the outside is considered. It is the point centered and the object rotated by random angles and space. On the OpenGL extension ARB_Occlusion_Query which counts the number of fragments in the final image of an object, the visibility of the point can be determined. Heard of randomly chosen solid angle hemisphere to the point, the visibility function can be implemented and used on enlargement. Again, it may be calculated a good approximation by Monte Carlo integration over a sufficient number of samples.

Static and Dynamic Ambient Occlusion

As the result of the masking process is environment independent of the position of the light sources, it can be used for static geometry both in rendered images as in real time applications such as computer games.

Should it, however, be dynamic geometry, which can take at runtime unpredictable positions and shapes (in contrast to key -frame animation ), the calculation must be greatly accelerated to meet real-time requirements of an application needs. Various elaborations on this topic exist for the AO simulation of individual objects. However, If you have several objects also can shade each other, so all objects must be simultaneously considered in the calculation. Since this effort for current graphics accelerator is too high, an approximation is proposed that the AO parameters for the environment of an object precomputed and stored in cubemaps. These are read in at run time of a collision between objects and transmitted to the AO- parameters of the colliding object.

791454
de