No entiendo la explicación de wikipedia.
Para cada píxel en la pantalla, el sombreador de píxeles muestrea los valores de profundidad alrededor del píxel actual e intenta calcular la cantidad de oclusión de cada uno de los puntos muestreados.
¿Cómo pueden los valores de profundidad de los píxeles circundantes decirle algo sobre la oclusión? Según tengo entendido, la oclusión ocurre cuando un objeto A se para frente a otro objeto B, por lo que no puede ver el objeto B. Pero, ¿por qué ahora miraría los píxeles de profundidad de los píxeles circundantes ? Quiero decir que puedes ver esos píxeles, por lo que no hay oclusión. Tal vez entendí mal la oclusión.
Y lo que tampoco entendí es el término núcleo en algunos otros tutoriales. ¿Qué es un kernel y por qué lo usarías para ssao?
¿Podría alguien hacer una explicación detallada del algoritmo con respecto a mis preguntas?
Respuestas:
La motivación detrás de la oclusión ambiental (OA) en general es aproximar la forma en que las grietas y las esquinas a menudo se sombrean, porque menos luz indirecta rebota en ellas. Un ejemplo de una foto de mi oficina: observe el oscurecimiento a lo largo de los bordes donde se encuentran las paredes y el techo. La habitación está iluminada solo por la luz que entra por la ventana y rebota.
Para simular con precisión este fenómeno, los renderizadores sin conexión utilizan técnicas como el trazado de ruta y el mapeo de fotones. Para propósitos en tiempo real, lo precalculamos fuera de línea o lo aproximamos de alguna manera.
La oclusión ambiental del espacio de pantalla (SSAO) se basa en la observación de que puede detectar esquinas y grietas al observar el búfer de profundidad (y posiblemente también los vectores normales) de una imagen renderizada, y así puede calcular el AO aproximado como un post pasar. El búfer de profundidad es una representación aproximada de la geometría en la escena, por lo que al muestrear los valores del búfer de profundidad en la vecindad de un píxel objetivo, puede hacerse una idea de la forma de la geometría circundante y adivinar qué tan oscurecido está por AO debiera ser.
Este diagrama, de Bavoil y Sainz (2008) , muestra cómo los valores del tampón de profundidad, interpretados como una especie de campo de altura, representan una versión discretizada de cierta geometría. Al calcular SSAO para el píxel central, miraría los valores de profundidad de los píxeles circundantes y los conectaría a alguna fórmula, diseñada para producir un valor más oscuro cuando la geometría es más cóncava (como la del diagrama) y una más clara. valor cuando la geometría es plana o convexa.
La fórmula en la que entran los valores de profundidad se denomina "núcleo" por analogía con los núcleos de filtro utilizados para desenfoques, detección de bordes y similares. Sin embargo, SSAO es más complicado que una simple convolución lineal de los valores de profundidad. El diablo está en los detalles. La distribución de muestras, y la fórmula que las procesa para generar el valor de oclusión, ha sido objeto de mucha investigación durante la última década, tratando de mejorar el realismo y reducir los artefactos mientras se mantiene un buen rendimiento.
fuente
Como Alan y trichoplax mencionan en los comentarios, el efecto que simula la oclusión ambiental no es la oclusión de una superficie de la cámara, sino la oclusión de la superficie de su entorno.
Piénselo de esta manera: supongamos que tiene una iluminación uniforme proveniente de todas las direcciones, de modo que la luz entrante total en cualquier punto suma un valor de 1. Si coloca un plano en ese entorno y mira a un lado, ese lado recibirá el 50% de esa iluminación, o 0.5, porque la otra mitad está bloqueada por el propio avión. En otras palabras, cualquier punto de la superficie del avión solo puede "ver" la luz proveniente de la mitad del entorno, por lo que está iluminada a la mitad. Si pliega ese plano hacia su punto de vista (un pliegue "valle"), entonces disminuye la iluminación entrante a ese lado del plano aún más, a un valor por debajo de 0.5, porque, nuevamente, cada punto en el plano "ve" un poco Menos luz proveniente de los alrededores.
La oclusión ambiental en el espacio de la pantalla funciona más o menos al buscar estos "pliegues", áreas donde la profundidad cambia bruscamente, según se define al comparar las profundidades de los píxeles vecinos, y oscurecerlos para simular la disminución de la iluminación del entorno de los puntos.
fuente