Share via


ID3D12GraphicsCommandList5::RSSetShadingRate-Methode (d3d12.h)

Legt die Basisschattierungsrate und Kombinatoren für die Schattierung mit variabler Rate (VRS) fest. Weitere Informationen finden Sie unter Schattierung mit variabler Rate (VRS).

Syntax

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

Parameter

baseShadingRate

Typ: D3D12_SHADING_RATE

Eine Konstante aus der D3D12_SHADING_RATE-Enumeration , die die festzulegende Basisschattierungsrate beschreibt.

combiners

Typ: const D3D12_SHADING_RATE_COMBINER*

Ein optionaler Zeiger auf ein konstantes Array von D3D12_SHADING_RATE_COMBINER , die die festzulegenden Schattierungsratenkombiner enthalten. Die Anzahl der D3D12_SHADING_RATE_COMBINER Elemente im Array muss gleich der konstanten D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT sein, die gleich 2 ist.

Da die bildbasierte VRS pro Grundtyp und Bildschirmraum in Tier1-Schattierung mit variabler Rate (VRS) nicht unterstützt wird, benötigt der Adapter Unterstützung von Tier2 VRS, damit diese Werte aussagekräftig sind. Weitere Informationen finden Sie unter D3D12_FEATURE_DATA_D3D12_OPTIONS6 und D3D12_VARIABLE_SHADING_RATE_TIER.

Ein NULL-Zeiger entspricht den Standardmäßigen Schattierungskombinatoren, die beide D3D12_SHADING_RATE_COMBINER_PASSTHROUGH sind.

Der Algorithmus für die endgültige Schattierungsrate wird durch Folgendes bestimmt.

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

wobei ist,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;
    }
}

Rückgabewert

Keine

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10 Build 20348
Unterstützte Mindestversion (Server) Windows 10 Build 20348
Kopfzeile d3d12.h

Weitere Informationen

Schattierung mit variabler Rate (VRS)