Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du aktiverar pixelskuggningar för att mata ut stencilreferensvärdet, i stället för att använda det API-angivna, kan du få en mycket fin detaljerad kontroll över stencilåtgärder.
Stencilreferensvärdet anges normalt av metoden ID3D12GraphicsCommandList::OMSetStencilRef. Den här metoden anger stencilreferensvärdet på en kornighet per dragning. Det här värdet kan dock skrivas över av pixelskuggaren.
Med den här funktionen D3D12 (och D3D11.3) kan utvecklare läsa och använda stencilreferensvärdet (SV_StencilRef) som är utdata från en pixelskuggning, vilket möjliggör en kornighet per bildpunkt eller per exempel.
Det angivna värdet för skuggning ersätter det API-angivna referensvärdet för anropet, vilket innebär att ändringen påverkar både stenciltestet och när stencilåtgärden D3D12_STENCIL_OP_REPLACE (en medlem i D3D12_STENCIL_OP) används för att skriva referensvärdet till stencilbufferten.
Den här funktionen är valfri i både D3D12 och D3D11.3. Om du vill testa stödet kontrollerar du PSSpecifiedStencilRefSupported booleskt fält i D3D12_FEATURE_DATA_D3D12_OPTIONS med hjälp av CheckFeatureSupport.
Här är ett exempel på användningen av SV_StencilRef i en pixelskuggning:
uint main2(float4 c : COORD) : SV_StencilRef
{
return uint(c.x);
}
Relaterade ämnen