Direct3D-Architektur (Direct3D 9)
Dieses Thema enthält zwei allgemeine Ansichten der Direct3D-Architektur:
- Direct3D-Grafikpipeline : Eine Ansicht der internen Verarbeitungsarchitektur des Direct3D-Renderingsystems.
- Direct3D-Systemintegration : Hier erfahren Sie, wie Direct3D zwischen einer Anwendung und der Grafikhardware vermittelt.
Direct3D-Grafikpipeline
Die Grafikpipeline bietet die Leistung, um Direct3D-Szenen effizient zu verarbeiten und auf einem Display zu rendern, wobei die verfügbare Hardware genutzt wird. Das folgende Diagramm zeigt die Bausteine der Pipeline:
Pipelinekomponente | BESCHREIBUNG | Verwandte Themen |
---|---|---|
Vertexdaten | Nicht transformierte Modellvertices werden in Vertexspeicherpuffern gespeichert. | Vertexpuffer (Direct3D 9), IDirect3DVertexBuffer9 |
Primitive Daten | Geometrische Grundtypen, einschließlich Punkten, Linien, Dreiecken und Polygonen, werden in den Vertexdaten mit Indexpuffern referenziert. | Indexpuffer (Direct3D 9), IDirect3DIndexBuffer9, Primitive,Grundtypen höherer Ordnung (Direct3D 9) |
Mosaik | Die Tesselatoreinheit konvertiert Grundtypen höherer Ordnung, Verschiebungszuordnungen und Gitterpatches in Vertexpositionen und speichert diese Speicherorte in Vertexpuffern. | Tessellation (Direct3D 9) |
Vertexverarbeitung | Direct3D-Transformationen werden auf Scheitelpunkte angewendet, die im Vertexpuffer gespeichert sind. | Vertexpipeline (Direct3D 9) |
Geometrieverarbeitung | Clipping, Culling der Rückseite, Attributauswertung und Rasterisierung 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-Texturen (Direct3D 9), IDirect3DTexture9 |
Texture Sampler | Die Texturebenenfilterung wird auf Eingabetexturwerte angewendet. | Direct3D-Texturen (Direct3D 9) |
Pixelverarbeitung | Pixelshadervorgänge verwenden Geometriedaten, um Eingabevertex- und Texturdaten zu ändern, ergibt die Farbwerte der Ausgabepixel. | Pixelpipeline (Direct3D 9) |
Pixelrendering | Abschließende Renderingprozesse ändern die Pixelfarbwerte mit Alpha-, Tiefen- oder Schablonentests oder durch Anwenden von Alphamischung oder Nebel. Alle resultierenden Pixelwerte werden auf 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 Zugriff auf die Grafikhardware des Computers über den Gerätetreiber für die Grafik Karte. Im Gegensatz zu GDI kann Direct3D hardwarefeatures nutzen, indem ein hal-Gerät erstellt wird.
Ein hal-Gerät ermöglicht die Hardwarebeschleunigung für Grafikpipelinefunktionen basierend auf dem Featuresatz, der vom Grafik-Karte unterstützt wird. Direct3D-Methoden werden bereitgestellt, um Geräteanzeigefunktionen zur Laufzeit abzurufen. (Siehe IDirect3DDevice9::GetDeviceCaps.) Wenn eine Funktion nicht von der Hardware bereitgestellt wird, meldet die Hal sie nicht als Hardwarefunktion.
Weitere Informationen zu hal- und Referenzgeräten, die von Direct3D unterstützt werden, finden Sie unter Gerätetypen (Direct3D 9).