共用方式為


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 檢視實例位置結構,指定檢視區/scissor 的位置,以及呈現每個檢視實例的目標詳細數據。

Flags

使用其他選項設定檢視實例。

備註

檢視實例是在 PSO 中使用這個結構宣告的。 檢視實例計數是在 PSO 中設定,以根據檢視數目允許整個管線優化。

當檢視實例未在 PSO 中宣告或 ViewInstanceCount 設定為 0 時,就會停用檢視實例。 停用時,轉譯的行為就像已啟用檢視實例,且 ViewInstanceCount 設定為 1;著色器只會在SV_ViewID中看到 0 的值,而且只會產生一個檢視實例。 這可讓感知檢視實例的著色器仍用於停用它的 PSO。 某些配接器可能支援著色器模型 6.1 (,這會公開SV_ViewID) 但无法检视实例;這些配接器仍然必須支援在宣告 ViewInstanceCount 為 0 或 1 的 PSO 中輸入SV_ViewID著色器。

點陣化之前的著色器可以輸出SV_RenderTargetArrayIndex和SV_ViewportArrayIndex值,這些值不需要相依於SV_ViewID。 若要計算檢視區的最終有效索引,並將基本類型傳送的目標轉譯目標,這些值會在存在時加入至 PSO 中所宣告檢視實例位置的 ViewportArrayIndex 和 RenderTargetArrayIndex 值。 如果計算的索引超出範圍 (也就是說,當索引大於其個別陣列中的檢視區數目或轉譯目標元素時,) 有效索引會變成 0。

對於動態選取檢視區或轉譯目標索引的著色器,應用程式可以將 PSO 中宣告的所有檢視實例位置設定為單一值 (例如 0) ,做為動態選取SV_RenderTargetArrayIndex和SV_ViewportArrayIndex值的統一基底索引。

規格需求

需求
標頭 d3d12.h

另請參閱

核心結構