Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Ambient occlusion
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Implementation== [[File:Efecto de la oclusión ambiental.ogg|thumbnail|3D animation of ambient occlusion enabled on the animation to the right]] In the absence of hardware-assisted [[Ray tracing (graphics)|ray traced]] ambient occlusion, [[real-time computer graphics|real-time]] applications such as computer games can use [[screen space ambient occlusion]] (SSAO) techniques such as [[horizon-based ambient occlusion]] including HBAO and [[ground-truth ambient occlusion]] (GTAO) as a faster approximation of true ambient occlusion, using [[Z-buffering|per-pixel depth]], rather than scene geometry, to form an ambient occlusion [[Associative array|map]]. 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. The ambient occlusion shading model offers 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.<ref>{{cite journal|doi=10.1068/p3060|title=Depth discrimination from shading under diffuse lighting|first=M.S.|last=Langer|author2=H. H. Buelthoff|journal=Perception|volume=29|issue=6|pages=649–660|year=2000|pmid=11040949|citeseerx=10.1.1.69.6103|s2cid=11700764 }}</ref> The occlusion <math>A_\bar p</math> at a point <math>\bar p</math> on a surface with normal <math>\hat n</math> can be computed by integrating the visibility function over the hemisphere <math>\Omega</math> with respect to projected solid angle: {{center| <math> A_\bar p = \frac{1}{\pi} \int_{\Omega} V_{\bar p,\hat\omega} (\hat n \cdot \hat\omega ) \, \operatorname{d}\omega </math> }} where <math>V_{\bar p,\hat\omega}</math> is the visibility function at <math>\bar p</math>, defined to be zero if <math>\bar p</math> is occluded in the direction <math>\hat\omega</math> and one otherwise, and <math>\operatorname{d}\omega</math> is the infinitesimal [[solid angle]] step of the integration variable <math>\hat\omega</math>. 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 <math>\bar p</math> 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 <math>\bar p</math> by [[Rasterisation|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 <math>\hat{n}_b</math> is often generated, which points in the average direction of occluded 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., [[Image:Aocclude bentnormal.png|thumb|center|400px|In this example the bent normal N<sub>b</sub> has a direction that does not allow it to illuminate the scene as it is pointing at an occluded surface.]] 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 directly toward the obstruction. ===Variants=== * [[Screen space ambient occlusion]] (SSAO) * [[Screen space directional occlusion]] (SSDO) * [[Ray-traced ambient occlusion]] (RTAO) * High Definition Ambient Occlusion (HDAO) * Horizon Based Ambient Occlusion+ (HBAO) * Alchemy Ambient Occlusion (AAO) * Angle Based Ambient Occlusion (ABAO) * Pre Baked Ambient Occlusion (PBAO) * Voxel Accelerated Ambient Occlusion (VXAO) * Ground Truth based Ambient Occlusion (GTAO)<ref>{{cite web|title=Practical Realtime Strategies for Accurate Indirect Occlusion|url=http://iryoku.com/downloads/Practical-Realtime-Strategies-for-Accurate-Indirect-Occlusion.pdf}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)