ID3D12GraphicsCommandList5::RSSetShadingRate 方法 (d3d12.h)
針對可變速率底紋 (VRS) ,設定基底底底紋速率和組合器。 如需詳細資訊,請參閱 (VRS) 的可變速率底紋 。
語法
void RSSetShadingRate(
D3D12_SHADING_RATE baseShadingRate,
const D3D12_SHADING_RATE_COMBINER *combiners
);
參數
baseShadingRate
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_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;
}
}
傳回值
無
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 組建 20348 |
最低支援的伺服器 | Windows 10 組建 20348 |
標頭 | d3d12.h |