Valeur de référence du gabarit spécifié du 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 celle spécifiée par l’API, permet un contrôle granulaire très fin sur les opérations de gabarit.

La valeur spécifiée par le nuanceur remplace la valeur de référence du 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 le gabarit op D3D11_STENCIL_OP_REPLACE (un membre de D3D11_STENCIL_OP) est utilisé pour écrire la valeur de référence dans la mémoire tampon de 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 exemple.

Cette fonctionnalité est facultative dans D3D11.3. Pour tester sa prise en charge, case activée le PSSpecifiedStencilRefSupported champ booléen de D3D11_FEATURE_DATA_D3D11_OPTIONS2 à l’aide de ID3D11Device::CheckFeatureSupport

Voici un exemple d’utilisation de dans un nuanceur de SV_StencilRef pixels :

uint main2(float4 c : COORD) : SV_StencilRef
{
    return uint(c.x);
}

Fonctionnalités de Direct3D 11.3

Modèle de nuanceur 5.1