Anteckning
Å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.
Det angivna värdet för skuggning ersätter det API-angivna stencilreferensvärdet för anropet, vilket innebär att ändringen påverkar både stenciltestet och när stencil op D3D11_STENCIL_OP_REPLACE (en medlem i D3D11_STENCIL_OP) används för att skriva referensvärdet till stencilbufferten.
I tidigare versioner av D3D11 kan stencilreferensvärdet endast anges av metoden ID3D11DeviceContext::OMSetDepthStencilState. Det innebär att det här värdet bara kan definieras per ritad kornighet. Med den här funktionen D3D11.3 kan utvecklare läsa och använda stencilreferensvärdet (SV_StencilRef) som är utdata från en pixelskuggning, vilket innebär att det kan anges på en kornighet per bildpunkt eller per exempel.
Den här funktionen är valfri i D3D11.3. Kontrollera PSSpecifiedStencilRefSupported booleskt fält i D3D11_FEATURE_DATA_D3D11_OPTIONS2 med hjälp av ID3D11Enhet::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