Valeur de référence de gabarit spécifiée par nuanceur (Graphiques Direct3D 11)
L’activation des nuanceurs de pixels pour générer la valeur de référence du gabarit, plutôt que d’utiliser l’API spécifiée, permet un contrôle granulaire très précis sur les opérations de gabarit.
La valeur spécifiée par le nuanceur remplace l'valeur de référence de gabarit spécifiée par l’API pour cet appel, ce qui signifie que la modification affecte à la fois le test de gabarit et lorsque l’opération de gabarit D3D11_STENCIL_OP_REPLACE (un membre de D3D11_STENCIL_OP) est utilisée pour écrire la valeur de référence dans la mémoire tampon du gabarit.
Dans les versions antérieures de D3D11, la valeur de référence du gabarit ne peut être spécifiée que par la méthode ID3D11DeviceContext ::OMSetDepthStencilState. Cela signifie que cette valeur ne peut être définie que sur une granularité par dessin. Cette fonctionnalité D3D11.3 permet aux développeurs de lire et d’utiliser la valeur de référence du gabarit (SV_StencilRef
) qui est sortie d’un nuanceur de pixels, ce qui signifie qu’elle peut être spécifiée sur une granularité par pixel ou par échantillon.
Cette fonctionnalité est facultative dans D3D11.3. Pour tester sa prise en charge, vérifiez le champ booléen PSSpecifiedStencilRefSupported
de D3D11_FEATURE_DATA_D3D11_OPTIONS2 à l’aide de ID3D11Device ::CheckFeatureSupport
Voici un exemple d’utilisation de SV_StencilRef
dans un nuanceur de pixels :
uint main2(float4 c : COORD) : SV_StencilRef
{
return uint(c.x);
}
Rubriques connexes
-
fonctionnalités Direct3D 11.3
-
modèle de nuanceur 5.1