Skip to main content
ビュー インスタンス化の構成中に使用されるパラメーターを指定します。

構文

メンバー

ViewInstanceCount
型: UINT
使用するビューの数を指定します。D3D12_MAX_VIEW_INSTANCE_COUNT が上限です。 pViewInstanceLocations
型: const D3D12_VIEW_INSTANCE_LOCATION *
各ビュー インスタンスのビューポート/シザーおよびレンダー ターゲットの詳細情報の位置を指定する ViewInstanceCount 個のビュー インスタンスの位置構造体を含むメモリ位置のアドレス。 Flags
型: D3D12_VIEW_INSTANCING_FLAGS
追加のオプションでビュー インスタンス化を構成します。

解説

ビュー インスタンス化は、この構造体を使用して PSO で宣言されます。ビュー数に基づくパイプライン全体の最適化を可能にするために、ビュー インスタンス数が PSO で設定されます。 ビュー インスタンス化は、PSO で宣言されていない場合、または ViewInstanceCount が 0 に設定されている場合は無効になります。無効の場合、レンダリングは、ビュー インスタンス化が有効で ViewInstanceCount が 1 に設定されているかのように動作します。シェーダーは SV_ViewID に 0 のみの値を認識し、1 つのビュー インスタンスのみが生成されます。これにより、ビュー インスタンス化を認識しているシェーダーを、ビュー インスタンス化を無効にする PSO でも使用できます。一部のアダプターはシェーダー モデル 6.1 (SV_ViewID を公開する) をサポートしていても、ビュー インスタンス化をサポートしていない場合があります。これらのアダプターでも、ViewInstanceCount を 0 または 1 として宣言している PSO で、SV_ViewID を入力するシェーダーをサポートする必要があります。 ラスタライズの前に、シェーダーは SV_RenderTargetArrayIndex と SV_ViewportArrayIndex の値を出力できます。これらの値は SV_ViewID に依存する必要はありません。プリミティブが送信されるビューポートとレンダー ターゲットの最終的な実効インデックスを計算するために、これらの値は存在する場合、PSO で宣言されたビュー インスタンス位置の ViewportArrayIndex と RenderTargetArrayIndex の値に加算されます。計算されたインデックスが範囲外 (つまり、それぞれの配列のビューポートまたはレンダー ターゲット要素数よりも大きい) の場合、実効インデックスは 0 になります。 ビューポートまたはレンダー ターゲットのインデックスを動的に選択するシェーダーの場合、アプリケーションは、動的に選択された SV_RenderTargetArrayIndex および SV_ViewportArrayIndex の値が加算される一様なベース インデックスとして機能させるために、PSO で宣言されたすべてのビュー インスタンス位置を単一の値 (0 など) に設定できます。

要件

ヘッダー: d3d12_xs.h または d3d12_x.h
ライブラリ: d3d12_xs.lib または d3d12_x.lib
サポートされるプラットフォーム: XBOX Series 本体および XBOX One ファミリ

関連項目

コア構造体
最終更新日 2026年8月24日