Метод ID3D12GraphicsCommandList5::RSSetShadingRate (d3d12.h)

Задает базовую скорость заливки и комбинаторы для заливки с переменной скоростью (VRS). Дополнительные сведения см. в разделе Заливка с переменной скоростью (VRS).

Синтаксис

void RSSetShadingRate(
  D3D12_SHADING_RATE                baseShadingRate,
  const D3D12_SHADING_RATE_COMBINER *combiners
);

Параметры

baseShadingRate

Тип: D3D12_SHADING_RATE

Константой из перечисления D3D12_SHADING_RATE , описывающей заданную базовую скорость заливки.

combiners

Тип: const D3D12_SHADING_RATE_COMBINER*

Необязательный указатель на массив констант D3D12_SHADING_RATE_COMBINER , содержащий задающиеся комбинаторы скорости заливки. Число D3D12_SHADING_RATE_COMBINER элементов в массиве должно быть равно константе D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT, равное 2.

Так как vrs на основе изображений на основе примитивов и экранного пространства не поддерживается в затенение переменной скорости (VRS) уровня 1, чтобы эти значения были значимыми, адаптеру требуется поддержка VRS уровня 2. См . D3D12_FEATURE_DATA_D3D12_OPTIONS6 и D3D12_VARIABLE_SHADING_RATE_TIER.

Указатель NULL эквивалентен сочетаниям заливки по умолчанию, которые являются D3D12_SHADING_RATE_COMBINER_PASSTHROUGH.

Алгоритм окончательного затенения определяется следующим образом.

postRasterizerRate = ApplyCombiner(Combiners[0], CommandListShadingRate, Primitive->PrimitiveSpecifiedShadingRate);
finalRate = ApplyCombiner(Combiners[1], postRasterizerRate, ScreenSpaceImage[xy]);

где ApplyCombiner

UINT ApplyCombiner(D3D12_SHADING_RATE_COMBINER combiner, UINT a, UINT b)
{
    MaxShadingRate = options6.AdditionalShadingRatesSupported ? 4 : 2;
    switch (combiner)
    {
        case D3D12_SHADING_RATE_COMBINER_PASSTHROUGH: // default
            return a;
        case D3D12_SHADING_RATE_COMBINER_OVERRIDE:
            return b;
        case D3D12_SHADING_RATE_COMBINER_MAX:
            return max(a, b);
        case D3D12_SHADING_RATE_COMBINER_MIN:
            return min(a, b);
        case D3D12_SHADING_RATE_COMBINER_SUM:
            return min(MaxShadingRate, a + b);
        case default:
            return a;
    }
}

Возвращаемое значение

None

Требования

Требование Значение
Минимальная версия клиента сборка Windows 10 20348
Минимальная версия сервера сборка Windows 10 20348
Верхняя часть d3d12.h

См. также раздел

Variable-Rate Shading (VRS)