sombreado diferido


En el campo de los gráficos por computadora en 3D , el sombreado diferido es una técnica de sombreado del espacio de la pantalla que se realiza en un segundo paso de renderizado , después de que se renderizan los sombreadores de vértices y píxeles . [2] Fue sugerido por primera vez por Michael Deering en 1988. [3]

En la primera pasada de un sombreador diferido, solo se recopilan los datos necesarios para el cálculo del sombreado. Las posiciones, las normales y los materiales de cada superficie se renderizan en el búfer de geometría ( G-buffer ) usando " renderizar a textura ". Después de esto, un sombreador de píxeles calcula la iluminación directa e indirecta en cada píxel utilizando la información de los búferes de textura en el espacio de la pantalla .

La oclusión direccional del espacio de la pantalla [4] se puede hacer parte de la canalización de sombreado diferido para dar direccionalidad a las sombras y las interreflexiones.

La principal ventaja del sombreado diferido es la separación entre la geometría de la escena y la iluminación. Solo se requiere un pase de geometría, y cada luz solo se calcula para aquellos píxeles a los que realmente afecta. Esto brinda la capacidad de generar muchas luces en una escena sin un impacto significativo en el rendimiento. [5] Hay algunas otras ventajas reivindicadas para el enfoque. Estas ventajas pueden incluir una gestión más sencilla de los recursos de iluminación complejos, la facilidad de gestión de otros recursos de sombreadores complejos y la simplificación de la canalización de representación del software.

Una desventaja clave del renderizado diferido es la incapacidad de manejar la transparencia dentro del algoritmo, aunque este problema es genérico en las escenas con búfer Z y tiende a solucionarse retrasando y clasificando el renderizado de las partes transparentes de la escena. [6] El desprendimiento de profundidad se puede utilizar para lograr una transparencia independiente del orden en el renderizado diferido, pero a costa de lotes adicionales y tamaño de búfer g. Hardware moderno, compatible con DirectX 10y más tarde, a menudo es capaz de realizar lotes lo suficientemente rápido como para mantener velocidades de cuadro interactivas. Cuando se desea una transparencia independiente del orden (comúnmente para aplicaciones de consumo), el sombreado diferido no es menos efectivo que el sombreado directo utilizando la misma técnica.

Otra seria desventaja es la dificultad de usar múltiples materiales. Es posible usar muchos materiales diferentes, pero requiere que se almacenen más datos en el búfer G, que ya es bastante grande y ocupa una gran cantidad del ancho de banda de la memoria. [7]


Búfer G de color difuso
Búfer Z
Superficie normal G-Buffer
Composición final (para calcular las sombras que se muestran en esta imagen, se deben usar otras técnicas como el mapeo de sombras, sensores de sombra o un volumen de sombra junto con el sombreado diferido). [1]