構文
メンバー
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 ファミリ
