Udostępnij przez


Cieniowania określona wartość referencyjna wzornika (grafika Direct3D 11)

Włączenie cieniowania pikseli w celu wyprowadzenia wartości referencyjnej wzornika, a nie używania określonego interfejsu API, umożliwia bardzo szczegółową kontrolę nad operacjami wzornika.

Określona wartość cieniowania zastępuje określoną przez interfejs API wartość referencyjną wzornika dla tego wywołania, co oznacza, że zmiana dotyczy zarówno testu wzornika, jak i gdy wzornik D3D11_STENCIL_OP_REPLACE (jeden element członkowski D3D11_STENCIL_OP) jest używany do zapisu wartości referencyjnej do buforu wzornika.

We wcześniejszych wersjach D3D11 wartość odwołania wzornika może być określona tylko przez metodę ID3D11DeviceContext::OMSetDepthStencilState. Oznacza to, że tę wartość można zdefiniować tylko na poziomie szczegółowości narysu. Ta funkcja D3D11.3 umożliwia deweloperom odczytywanie i używanie wartości referencyjnej wzornika (SV_StencilRef), która jest wynikiem cieniowania pikseli, co oznacza, że można go określić na poziomie pojedynczego piksela lub szczegółowości próbki.

Ta funkcja jest opcjonalna w D3D11.3. Aby przetestować obsługę, sprawdź pole logiczne PSSpecifiedStencilRefSupportedD3D11_FEATURE_DATA_D3D11_OPTIONS2 przy użyciu ID3D11Device::CheckFeatureSupport

Oto przykład użycia SV_StencilRef w cieniatorze pikseli:

uint main2(float4 c : COORD) : SV_StencilRef
{
    return uint(c.x);
}

funkcje Direct3D 11.3

model cieniowania 5.1