Share via


Método ID3D12GraphicsCommandList5::RSSetShadingRate (d3d12.h)

Define a taxa de sombreamento base e os combinadores para VRS (sombreamento de taxa variável). Para obter mais informações, consulte VRS (sombreamento de taxa variável).

Sintaxe

void RSSetShadingRate(
  D3D12_SHADING_RATE                baseShadingRate,
  const D3D12_SHADING_RATE_COMBINER *combiners
);

Parâmetros

baseShadingRate

Tipo: D3D12_SHADING_RATE

Uma constante da enumeração D3D12_SHADING_RATE que descreve a taxa de sombreamento base a ser definida.

combiners

Tipo: const D3D12_SHADING_RATE_COMBINER*

Um ponteiro opcional para uma matriz constante de D3D12_SHADING_RATE_COMBINER que contém os combinadores de taxa de sombreamento a serem definidos. A contagem de elementos D3D12_SHADING_RATE_COMBINER na matriz deve ser igual à constante D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT, que é igual a 2.

Como o VRS baseado em imagem por primitivo e de espaço na tela não tem suporte no VRS (sombreamento de taxa variável) de Camada1, para que esses valores sejam significativos, o adaptador requer suporte a VRS de Camada 2. Confira D3D12_FEATURE_DATA_D3D12_OPTIONS6 e D3D12_VARIABLE_SHADING_RATE_TIER.

Um ponteiro NULL é equivalente aos combinadores de sombreamento padrão, que são ambos D3D12_SHADING_RATE_COMBINER_PASSTHROUGH.

O algoritmo para taxa de sombreamento final é determinado pelo seguinte.

postRasterizerRate = ApplyCombiner(Combiners[0], CommandListShadingRate, Primitive->PrimitiveSpecifiedShadingRate);
finalRate = ApplyCombiner(Combiners[1], postRasterizerRate, ScreenSpaceImage[xy]);

onde ApplyCombiner é

UINT ApplyCombiner(D3D12_SHADING_RATE_COMBINER combiner, UINT a, UINT b)
{
    MaxShadingRate = options6.AdditionalShadingRatesSupported ? 4 : 2;
    switch (combiner)
    {
        case D3D12_SHADING_RATE_COMBINER_PASSTHROUGH: // default
            return a;
        case D3D12_SHADING_RATE_COMBINER_OVERRIDE:
            return b;
        case D3D12_SHADING_RATE_COMBINER_MAX:
            return max(a, b);
        case D3D12_SHADING_RATE_COMBINER_MIN:
            return min(a, b);
        case D3D12_SHADING_RATE_COMBINER_SUM:
            return min(MaxShadingRate, a + b);
        case default:
            return a;
    }
}

Retornar valor

Nenhum

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10 Build 20348
Servidor mínimo com suporte Windows 10 Build 20348
Cabeçalho d3d12.h

Confira também

VRS (sombreamento de taxa variável)