Указанное значение набора элементов (графика Direct3D 12)
Включение шейдеров пикселей для вывода значения ссылки на набор элементов, а не использование указанного API, обеспечивает очень подробный контроль над операциями наборов элементов.
Значение ссылки на набор элементов обычно указывается методом ID3D12GraphicsCommandList::OMSetStencilRef. Этот метод задает ссылочное значение набора элементов для детализации на основе рисования. Однако это значение может быть перезаписано шейдером пикселей.
Эта функция D3D12 (и D3D11.3) позволяет разработчикам считывать и использовать эталонное значение набора (SV_StencilRef), выводимую из шейдера пикселей, обеспечивая детализацию на пиксель или на выборку.
Указанное значение шейдера заменяет указанное API ссылочным значением для этого вызова, что означает, что изменение влияет как на тест наборов, так и при D3D12_STENCIL_OP_REPLACE операции набора элементов (один член D3D12_STENCIL_OP) используется для записи значения ссылки в буфер наборов элементов.
Эта функция является необязательной в D3D12 и D3D11.3. Чтобы проверить поддержку, проверьте PSSpecifiedStencilRefSupported логическое поле D3D12_FEATURE_DATA_D3D12_OPTIONS с помощью CheckFeatureSupport.
Ниже приведен пример использования SV_StencilRef в шейдере пикселей:
uint main2(float4 c : COORD) : SV_StencilRef
{
return uint(c.x);
}
Связанные разделы
-
привязка ресурсов в HLSL