Zadaná referenční hodnota vzorníku shaderu (grafika Direct3D 12)
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.
Referenční hodnota vzorníku je obvykle určena ID3D12GraphicsCommandList::OMSetStencilRef metoda. Tato metoda nastaví referenční hodnotu vzorníku na členitost pro kreslení. Tuto hodnotu ale může přepsat shader pixelů.
Tato funkce D3D12 (a 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ž umožňuje členitost jednotlivých pixelů nebo vzorkování.
Zadaná hodnota shaderu nahradí referenční hodnotu zadanou rozhraním API pro toto vyvolání, což znamená, že změna ovlivní test vzorníku a když se operace vzorníku D3D12_STENCIL_OP_REPLACE (jeden člen D3D12_STENCIL_OP) použije k zápisu referenční hodnoty do vyrovnávací paměti vzorníku.
Tato funkce je volitelná v D3D12 i D3D11.3. Pokud chcete otestovat podporu, zkontrolujte PSSpecifiedStencilRefSupported logické pole D3D12_FEATURE_DATA_D3D12_OPTIONS pomocí 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
-
vazby prostředků v HLSL
-
model shaderu 5.1