Shader– Angegebener Schablonenverweiswert (Direct3D 11-Grafiken)

Wenn Pixel-Shader den Schablonenverweiswert anstelle des von der API angegebenen Werts aus geben, wird eine sehr präzise Steuerung von Schablonenvorgängen ermöglicht.

Der angegebene Shaderwert ersetzt den API-angegebenen Schablonenverweiswert für diesen Aufruf. Dies bedeutet, dass die Änderung sowohl den Schablonentest beeinflusst als auch wenn die Schablonen op D3D11 STENCIL OP REPLACE (ein Member von _ _ _ D3D11 _ STENCIL _ OP) verwendet wird, um den Verweiswert in den Schablonenpuffer zu schreiben.

In früheren Versionen von D3D11 kann der Schablonenverweiswert nur von der ID3D11DeviceContext::OMSetDepthStencilState-Methode angegeben werden. Dies bedeutet, dass dieser Wert nur für eine Granularität pro Zeichnen definiert werden kann. Mit diesem D3D11.3-Feature können Entwickler den Schablonenverweiswert ( ) lesen und verwenden, der von einem Pixel-Shader ausgegeben wird. Dies bedeutet, dass er für eine Granularität pro Pixel oder pro Beispiel angegeben werden SV_StencilRef kann.

Dieses Feature ist in D3D11.3 optional. Überprüfen Sie zum Testen der Unterstützung das boolesche Feld von PSSpecifiedStencilRefSupported D3D11 _ FEATURE _ DATA _ D3D11 _ OPTIONS2 mit ID3D11Device::CheckFeatureSupport.

Hier ist ein Beispiel für die Verwendung von SV_StencilRef in einem Pixel-Shader:

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

Direct3D 11.3-Features

Shadermodell 5.1