Shader angegebener Schablonenverweiswert (Direct3D 12-Grafiken)
Das Aktivieren von Pixelshadern zum Ausgeben des Schablonenverweiswerts anstelle des von der API angegebenen Werts ermöglicht eine sehr präzise Steuerung von Schablonenvorgängen.
Der Schablonenverweiswert wird normalerweise von der ID3D12GraphicsCommandList::OMSetStencilRef-Methode angegeben. Diese Methode legt den Schablonenverweiswert auf eine Granularität pro Zeichnung fest. Dieser Wert kann jedoch vom Pixelshader überschrieben werden.
Mit diesem Feature D3D12 (und D3D11.3) können Entwickler den Schablonenverweiswert (SV_StencilRef) lesen und verwenden, der von einem Pixelshader ausgegeben wird, wodurch eine Granularität pro Pixel oder Stichprobe ermöglicht wird.
Der angegebene Shaderwert ersetzt den API-angegebenen Verweiswert für diesen Aufruf. Dies bedeutet, dass sich die Änderung sowohl auf den Schablonentest auswirkt, als auch, wenn der Schablonenvorgang D3D12_STENCIL_OP_REPLACE (ein Member von D3D12_STENCIL_OP) verwendet wird, um den Verweiswert in den Schablonenpuffer zu schreiben.
Dieses Feature ist sowohl in D3D12 als auch in D3D11.3 optional. Um die Unterstützung zu testen, überprüfen Sie das boolesche Feld PSSpecifiedStencilRefSupported von D3D12_FEATURE_DATA_D3D12_OPTIONS mit CheckFeatureSupport.
Hier sehen Sie ein Beispiel für die Verwendung von SV_StencilRef in einem Pixelshader:
uint main2(float4 c : COORD) : SV_StencilRef
{
return uint(c.x);
}
Zugehörige Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für