En los gráficos , el modelado y la animación por ordenador en 3D , la oclusión ambiental es una técnica de sombreado y renderizado que se utiliza para calcular el grado de exposición de cada punto de una escena a la iluminación ambiental . Por ejemplo, el interior de un tubo suele estar más ocluido (y, por tanto, más oscuro) que las superficies exteriores expuestas, y se vuelve más oscuro cuanto más se profundiza en el interior del tubo.
La oclusión ambiental puede verse como un valor de accesibilidad que se calcula para cada punto de la superficie. [1] En escenas con cielo abierto, esto se hace estimando la cantidad de cielo visible para cada punto, mientras que en entornos interiores, solo se tienen en cuenta los objetos dentro de un cierto radio y se supone que las paredes son el origen de la luz ambiental. El resultado es un efecto de sombreado difuso y no direccional que no proyecta sombras claras, sino que oscurece las áreas cerradas y protegidas y puede afectar el tono general de la imagen renderizada. A menudo se utiliza como un efecto de posprocesamiento .
A diferencia de los métodos locales como el sombreado Phong , la oclusión ambiental es un método global, lo que significa que la iluminación en cada punto es una función de otra geometría en la escena. Sin embargo, es una aproximación muy rudimentaria a la iluminación global completa . La apariencia que se logra solo con la oclusión ambiental es similar a la forma en que un objeto podría verse en un día nublado .
El primer método que permitió simular la oclusión ambiental en tiempo real fue desarrollado por el departamento de investigación y desarrollo de Crytek ( CryEngine 2 ). [2] Con el lanzamiento de hardware capaz de trazado de rayos en tiempo real ( serie GeForce 20 ) por parte de Nvidia en 2018, la oclusión ambiental con trazado de rayos (RTAO) se hizo posible en juegos y otras aplicaciones en tiempo real. [3] Esta característica se agregó al Unreal Engine con la versión 4.22. [4]
En ausencia de oclusión ambiental trazada por rayos asistida por hardware , las aplicaciones en tiempo real como los juegos de computadora pueden usar técnicas de oclusión ambiental del espacio de pantalla (SSAO), como la oclusión ambiental basada en el horizonte, incluida la HBAO y la oclusión ambiental de verdad fundamental (GTAO) como una aproximación más rápida de la oclusión ambiental real, utilizando la profundidad por píxel , en lugar de la geometría de la escena, para formar un mapa de oclusión ambiental .
La oclusión ambiental está relacionada con el sombreado de accesibilidad, que determina la apariencia en función de la facilidad con la que una superficie puede ser tocada por diversos elementos (por ejemplo, suciedad, luz, etc.). Se ha popularizado en la animación de producción debido a su relativa simplicidad y eficiencia.
El modelo de sombreado de oclusión ambiental ofrece una mejor percepción de la forma 3D de los objetos visualizados. Esto se demostró en un artículo en el que los autores informan los resultados de experimentos perceptivos que muestran que la discriminación de profundidad bajo una iluminación difusa y uniforme del cielo es superior a la predicha por un modelo de iluminación directa. [5]
La oclusión en un punto de una superficie con normal se puede calcular integrando la función de visibilidad sobre el hemisferio con respecto al ángulo sólido proyectado:
donde es la función de visibilidad en , definida como cero si está ocluida en la dirección y uno en caso contrario, y es el paso de ángulo sólido infinitesimal de la variable de integración . En la práctica, se utilizan diversas técnicas para aproximar esta integral: quizás la forma más sencilla es utilizar el método de Monte Carlo proyectando rayos desde el punto y probando la intersección con otra geometría de la escena (es decir, proyección de rayos ). Otro enfoque (más adecuado para la aceleración de hardware) es renderizar la vista desde rasterizando la geometría negra contra un fondo blanco y tomando el promedio (ponderado por coseno) de los fragmentos rasterizados. Este enfoque es un ejemplo de un enfoque de "recolección" o "de adentro hacia afuera", mientras que otros algoritmos (como la oclusión ambiental de mapa de profundidad) emplean técnicas de "dispersión" o "de afuera hacia adentro".
Además del valor de oclusión ambiental, a menudo se genera un vector de "normal doblada", que apunta en la dirección promedio de las muestras ocluidas. La normal doblada se puede utilizar para buscar la radiancia incidente de un mapa del entorno para aproximar la iluminación basada en imágenes . Sin embargo, hay algunas situaciones en las que la dirección de la normal doblada es una representación errónea de la dirección dominante de la iluminación, por ejemplo,
En este ejemplo, la luz puede llegar al punto p sólo desde el lado izquierdo o derecho, pero la normal curvada apunta al promedio de esas dos fuentes, que está directamente hacia la obstrucción.
En 2010, Hayden Landis, Ken McGaugh y Hilmar Koch recibieron un Premio de la Academia Científica y Técnica por su trabajo en la representación de oclusión ambiental. [7]