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]);
où 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 |