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:
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.
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
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().
Zugehörige Themen