Referenční hodnota shaderu zadaného vzorníku (grafika Direct3D 11)
Povolení shaderů pixelů pro výstup referenční hodnoty vzorníku místo použití zadaného rozhraní API umožňuje velmi podrobnou kontrolu nad operacemi vzorníku.
Zadaná hodnota shaderu nahradí zadanou referenční hodnotu vzorníku pro toto vyvolání, což znamená, že změna ovlivní test vzorníku i při použití op D3D11_STENCIL_OP_REPLACE vzorníku (jeden člen D3D11_STENCIL_OP) k zápisu referenční hodnoty do vyrovnávací paměti vzorníku.
V dřívějších verzích D3D11 lze referenční hodnotu vzorníku zadat pouze ID3D11DeviceContext::OMSetDepthStencilState metoda. To znamená, že tuto hodnotu lze definovat pouze v členitosti jednotlivých kreslených hledanách hodnot. Tato funkce D3D11.3 umožňuje vývojářům číst a používat referenční hodnotu vzorníku (SV_StencilRef
), která je výstupem shaderu pixelů, což znamená, že je možné ji zadat na pixelech nebo členitosti vzorku.
Tato funkce je volitelná v D3D11.3. Pokud chcete otestovat podporu, zkontrolujte PSSpecifiedStencilRefSupported
logické pole D3D11_FEATURE_DATA_D3D11_OPTIONS2 pomocí ID3D11Device::CheckFeatureSupport
Tady je příklad použití SV_StencilRef
v pixelovém shaderu:
uint main2(float4 c : COORD) : SV_StencilRef
{
return uint(c.x);
}
Související témata
-
model shaderu 5.1