Freigeben über


Pipelinephasen (Direct3D 10)

Die programmierbare Direct3D 10-Pipeline wurde für die Generierung von Grafiken für Echtzeit-Spieleanwendungen entwickelt. Das folgende Diagramm zeigt den Datenfluss von der Eingabe bis zur Ausgabe über jede der programmierbaren Phasen.

Diagramm des Datenflusses in der programmierbaren Direct3d 10-Pipeline

Alle Phasen können mithilfe der API konfiguriert werden. Phasen mit allgemeinen Shaderkernen (die abgerundeten rechteckigen Blöcke) können mit der HLSL-Programmiersprache programmiert werden. Wie Sie sehen, macht die Pipeline extrem flexibel und anpassbar. Der Zweck der einzelnen Stufen ist unten aufgeführt.

  • Input-Assembler Phase – Die Eingabeassemblerstufe ist für die Bereitstellung von Daten (Dreiecke, Linien und Punkte) an die Pipeline verantwortlich.
  • Vertex-Shader Phase – Die Vertex-Shader-Stufe verarbeitet Scheitelpunkte, in der Regel Vorgänge wie Transformationen, Skinning und Beleuchtung. Ein Vertex-Shader verwendet immer einen einzelnen Eingabevertex und erzeugt einen einzelnen Ausgabevertex.
  • Geometry-Shader Phase – Die Geometrie-Shader-Stufe verarbeitet ganze Grundtypen. Die Eingabe ist ein vollständiger Grundtyp (drei Scheitelpunkte für ein Dreieck, zwei Scheitelpunkte für eine Linie oder einen einzelnen Scheitelpunkt für einen Punkt). Darüber hinaus kann jeder Grundtyp auch die Vertexdaten für alle angrenzenden Randgrundtypen enthalten. Dies kann höchstens drei Scheitelpunkte für ein Dreieck oder zusätzliche zwei Scheitelpunkte für eine Linie umfassen. Der Geometry-Shader unterstützt auch eingeschränkte Geometrieverstärkung und De amplifikation. Angesichts eines Eingabegrundtyps kann der Geometry-Shader den Grundtyp verwerfen oder einen oder mehrere neue Grundtypen ausgeben.
  • Stream-Output Phase – Die Streamausgabestufe ist für das Streamen von Grundtypdaten aus der Pipeline in den Arbeitsspeicher auf dem Weg zum Rasterizer konzipiert. Daten können ausgestreamt und/oder an den Rasterizer übergeben werden. Daten, die aus dem Arbeitsspeicher gestreamt werden, können als Eingabedaten oder aus der CPU wieder in die Pipeline umgeleitet werden.
  • Rasterizerstufe – Der Rasterizer ist für das Abschneiden von Grundtypen verantwortlich, bereitet Grundtypen für den Pixelshader vor und bestimmt, wie Pixelshader aufgerufen werden.
  • Pixel-Shader Phase – Die Pixel-Shader-Stufe empfängt interpolierte Daten für einen Grundtyp und generiert daten pro Pixel, z. B. Farbe.
  • Output-Merger Phase – Die Ausgabezusammenführungsphase ist dafür verantwortlich, verschiedene Arten von Ausgabedaten (Pixelshaderwerte, Tiefen- und Schabloneninformationen) mit den Inhalten des Renderziels und tiefen-/Schablonenpuffer zu kombinieren, um das endgültige Pipelineergebnis zu generieren.

Programmierhandbuch für Direct3D 10-