Condividi tramite


Procedura: Istanza di uno shader geometry

La creazione di istanze dello shader geometry consente l'esecuzione di più esecuzioni dello stesso geometry shader per ogni primitiva. Per istanza di un geometry shader, aggiungere un attributo di istanza alla funzione shader principale e identificare un parametro di indice dell'istanza nel corpo della funzione shader.

Per istanza di un geometry shader:

  1. Aggiungere l'attributo dell'istanza alla funzione main.

    [instance(24)]
    

    In questo modo viene definito il numero di istanze (massimo 32) da eseguire per ogni primitiva.

  2. Collegare il valore di sistema SV_GSInstanceID a una variabile nell'elenco dei parametri della funzione che può essere usato per tenere traccia dell'ID dell'istanza in esecuzione.

    uint InstanceID : SV_GSInstanceID
    
  3. Compilare e creare lo shader esattamente come qualsiasi altro shader geometry shader.

Altri dettagli includono:

  • Il numero massimo di istanze è 32.
  • Il numero massimo di vertici è un numero massimo di vertici per istanza.
  • Ogni chiamata di istanza (come qualsiasi chiamata geometry shader) aumenta il numero di chiamate e genera un oggetto RestartStrip(implicito).

Caratteristiche geometry shader