Freigeben über


Eingabeassemblerphase (IA)

Die Eingabeassemblerphase (Input Assembler, IA) stellt primitive und angrenzende Daten für die Pipeline bereit, z. B. Dreiecke, Linien und Punkte, einschließlich semantischer IDs, um Shader effizienter zu gestalten, indem die Verarbeitung auf Grundtypen reduziert wird, die noch nicht verarbeitet wurden.

Zweck und Verwendung

Der Zweck der Eingabeassemblerphase (IA) besteht darin, primitive Daten (Punkte, Linien und Dreiecke) aus benutzerdefinierten Puffern zu lesen und die Daten in Grundtypen zusammenzustellen, die von den anderen Pipelinephasen verwendet werden, und systemgenerierte Werte anzufügen, um Shader effizienter zu gestalten. Vom System generierte Werte sind Textzeichenfolgen, die auch als Semantik bezeichnet werden. Die programmierbaren Shaderstufen werden aus einem allgemeinen Shaderkern erstellt, der vom System generierte Werte verwendet (z. B. eine Grundtyp-ID, eine Instanz-ID oder eine Vertex-ID), sodass die Shaderphase die Verarbeitung nur für diese Grundtypen, Instanzen oder Scheitelpunkte reduzieren kann, die noch nicht verarbeitet wurden.

Die IA-Phase kann Scheitelpunkte in verschiedene Grundtypen (z. B. Linienlisten, Dreiecksstreifen oder Grundtypen mit Angrenzender) zusammenstellen. Primitive Typen wie eine Dreiecksliste mit Angrenzenden und eine Zeilenliste mit Angrenzenden unterstützen die Geometry-Shaderphase (GS).

Informationen zur Adjacency sind nur für eine Anwendung in einem Geometrie-Shader sichtbar. Wenn ein Geometrie-Shader mit einem Dreieck einschließlich Angrenzender aufgerufen wurde, z. B. enthalten die Eingabedaten 3 Scheitelpunkte für jedes Dreieck und 3 Scheitelpunkte für Adjacency-Daten pro Dreieck.

Wenn die IA-Phase zum Ausgeben von Angrenzenden Daten angefordert wird, müssen die Eingabedaten Angrenzendedaten enthalten. Dies kann erfordern, dass ein Dummy-Scheitelpunkt (ein entgenerates Dreieck bilden) oder durch Kennzeichnen in einem der Vertexattribute, ob der Scheitelpunkt vorhanden ist oder nicht. Dies müsste auch von einem Geometrie-Shader erkannt und behandelt werden, obwohl die Culling der degenerierten Geometrie in der Rasterizerphase erfolgt.

Eingabe

In der IA-Phase werden Daten aus dem Arbeitsspeicher gelesen: grundtypische Daten (Punkte, Linien und/oder Dreiecke), aus befüllten Puffern.

Ausgabe

Die IA-Phase fasst die Daten in Grundtypen zusammen und fügt vom System generierte Werte an und gibt diese als Grundtypen aus, die von der Vertexshaderphase (VS) und dann anderen Pipelinephasen verwendet werden.

In diesem Abschnitt

Thema Beschreibung

Primitive Topologien

Direct3D unterstützt mehrere primitive Topologien, die definieren, wie Scheitelpunkte von der Pipeline interpretiert und gerendert werden, z. B. Punktlisten, Linienlisten und Dreiecksstreifen.

Verwenden von systemgenerierten Werten

Vom System generierte Werte werden von der Eingabeassemblerphase (IA) (basierend auf der vom Benutzer bereitgestellten Eingabesemantik) generiert, um bestimmte Effizienzen in Shadervorgängen zu ermöglichen. Durch Das Anfügen von Daten, z. B. eine Instanz-ID (sichtbar für die Vertex-Shaderphase (VS)), eine Vertex-ID (sichtbar für VS) oder eine Grundtyp-ID (sichtbar für die Phase Geometry Shader (GS) Pixel Shader (PS)/), kann eine nachfolgende Shaderphase nach diesen Systemwerten suchen, um die Verarbeitung in dieser Phase zu optimieren.

 

Grafikpipeline