Поделиться через


Указанное значение набора элементов (графика Direct3D 11)

Включение шейдеров пикселей для вывода значения ссылки на набор элементов, а не использование указанного API, обеспечивает очень подробный контроль над операциями наборов элементов.

Указанное значение шейдера заменяет указанное API ссылочного значения набора элементов для этого вызова, что означает, что изменение влияет как на тест наборов, так и при использовании набора элементов op D3D11_STENCIL_OP_REPLACE (один член D3D11_STENCIL_OP) используется для записи ссылочного значения в буфер наборов элементов.

В более ранних версиях D3D11 значение набора элементов можно указать только методом ID3D11DeviceContext::OMSetDepthStencilState. Это означает, что это значение может быть определено только для детализации на основе рисования. Эта функция D3D11.3 позволяет разработчикам читать и использовать значение ссылочного набора элементов (SV_StencilRef), которое выводится из шейдера пикселей, что означает, что его можно указать на пиксель или на выборку детализации.

Эта функция является необязательной в D3D11.3. Чтобы проверить поддержку, проверьте логическое поле PSSpecifiedStencilRefSupportedD3D11_FEATURE_DATA_D3D11_OPTIONS2 с помощью ID3D11Device::CheckFeatureSupport

Ниже приведен пример использования SV_StencilRef в шейдере пикселей:

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

функции Direct3D 11.3

модель шейдера 5.1