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 |