Direct3D-Architektur (Direct3D 9)
Dieses Thema bietet zwei übergeordnete Ansichten der Architektur von Direct3D:
- Direct3D-Grafikpipeline: Eine Ansicht der internen Verarbeitungsarchitektur des Direct3D-Renderingsystems.
- Direct3D-Systemintegration: Eine Ansicht, wie Direct3D zwischen einer Anwendung und der Grafikhardware vermittelt.
Direct3D-Grafikpipeline
Die Grafikpipeline bietet die Leistung, Direct3D-Szenen effizient zu verarbeiten und auf einer Anzeige zu rendern, wobei die Vorteile der verfügbaren Hardware genutzt werden. Das folgende Diagramm zeigt die Bausteine der Pipeline:

| Pipelinekomponente | Beschreibung | Verwandte Themen |
|---|---|---|
| Scheitelpunktdaten | Nicht transformierte Modellvertices werden in Vertexspeicherpuffern gespeichert. | Vertexpuffer (Direct3D 9), IDirect3DVertexBuffer9 |
| Primitive Daten | Auf geometrische Grundtypen, einschließlich Punkten, Linien, Dreiecken und Polygonen, wird in den Scheitelpunktdaten mit Indexpuffern verwiesen. | Indexpuffer (Direct3D 9), IDirect3DIndexBuffer9, Primitive, Primitive höherer Ordnung (Direct3D 9) |
| Mosaik | Die Mosaikeinheit konvertiert Primitive höherer Ordnung, Verschiebungszuordnungen und Gitternetzpatches in Scheitelpunktpositionen und speichert diese Positionen in Scheitelpunktpuffern. | Mosaik (Direct3D 9) |
| Vertexverarbeitung | Direct3D-Transformationen werden auf Scheitelpunkte angewendet, die im Scheitelpunktpuffer gespeichert sind. | Vertexpipeline (Direct3D 9) |
| Geometrieverarbeitung | Clipping, Back Face Culling, Attributauswertung und Rasterung werden auf die transformierten Scheitelpunkte angewendet. | Pixelpipeline (Direct3D 9) |
| Texturierte Oberfläche | Texturkoordinaten für Direct3D-Oberflächen werden direct3D über die IDirect3DTexture9-Schnittstelle bereitgestellt. | Direct3D Textures (Direct3D 9), IDirect3DTexture9 |
| Textur-Sampler | Die Filterung auf Texturebene wird auf Eingabetexturwerte angewendet. | Direct3D-Texturen (Direct3D 9) |
| Pixelverarbeitung | Pixel-Shadervorgänge verwenden Geometriedaten, um Eingabevertex- und Texturdaten zu ändern und Ausgabepixelfarbwerte zu erhalten. | Pixelpipeline (Direct3D 9) |
| Pixelrendering | Endgültige Renderingprozesse ändern Pixelfarbwerte mit Alpha-, Tiefen- oder Schablonentests oder durch Anwenden von Alphablending oder Blending. Alle resultierenden Pixelwerte werden der Ausgabeanzeige angezeigt. | Pixelpipeline (Direct3D 9) |
Direct3D-Systemintegration
Das folgende Diagramm zeigt die Beziehungen zwischen einer Window-Anwendung, Direct3D, GDI und der Hardware:

Direct3D macht eine geräteunabhängige Schnittstelle für eine Anwendung verfügbar. Direct3D-Anwendungen können zusammen mit GDI-Anwendungen vorhanden sein, und beide haben über den Gerätetreiber für die Grafikkarte Zugriff auf die Grafikhardware des Computers. Im Gegensatz zu GDI kann Direct3D hardwarefeatures nutzen, indem ein -Gerät erstellt wird.
Ein Speichergerät bietet Hardwarebeschleunigung für Grafikpipelinefunktionen basierend auf dem von der Grafikkarte unterstützten Featuresatz. Direct3D-Methoden werden bereitgestellt, um Geräteanzeigefunktionen zur Laufzeit abzurufen. (Siehe IDirect3DDevice9::GetDeviceCaps.) Wenn eine Funktion nicht von der Hardware bereitgestellt wird, meldet das Halogen sie nicht als Hardwarefunktion.
Weitere Informationen zu -Geräten und Referenzgeräten, die von Direct3D unterstützt werden, finden Sie unter Gerätetypen (Direct3D 9).