Condividi tramite


Procedura: Istanziare un Geometry Shader

L'istanziamento dello shader di geometria permette di eseguire più volte lo stesso shader di geometria per ogni primitiva. Per istanziare uno shader di geometria, aggiungere un attributo di istanza alla funzione principale dello shader e identificare un parametro di indice dell'istanza nel corpo della funzione.

Per istanziare uno shader geometrico

  1. Aggiungere l'attributo di istanza alla funzione principale.

    [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. Compila e crea lo shader esattamente come faresti con qualsiasi altro shader di geometria.

Altri dettagli includono:

  • Il numero massimo di istanze è 32.
  • Il numero massimo di vertici è un numero massimo di vertici per istanza.
  • Ogni invocazione dell'istanza (come qualsiasi invocazione di un shader di geometria) aumenta il conteggio delle invocazioni e genera un RestartStrip() implicito.

Caratteristiche dello shader geometrico