Condividi tramite


Metodo ID3D12GraphicsCommandList5::RSSetShadingRate (d3d12.h)

Imposta la frequenza di ombreggiatura di base e i combinatori per l'ombreggiatura a velocità variabile (VRS). Per altre informazioni, vedere Ombreggiatura a frequenza variabile (VRS).

Sintassi

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

Parametri

baseShadingRate

Tipo: D3D12_SHADING_RATE

Costante dell'enumerazione D3D12_SHADING_RATE che descrive la frequenza di ombreggiatura di base da impostare.

combiners

Tipo: const D3D12_SHADING_RATE_COMBINER*

Puntatore facoltativo a una matrice costante di D3D12_SHADING_RATE_COMBINER contenente i combinatori di frequenza di ombreggiatura da impostare. Il numero di elementi D3D12_SHADING_RATE_COMBINER nella matrice deve essere uguale alla costante D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT, uguale a 2.

Poiché vrs basato su immagini basate su immagini primitive e dello spazio dello schermo non è supportato in Livelli1 Ombreggiatura a frequenza variabile (VRS), per questi valori deve essere significativo, l'adattatore richiede il supporto VRS di Livello2. Vedere D3D12_FEATURE_DATA_D3D12_OPTIONS6 e D3D12_VARIABLE_SHADING_RATE_TIER.

Un puntatore NULL equivale ai combinatori di ombreggiatura predefiniti, che sono entrambi D3D12_SHADING_RATE_COMBINER_PASSTHROUGH.

L'algoritmo per la velocità di ombreggiatura finale è determinato dal seguente.

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

dove 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;
    }
}

Valore restituito

nessuno

Requisiti

Requisito Valore
Client minimo supportato Windows 10 Build 20348
Server minimo supportato Windows 10 Build 20348
Intestazione d3d12.h

Vedi anche

Ombreggiatura a velocità variabile (VRS)