SAO

SSAO ( oclusión ambiental del espacio de pantalla en inglés  - obstrucción de la luz ambiental en el espacio de la pantalla ) es una técnica (método) de software en gráficos de computadora tridimensionales , que es una imitación aproximada de la iluminación global y es una versión modificada y mejorada de la técnica de oclusión ambiental. . El algoritmo SSAO funciona en tiempo real y simula la iluminación indirecta difusa y el oscurecimiento correspondiente en un espacio virtual 3D.

SSAO fue desarrollado por el departamento de investigación y desarrollo de la empresa alemana Crytek mientras desarrollaba los componentes gráficos del motor de juego CryEngine 2 . [1] Crysis , el primer juego de CryEngine 2 desarrollado por Crytek y lanzado en el otoño de 2007, fue el primero en usar SSAO. Posteriormente, este algoritmo y sus modificaciones se utilizaron en muchos motores de juegos, incluidos Leadwerks Engine , Dagor Engine , Unreal Engine , Unity , X-Ray , Glacier 2 y otros.

Descripción del trabajo

El algoritmo SSAO se ejecuta en el procesador de gráficos de la tarjeta de video y se implementa como un sombreador de píxeles que analiza el búfer de profundidad ( Z-buffer ) de la escena, que se almacena en la textura .

Al ejecutar el algoritmo de oclusión ambiental, el sombreador de píxeles muestra el valor de profundidad de cada píxel en la pantalla alrededor del píxel actual e intenta calcular el número de oclusiones de cada uno de los puntos seleccionados. En su implementación más simple, el factor de oclusión depende únicamente de la diferencia de profundidad entre el punto seleccionado y el punto actual. Sin soluciones y algoritmos avanzados adicionales, esta solución frontal requeriría aproximadamente 200 lecturas de textura por píxel para una buena calidad visual. Este número no es aceptable para el renderizado en tiempo real en las GPU modernas.

El algoritmo SSAO tiene como objetivo simplificar la complejidad computacional del algoritmo de oclusión ambiental y hacerlo adecuado para la operación en tiempo real en GPU. Sin embargo, la calidad de la imagen resultante en SSAO es peor que en la oclusión ambiental original, ya que SSAO utiliza técnicas de renderizado de aproximación (approaching).

Para crear una oclusión ambiental del espacio de la pantalla, debe tener dos texturas de escena:

Luego se toma el Mapa de Posición y el Mapa Normal de cada texel en la pantalla y se procesan los texels vecinos. En relación con las posiciones de los téxeles vecinos al que se está procesando, se le asigna un cierto nivel de “sombreado”.

Para obtener resultados de alta calidad con muchas menos lecturas de textura que la oclusión ambiental, SSAO utiliza el muestreo junto con un kernel rotado aleatoriamente. La orientación del kernel se repite cada N píxeles de la pantalla para tener solo una distorsión de alta frecuencia en la imagen final. Al final, esta distorsión de alta frecuencia se elimina mediante un número NxN de pases de posprocesador, lo que desenfoca la imagen ( desenfoque en inglés  ). Esto tiene en cuenta la profundidad de las irregularidades, utilizando métodos como la comparación de normales y profundidades adyacentes. Esta solución permite que la cantidad de muestras de profundidad por píxel se reduzca a aproximadamente 16 o menos, al tiempo que brinda un resultado de alta calidad y permite que SSAO se use en aplicaciones en tiempo real, como juegos de computadora.

Ventajas y desventajas

En comparación con otros algoritmos del modelo de oclusión ambiental, SSAO tiene las siguientes ventajas:

Junto con las ventajas del algoritmo SSAO, también hay desventajas:

Notas

  1. Oclusión ambiental: enfoques en el espacio de la pantalla (SSAO  ) . CG-Blog (16 de enero de 2010). Fecha de acceso: 22 de mayo de 2011. Archivado desde el original el 29 de marzo de 2012.

Enlaces

Fuentes en inglés Fuentes en ruso