D3D12_VIEW_INSTANCING_DESC 構造体 (d3d12.h)

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

構文

typedef struct D3D12_VIEW_INSTANCING_DESC {
  UINT                               ViewInstanceCount;
  const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations;
  D3D12_VIEW_INSTANCING_FLAGS        Flags;
} D3D12_VIEW_INSTANCING_DESC;

メンバー

ViewInstanceCount

使用するビューの数 (最大D3D12_MAX_VIEW_INSTANCE_COUNT) を指定します。

pViewInstanceLocations

ViewInstanceCount ビュー インスタンスの位置構造を含むメモリ位置のアドレス。各ビュー インスタンスのビューポート/ハサミとレンダー ターゲットの詳細の位置を指定します。

Flags

追加のオプションを使用してビューのインスタンス化を構成します。

注釈

ビューインスタンス化は、この構造体を使用して PSO で宣言されます。 ビュー インスタンス数は、ビューの数に基づいてパイプライン全体を最適化できるように PSO で設定されます。

PSO で宣言されていない場合、または ViewInstanceCount が 0 に設定されている場合、ビューインスタンス化は無効になります。 無効にすると、ビューのインスタンス化が有効になり、ViewInstanceCount が 1 に設定されているかのようにレンダリングが動作します。シェーダーでは、SV_ViewIDでは値 0 のみが表示され、1 つのビュー インスタンスのみが生成されます。 これにより、ビューのインスタンス化を認識しているシェーダーは、それを無効にする PSU で引き続き使用できます。 一部のアダプターはシェーダー モデル 6.1 (SV_ViewIDを公開) をサポートしているが、インスタンス化の表示はサポートしない場合があります。これらのアダプターは、ViewInstanceCount を 0 または 1 として宣言する PSU でSV_ViewID入力するシェーダーを引き続きサポートする必要があります。

ラスタライズの前のシェーダーは、SV_ViewIDに依存する必要のないSV_RenderTargetArrayIndex値とSV_ViewportArrayIndex値を出力できます。 プリミティブが送信されるビューポートとレンダー ターゲットの最終的な有効インデックスを計算するために、これらの値が存在する場合は、PSO で宣言されたビュー インスタンスの位置の ViewportArrayIndex 値と RenderTargetArrayIndex 値に追加されます。 計算されたインデックスが範囲外の場合 (つまり、インデックスがそれぞれの配列内のビューポート要素またはレンダー ターゲット要素の数より大きい場合)、有効なインデックスは 0 になります。

ビューポートまたはレンダー ターゲット インデックスを動的に選択するシェーダーの場合、アプリケーションでは、PSO で宣言されているすべてのビュー インスタンスの場所を 1 つの値 (0 など) に設定して、動的に選択されたSV_RenderTargetArrayIndexとSV_ViewportArrayIndex値が追加される均一なベース インデックスとして機能させることができます。

要件

要件
Header d3d12.h

こちらもご覧ください

コア構造