Partager via


ID3D12GraphicsCommandList5 ::RSSetShadingRate, méthode (d3d12.h)

Définit le taux d’ombrage de base et les combinateurs pour l’ombrage à taux variable (VRS). Pour plus d’informations, consultez Trame de fond à taux variable (VRS).

Syntaxe

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

Paramètres

baseShadingRate

Type : D3D12_SHADING_RATE

Constante de l’énumération D3D12_SHADING_RATE décrivant le taux d’ombrage de base à définir.

combiners

Type : const D3D12_SHADING_RATE_COMBINER*

Pointeur facultatif vers un tableau constant de D3D12_SHADING_RATE_COMBINER contenant les combinateurs de taux d’ombrage à définir. Le nombre d’éléments D3D12_SHADING_RATE_COMBINER dans le tableau doit être égal à la constante D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT, qui est égale à 2.

Étant donné que le VRS basé sur l’image par primitive et par espace d’écran n’est pas pris en charge sur l’ombrage à débit variable (VRS) de niveau 1, pour que ces valeurs soient significatives, l’adaptateur nécessite la prise en charge de VRS de niveau 2. Voir D3D12_FEATURE_DATA_D3D12_OPTIONS6 et D3D12_VARIABLE_SHADING_RATE_TIER.

Un pointeur NULL équivaut aux combinateurs d’ombrage par défaut, qui sont tous deux D3D12_SHADING_RATE_COMBINER_PASSTHROUGH.

L’algorithme du taux d’ombrage final est déterminé par les éléments suivants.

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

ApplyCombiner est

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

Valeur de retour

None

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10 Build 20348
Serveur minimal pris en charge Windows 10 Build 20348
En-tête d3d12.h

Voir aussi

Ombrage à taux variable (VRS)