Share via


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

由於 Tier1 的可變速率底紋 (VRS) 不支持個別基本和螢幕空間影像型 VRS,因此適配卡需要 Tier2 VRS 支援。 請參閱 D3D12_FEATURE_DATA_D3D12_OPTIONS6D3D12_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;
    }
}

傳回值

規格需求

需求
最低支援的用戶端 Windows 10 組建 20348
最低支援的伺服器 Windows 10 組建 20348
標頭 d3d12.h

另請參閱

VRS (可變速率底紋)