Vorgehensweise: Instanzieren eines Geometry-Shaders

Die Geometrie-Shader-Instancing ermöglicht die Ausführung mehrerer Ausführungen desselben Geometrie-Shaders pro Grundtyp. Um einen Geometrie-Shader zu instance, fügen Sie der Standard-Shaderfunktion ein instance-Attribut hinzu, und identifizieren Sie einen instance Indexparameter im Text der Shaderfunktion.

So instanzieren Sie einen Geometry-Shader:

  1. Fügen Sie der funktion Standard das attribut instance hinzu.

    [instance(24)]
    

    Dadurch wird die Anzahl der Instanzen (maximal 32) definiert, die für jeden Grundtyp ausgeführt werden sollen.

  2. Fügen Sie den SV_GSInstanceID Systemwert an eine Variable in der Funktionsparameterliste an, mit der die ID des ausgeführten instance nachverfolgt werden kann.

    uint InstanceID : SV_GSInstanceID
    
  3. Kompilieren und erstellen Sie den Shader wie jeder andere Geometrie-Shader.

Weitere Details sind:

  • Die maximale Anzahl instance ist 32.
  • Die maximale Vertexanzahl ist eine maximale Vertexanzahl pro instance.
  • Jeder instance Aufruf (wie jeder Geometrie-Shaderaufruf) erhöht die Aufrufanzahl und generiert einen impliziten RestartStrip().

Geometrie-Shaderfeatures