Ambient occlusion
Encyclopedia
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
. Ambient occlusion attempts to approximate the way light radiates in real life, especially off what are normally considered non-reflective surfaces.
Unlike local methods like Phong shading
, ambient occlusion is a global method, meaning the illumination at each point is a function of other geometry in the scene. However, it is a very crude approximation to full global illumination
. The soft appearance achieved by ambient occlusion alone is similar to the way an object appears on an overcast day.
Ambient occlusion is related to accessibility shading, which determines appearance based on how easy it is for a surface to be touched by various elements (e.g., dirt, light, etc.). It has been popularized in production animation due to its relative simplicity and efficiency. In the industry, ambient occlusion is often referred to as "sky light".
The ambient occlusion shading model has the nice property of offering a better perception of the 3d shape of the displayed objects. This was shown in a paper where the authors report the results of perceptual experiments showing that depth discrimination under diffuse uniform sky lighting is superior to that predicted by a direct lighting model.
The occlusion at a point on a surface with normal can be computed by integrating the visibility function over the hemisphere with respect to projected solid angle:
where is the visibility function at , defined to be zero if is occluded in the direction and one otherwise, and is the infinitesimal solid angle
step of the integration variable . A variety of techniques are used to approximate this integral in practice: perhaps the most straightforward way is to use the Monte Carlo method
by casting rays from the point and testing for intersection with other scene geometry (i.e., ray casting
). Another approach (more suited to hardware acceleration) is to render the view from by rasterizing black geometry against a white background and taking the (cosine-weighted) average of rasterized fragments. This approach is an example of a "gathering" or "inside-out" approach, whereas other algorithms (such as depth-map ambient occlusion) employ "scattering" or "outside-in" techniques.
In addition to the ambient occlusion value, a "bent normal" vector is often generated, which points in the average direction of unoccluded samples. The bent normal can be used to look up incident radiance
from an environment map to approximate image-based lighting. However, there are some situations in which the direction of the bent normal is a misrepresentation of the dominant direction of illumination, e.g.,
In this example, light may reach the point p only from the left or right sides, but the bent normal points to the average of those two sources, which is, unfortunately, directly toward the obstruction.
3D computer graphics
3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...
which helps add realism to local reflection models by taking into account attenuation
Attenuation
In physics, attenuation is the gradual loss in intensity of any kind of flux through a medium. For instance, sunlight is attenuated by dark glasses, X-rays are attenuated by lead, and light and sound are attenuated by water.In electrical engineering and telecommunications, attenuation affects the...
of light due to occlusion
Hidden surface determination
In 3D computer graphics, hidden surface determination is the process used to determine which surfaces and parts of surfaces are not visible from a certain viewpoint...
. Ambient occlusion attempts to approximate the way light radiates in real life, especially off what are normally considered non-reflective surfaces.
Unlike local methods like Phong shading
Phong shading
Phong shading refers to an interpolation technique for surface shading in 3D computer graphics. It is also called Phong interpolation or normal-vector interpolation shading. Specifically, it interpolates surface normals across rasterized polygons and computes pixel colors based on the interpolated...
, ambient occlusion is a global method, meaning the illumination at each point is a function of other geometry in the scene. However, it is a very crude approximation to full global illumination
Global illumination
Global illumination is a general name for a group of algorithms used in 3D computer graphics that are meant to add more realistic lighting to 3D scenes...
. The soft appearance achieved by ambient occlusion alone is similar to the way an object appears on an overcast day.
Method of implementation
Ambient occlusion is most often calculated by casting rays in every direction from the surface. Rays which reach the background or “sky” increase the brightness of the surface, whereas a ray which hits any other object contributes no illumination. As a result, points surrounded by a large amount of geometry are rendered dark, whereas points with little geometry on the visible hemisphere appear light.Ambient occlusion is related to accessibility shading, which determines appearance based on how easy it is for a surface to be touched by various elements (e.g., dirt, light, etc.). It has been popularized in production animation due to its relative simplicity and efficiency. In the industry, ambient occlusion is often referred to as "sky light".
The ambient occlusion shading model has the nice property of offering a better perception of the 3d shape of the displayed objects. This was shown in a paper where the authors report the results of perceptual experiments showing that depth discrimination under diffuse uniform sky lighting is superior to that predicted by a direct lighting model.
The occlusion at a point on a surface with normal can be computed by integrating the visibility function over the hemisphere with respect to projected solid angle:
where is the visibility function at , defined to be zero if is occluded in the direction and one otherwise, and is the infinitesimal solid angle
Solid angle
The solid angle, Ω, is the two-dimensional angle in three-dimensional space that an object subtends at a point. It is a measure of how large that object appears to an observer looking from that point...
step of the integration variable . A variety of techniques are used to approximate this integral in practice: perhaps the most straightforward way is to use the Monte Carlo method
Monte Carlo method
Monte Carlo methods are a class of computational algorithms that rely on repeated random sampling to compute their results. Monte Carlo methods are often used in computer simulations of physical and mathematical systems...
by casting rays from the point and testing for intersection with other scene geometry (i.e., ray casting
Ray casting
Ray casting is the use of ray-surface intersection tests to solve a variety of problems in computer graphics. It enables spatial selections of objects in ascene by providing users a virtual beam as a visual cue extending...
). Another approach (more suited to hardware acceleration) is to render the view from by rasterizing black geometry against a white background and taking the (cosine-weighted) average of rasterized fragments. This approach is an example of a "gathering" or "inside-out" approach, whereas other algorithms (such as depth-map ambient occlusion) employ "scattering" or "outside-in" techniques.
In addition to the ambient occlusion value, a "bent normal" vector is often generated, which points in the average direction of unoccluded samples. The bent normal can be used to look up incident radiance
Radiance
Radiance and spectral radiance are radiometric measures that describe the amount of radiation such as light or radiant heat that passes through or is emitted from a particular area, and falls within a given solid angle in a specified direction. They are used to characterize both emission from...
from an environment map to approximate image-based lighting. However, there are some situations in which the direction of the bent normal is a misrepresentation of the dominant direction of illumination, e.g.,
In this example, light may reach the point p only from the left or right sides, but the bent normal points to the average of those two sources, which is, unfortunately, directly toward the obstruction.
Awards
In 2010, Hayden Landis, Ken McGaugh and Hilmar Koch were awarded a Scientific and Technical Academy Award for their work on ambient occlusion rendering.See also
- Global illuminationGlobal illuminationGlobal illumination is a general name for a group of algorithms used in 3D computer graphics that are meant to add more realistic lighting to 3D scenes...
- Photon mappingPhoton mappingIn computer graphics, photon mapping is a two-pass global illumination algorithm developed by Henrik Wann Jensen that solves the rendering equation. Rays from the light source and rays from the camera are traced independently until some termination criterion is met, then they are connected in a...
- Radiosity
- Ray tracing
- Reflection occlusion
- Screen Space Ambient OcclusionScreen Space Ambient OcclusionScreen Space Ambient Occlusion is a rendering technique for efficiently approximating the well-known computer graphics ambient occlusion effect in real time...
- CountershadingCountershadingCountershading, or Thayer's Law, is a form of camouflage. Countershading, in which an animal’s pigmentation is darker dorsally, is often thought to have an adaptive effect of reducing conspicuous shadows cast on the ventral region of an animal’s body...
External links
- Depth Map based Ambient Occlusion
- NVIDIA's accurate, real-time Ambient Occlusion Volumes
- Assorted notes about ambient occlusion
- Ambient Occlusion Fields — real-time ambient occlusion using cube maps
- PantaRay ambient occlusion used in the movie Avatar
- Fast Precomputed Ambient Occlusion for Proximity Shadows real-time ambient occlusion using volume textures
- Dynamic Ambient Occlusion and Indirect Lighting a real time self ambient occlusion method from Nvidia's GPU Gems 2 book
- GPU Gems 3 : Chapter 12. High-Quality Ambient Occlusion
- ShadeVis an open source tool for computing ambient occlusion
- xNormal A free normal mapper/ambient occlusion baking application
- 3dsMax Ambient Occlusion Map Baking Demo video about preparing ambient occlusion in 3dsMax