Compartir a través de


Configuración de la funcionalidad de galería de símbolos de profundidad

En esta sección se describen los pasos para configurar el búfer de galería de símbolos de profundidad y el estado de galería de símbolos de profundidad para la fase de fusión de salida.

Una vez que sepa cómo usar el búfer de galería de símbolos de profundidad y el estado de galería de símbolos de profundidad correspondiente, consulte técnicas avanzadas de galería de símbolos.

Crear estado de galería de símbolos de profundidad

El estado de la galería de símbolos de profundidad indica a la fase de fusión de salida cómo realizar la prueba de galería de símbolos de profundidad. La prueba de galería de símbolos de profundidad determina si se debe dibujar o no un píxel determinado.

Enlazar datos de galería de símbolos de profundidad a la fase de OM

Enlace el estado de la galería de símbolos de profundidad.

Enlace el recurso de galería de símbolos de profundidad mediante una vista.

Los destinos de representación deben ser el mismo tipo de recurso. Si se usa el suavizado multisample, todos los destinos de representación enlazados y búferes de profundidad deben tener los mismos recuentos de muestras.

Cuando se usa un búfer como destino de representación, no se admiten pruebas de galería de símbolos de profundidad y varios destinos de representación.

  • Se pueden enlazar simultáneamente hasta 8 destinos de representación.
  • Todos los destinos de representación deben tener el mismo tamaño en todas las dimensiones (ancho y alto, y profundidad para el tamaño de matriz o 3D para *Tipos de matriz).
  • Cada destino de representación puede tener un formato de datos diferente.
  • Las máscaras de escritura controlan qué datos se escriben en un destino de representación. El control de máscaras de escritura de salida en un destino por representación, por componente, qué datos se escriben en los destinos de representación.

Técnicas avanzadas de galería de símbolos

La parte de galería de símbolos del búfer de galería de símbolos de profundidad se puede usar para crear efectos de representación como la composición, el escalado y la esquematización.

Composición

La aplicación puede usar el búfer de galería de símbolos para componer imágenes 2D o 3D en una escena 3D. Se usa una máscara en el búfer de galería de símbolos para ocluir un área de la superficie de destino de representación. La información almacenada en 2D, como texto o mapas de bits, se puede escribir en el área ocluida. Como alternativa, la aplicación puede representar primitivos en 3D adicionales en la región enmascarada de la galería de símbolos de la superficie de destino de representación. Incluso puede representar una escena completa.

Los juegos suelen componer varias escenas 3D juntas. Por ejemplo, los juegos de conducción suelen mostrar un espejo retrovisor. El reflejo contiene la vista de la escena 3D detrás del conductor. Básicamente, es una segunda escena 3D compuesta con la vista hacia delante del conductor.

Calcado

Las aplicaciones direct3D usan el calcado para controlar qué píxeles de una imagen primitiva determinada se dibujan en la superficie de destino de representación. Las aplicaciones aplican calcados a las imágenes de primitivos para permitir que los polígonos coplanares se representen correctamente.

Por ejemplo, al aplicar marcas de neumáticos y líneas amarillas a una carretera, las marcas deben aparecer directamente en la parte superior de la carretera. Sin embargo, los valores z de las marcas y la carretera son los mismos. Por lo tanto, es posible que el búfer de profundidad no genere una separación limpia entre los dos. Algunos píxeles del primitivo posterior se pueden representar en la parte superior del primitivo frontal y viceversa. La imagen resultante parece centellear de fotograma a fotograma. Este efecto se denomina z-fighting o flimmering.

Para resolver este problema, usa una galería de símbolos para enmascarar la sección del primitivo trasero donde aparecerá el calco. Desactiva el almacenamiento en búfer z y representa la imagen del primitivo frontal en el área enmascarada de la superficie de destino de representación.

Se pueden usar varias mezclas de texturas para resolver este problema.

Contornos y siluetas

Puedes usar el búfer de la galería de símbolos para obtener efectos más abstractos, como contornos y siluetas.

Si la aplicación realiza dos pasos de representación: uno para generar la máscara de galería de símbolos y el segundo para aplicar la máscara de galería de símbolos a la imagen, pero con los primitivos ligeramente más pequeños en el segundo paso, la imagen resultante solo contendrá el contorno del primitivo. A continuación, la aplicación puede rellenar el área enmascarada de la galería de símbolos de la imagen con un color sólido, lo que proporciona al primitivo un aspecto en relieve.

Si la máscara de galería de símbolos tiene el mismo tamaño y forma que el primitivo que está representando, la imagen resultante contiene un agujero donde debería estar el primitivo. Tu aplicación puede rellenar el agujero con negro para producir una silueta del primitivo.

Galería de símbolos de dos caras

Los volúmenes de sombra se usan para dibujar sombras con el búfer de galería de símbolos. La aplicación calcula los volúmenes de sombra que se convierten al ocultar la geometría, calculando los bordes de la silueta y extruyéndolos lejos de la luz en un conjunto de volúmenes 3D. Estos volúmenes se representan dos veces en el búfer de la galería de símbolos.

La primera representación dibuja polígonos orientados hacia delante e incrementa los valores del búfer de la galería de símbolos. La segunda representación dibuja los polígonos orientados hacia atrás del volumen de sombras y disminuye los valores del búfer de la galería de símbolos.

Normalmente, todos los valores incrementados y reducidos se cancelan entre sí. Sin embargo, la escena ya se ha representado con geometría normal, lo que provoca que algunos píxeles produzcan un error en la prueba del búfer z, ya que se representa el volumen de sombras. Los valores que quedan en el búfer de la galería de símbolos se corresponden a píxeles que están en la sombra. Estos contenidos restantes del búfer de la galería de símbolos se usan como máscara, para hacer una combinación alfa con un cuadrante negro grande y que abarca todo en la escena. Con el búfer de la galería de símbolos que actúa como máscara, el resultado es oscurecer píxeles que están en las sombras.

Esto significa que la geometría de sombra se dibuja dos veces por fuente de luz, lo que pone presión sobre el rendimiento de vértices de la GPU. La característica de la galería de símbolos a doble cara se ha diseñado para mitigar esta situación. En este enfoque, hay dos conjuntos de estado de galería de símbolos (denominados a continuación), un conjunto cada uno para los triángulos frontales y el otro para los triángulos orientados hacia atrás. De este modo, solo se dibuja un solo paso por volumen de sombras, por luz.

Lectura del búfer de galería de símbolos de profundidad como textura

Un búfer de galería de símbolos de profundidad inactivo puede leerlo un sombreador como textura. Una aplicación que lee un búfer de galería de símbolos de profundidad como textura se representa en dos pasos, el primer paso escribe en el búfer de galería de símbolos de profundidad y la segunda lectura de paso del búfer. Esto permite que un sombreador compare los valores de profundidad o galería de símbolos escritos previamente en el búfer con el valor del píxel que se está representando actualmente. El resultado de la comparación se puede usar para crear efectos como la asignación de sombras o partículas suaves en un sistema de partículas.

Fase de fusión de salida (OM)

Canalización de gráficos

Fase de fusión de salida