Compartir a través de


Valor de referencia de galería de símbolos especificado por el sombreador (gráficos direct3D 12)

Habilitar sombreadores de píxeles para generar el valor de referencia de galería de símbolos, en lugar de usar el especificado por la API, permite un control muy preciso sobre las operaciones de galería de símbolos.

El valor de referencia de galería de símbolos normalmente se especifica mediante el método ID3D12GraphicsCommandList::OMSetStencilRef . Este método establece el valor de referencia de galería de símbolos en una granularidad por dibujo. Sin embargo, el sombreador de píxeles puede sobrescribir este valor.

Esta característica D3D12 (y D3D11.3) permite a los desarrolladores leer y usar el valor de referencia de galería de símbolos (SV_StencilRef) que se genera a partir de un sombreador de píxeles, lo que permite una granularidad por píxel o por muestra.

El valor especificado del sombreador reemplaza el valor de referencia especificado por la API para esa invocación, lo que significa que el cambio afecta a la prueba de galería de símbolos y cuando la operación de galería de símbolos D3D12_STENCIL_OP_REPLACE (un miembro de D3D12_STENCIL_OP) se usa para escribir el valor de referencia en el búfer de galería de símbolos.

Esta característica es opcional en D3D12 y D3D11.3. Para probar su compatibilidad, compruebe el campo booleano PSSpecifiedStencilRefSupported de D3D12_FEATURE_DATA_D3D12_OPTIONS mediante CheckFeatureSupport.

Este es un ejemplo del uso de SV_StencilRef en un sombreador de píxeles:

uint main2(float4 c : COORD) : SV_StencilRef
{
    return uint(c.x);
}

Representación

Enlace de recursos en HLSL

Modelo de sombreador 5.1

Especificación de firmas de raíz en HLSL