Vistas de orden de rasterizador

Las vistas ordenadas por rasterizador (ROV) permiten que el código del sombreador de píxeles marque enlaces UAV con una declaración que modifique los requisitos normales para el orden de los resultados de la canalización de gráficos para UAV. Esto permite que los algoritmos order independent Transparency (OIT) funcionen, lo que proporciona resultados de representación mucho mejores cuando varios objetos transparentes se alinean entre sí en una vista.

Información general

Las canalizaciones de gráficos estándar pueden tener problemas para componer correctamente varias texturas que contienen transparencia. Objetos como barreras de alambre, humo, fuego, vegetación y vidrio coloreado usan transparencia para obtener el efecto deseado. Los problemas surgen cuando varias texturas que contienen transparencia están en línea entre sí (humo delante de una valla delante de un edificio de vidrio que contiene vegetación, como ejemplo). Las vistas ordenadas por rasterizador (ROV) permiten que los algoritmos DE OIT subyacentes usen características del hardware para intentar resolver el orden de transparencia correctamente. El sombreador de píxeles controla la transparencia.

Las vistas ordenadas por rasterizador (ROV) permiten que el código del sombreador de píxeles marque enlaces UAV con una declaración que modifique los requisitos normales para el orden de los resultados de la canalización de gráficos para UAV.

Las ROV garantizan el orden de los accesos UAV para cualquier par de invocaciones de sombreador de píxeles superpuestas. En este caso, "superpuesto" significa que las invocaciones se generan mediante las mismas llamadas de dibujo y comparten la misma coordenada de píxeles cuando se encuentra en modo de ejecución de frecuencia de píxeles y la misma coordenada de píxeles y muestras en modo de frecuencia de muestra.

El orden en que se ejecutan accesos ROV superpuestos de invocaciones de sombreador de píxeles es idéntico al orden en que se envía la geometría. Esto significa que, para las invocaciones de sombreador de píxeles superpuestas, las escrituras de ROV realizadas por una invocación del sombreador de píxeles deben estar disponibles para ser leídas por una invocación posterior y no deben afectar a las lecturas por una invocación anterior. Las lecturas de ROV realizadas por una invocación de sombreador de píxeles deben reflejar las escrituras realizadas por una invocación anterior y no deben reflejar las escrituras realizadas por una invocación posterior. Esto es importante para los UMV porque se omiten explícitamente de las garantías de invarianza de salida establecidas normalmente por el orden fijo de los resultados de la canalización de gráficos.

Detalles de la implementación

Las vistas ordenadas por rasterizador (ROV) se declaran con los siguientes nuevos objetos del lenguaje de sombreador de alto nivel (HLSL) y solo están disponibles para el sombreador de píxeles:

  • RasterizerOrderedBuffer
  • RasterizerOrderedByteAddressBuffer
  • RasterizerOrderedStructuredBuffer
  • RasterizerOrderedTexture1D
  • RasterizerOrderedTexture1DArray
  • RasterizerOrderedTexture2D
  • RasterizerOrderedTexture2DArray
  • RasterizerOrderedTexture3D

Use estos objetos de la misma manera que otros objetos UAV (como RWBuffer , por ejemplo, etc.).

API summary

Las ROV son una construcción solo de HLSL que aplica una semántica de comportamiento diferente a los UMV. Todas las API relevantes para las UMV también son relevantes para las ROV. Tenga en cuenta que el método, las estructuras y la clase auxiliar siguientes hacen referencia al rasterizador:

Características de Direct3D 11.3

Modelo de sombreador 5.1