Condividi tramite


D3D12_VIEW_INSTANCING_DESC struttura (d3d12.h)

Specifica i parametri usati durante la configurazione instancing della visualizzazione.

Sintassi

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

Members

ViewInstanceCount

Specifica il numero di visualizzazioni da usare, fino a D3D12_MAX_VIEW_INSTANCE_COUNT.

pViewInstanceLocations

Indirizzo di una posizione di memoria contenente le strutture di posizione dell'istanza di visualizzazione ViewInstanceCount che specificano la posizione di viewport/scissor e esegue il rendering dei dettagli di destinazione di ogni istanza di visualizzazione.

Flags

Configura la visualizzazione instancing con opzioni aggiuntive.

Commenti

La visualizzazione instancing viene dichiarata in un oggetto PSO usando questa struttura. Il numero di istanze di visualizzazione è impostato nel pso per consentire l'ottimizzazione dell'intera pipeline in base al numero di visualizzazioni.

La visualizzazione instancing è disabilitata quando non è dichiarata nell'oggetto PSO o quando ViewInstanceCount è impostato su 0. Se disabilitato, il rendering si comporta come se la visualizzazione instancing è abilitata e ViewInstanceCount è impostata su 1; shader visualizza solo un valore pari a 0 in SV_ViewID e viene generata solo un'istanza di visualizzazione. Ciò consente agli shader che sono consapevoli dell'instancing della visualizzazione di essere ancora usati negli oggetti PSO che la disabilitano. Alcuni adattatori potrebbero supportare il modello shader 6.1 (che espone SV_ViewID) ma non la visualizzazione instancing; questi adattatori devono comunque supportare shader che input SV_ViewID in PSOs che dichiara ViewInstanceCount come 0 o 1.

Lo shader prima della rasterizzazione può restituire SV_RenderTargetArrayIndex e SV_ViewportArrayIndex valori che non devono dipendere da SV_ViewID. Per calcolare l'indice effettivo finale del viewport e la destinazione di rendering in cui verranno inviate le primitive, questi valori, quando presenti, vengono aggiunti ai valori ViewportArrayIndex e RenderTargetArrayIndex delle posizioni dell'istanza di visualizzazione dichiarate nel PSO. Se un indice calcolato non è compreso nell'intervallo, ovvero quando l'indice è maggiore del numero di elementi di destinazione del viewport o del rendering nelle rispettive matrici, l'indice effettivo diventa 0.

Per gli shader che selezionano dinamicamente il riquadro di visualizzazione o esegue il rendering degli indici di destinazione, un'applicazione può impostare tutte le posizioni dell'istanza di visualizzazione dichiarate nel psO su un singolo valore (ad esempio 0) per fungere da indice base uniforme a cui vengono aggiunti i valori SV_RenderTargetArrayIndex e SV_ViewportArrayIndex selezionati dinamicamente.

Requisiti

Requisito Valore
Intestazione d3d12.h

Vedi anche

Strutture principali