Ambient occlusion is a shading and rendering technique used in 3D computer graphics, modeling, and animation to calculate how exposed each point in a scene is to ambient lighting. It is a shadowing technique used to make 3D objects look more realistic by simulating the soft shadows that should naturally occur when indirect or ambient lighting is cast out onto a scene. Ambient occlusion can be seen as an accessibility value that is calculated for each surface point, and it is a global method, meaning that the illumination at each point is a function of other geometry in the scene. Unlike local methods such as Phong shading, ambient occlusion is a crude approximation to full global illumination. In the absence of hardware-assisted ray traced ambient occlusion, real-time applications such as computer games can use screen space ambient occlusion (SSAO) or horizon-based ambient occlusion (HBAO) as a faster approximation of true ambient occlusion, using per-pixel depth, rather than scene geometry, to form an ambient occlusion map. Ambient occlusion is used to soften the overall lighting in a scene if its too bright and to show subtle variations in lighting and help detect surface details that would otherwise be washed out or unnoticeable.