Skip to main content
可変レート シェーディング (VRS) のスクリーン空間シェーディング レート イメージを設定します。詳細については、可変レート シェーディング (VRS) を参照してください。 このメソッドには Tier2 の 可変レート シェーディング (VRS) のサポートが必要です。D3D12_FEATURE_DATA_D3D12_OPTIONS6 および D3D12_VARIABLE_SHADING_RATE_TIER を参照してください。

構文

パラメーター

shadingRateImage
型: ID3D12Resource *
スクリーン空間シェーディング レート イメージを表す ID3D12Resource への、オプションのポインター。 NULL の場合、すべての値がシェーディング レート 1x1 のシェーディング レート イメージを持つのと同じ効果になります。 このテクスチャには D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE 状態が適用されている必要があります。 シェーディング レート イメージのタイル サイズは、D3D12_FEATURE_DATA_D3D12_OPTIONS6 で判別できます。 したがって、シェーディング レート イメージのサイズは以下のようになるべきです。
シェーディング レート イメージは、1 つのミップのみを持つ 2D テクスチャで、形式が DXGI_FORMAT_R8_UINT である必要があります。各テクセルは D3D12_SHADING_RATE に対応する値でなければなりません。レイアウトは D3D12_TEXTURE_LAYOUT_UNKNOWN である必要があり、深度ステンシル、レンダー ターゲット、同時アクセス、またはクロス アダプター リソースにはできません。 DirectX では (0, 0) が左上のため、シェーディング レート イメージが小さすぎるか大きすぎる場合、下または右にシェーディング レート イメージのない領域が生じたり、イメージがそれらの方向に拡張されたりします。余分な部分があると無視されます (ただし合法)、イメージが小さすぎる場合、下や右の範囲外領域はすべて、イメージからの既定のシェーディング レート 1x1 になります (ただし、これが最終シェーディング レートになるわけではありません。この 1x1 の既定値にはコンバイナーが引き続き適用されます)。

戻り値

型: void なし。

解説

スクリーン空間シェーディング レート イメージを有効にするには、シェーディングのコンバイナーを設定するために ID3D12GraphicsCommandList5::RSSetShadingRate が呼び出されている必要があります。呼び出されていない場合、既定のコンバイナー (どちらも D3D12_SHADING_RATE_COMBINER_PASSTHROUGH) では、スクリーン空間シェーディング レート イメージはシェーディング粒度の決定において無視されます。 [ID3D12GraphicsCommandList5::RSSetShadingRate] に渡される 2 つ目のコンバイナーは、グローバル シェーディング レートとプリミティブごとのシェーディング レートが組み合わされた後で、シェーディング レート イメージに適用されるコンバイナーです。 最終シェーディング レートのアルゴリズムは以下によって決定されます。
ここで ApplyCombiner は以下のとおりです。

要件

ヘッダー: d3d12_xs.h
ライブラリ: d3d12_xs.lib
サポートされているプラットフォーム: XBOX Series 本体

関連項目

可変レート シェーディング (VRS)
最終更新日 2026年8月24日