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 に等しい必要があります。
プリミティブおよび画面空間ごとのイメージ ベースの VRS は、Tier1 可変レート シェーディング (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 |
Header | d3d12.h |