Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Aktivieren von Pixelshadern zum Ausgeben des Schablonenverweiswerts anstelle der VERWENDUNG des API-angegebenen Werts ermöglicht eine sehr präzise Kontrolle über Schablonenvorgänge.
Der angegebene Shaderwert ersetzt den api-angegebenen Schablonenverweiswert für diesen Aufruf, was bedeutet, dass die Änderung sowohl den Schablonentest betrifft als auch wenn schablonen op D3D11_STENCIL_OP_REPLACE (ein Element von D3D11_STENCIL_OP) verwendet wird, um den Verweiswert in den Schablonenpuffer zu schreiben.
In früheren Versionen von D3D11 kann der Schablonenverweiswert nur durch die ID3D11DeviceContext::OMSetDepthStencilState-Methode angegeben werden. Dies bedeutet, dass dieser Wert nur für eine gezeichnete Granularität definiert werden kann. Dieses D3D11.3-Feature ermöglicht Entwicklern das Lesen und Verwenden des Schablonenverweiswerts (SV_StencilRef), der von einem Pixelshader ausgegeben wird. Dies bedeutet, dass sie pro Pixel oder Pro-Beispiel-Granularität angegeben werden kann.
Dieses Feature ist in D3D11.3 optional. Um die Unterstützung zu testen, überprüfen Sie das PSSpecifiedStencilRefSupported boolesche Feld von D3D11_FEATURE_DATA_D3D11_OPTIONS2 mit ID3D11Device::CheckFeatureSupport
Hier ist ein Beispiel für die Verwendung von SV_StencilRef in einem Pixelshader:
uint main2(float4 c : COORD) : SV_StencilRef
{
return uint(c.x);
}
Verwandte Themen