Direct3D-Architektur (Direct3D 9)
Dieses Thema enthält zwei allgemeine 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 wird.
Direct3D-Grafikpipeline
Die Grafikpipeline bietet die Leistung, um Direct3D-Szenen effizient zu verarbeiten und auf einem Display zu rendern und dabei verfügbare Hardware zu nutzen. Das folgende Diagramm zeigt die Bausteine der Pipeline:
Pipelinekomponente | Beschreibung | Verwandte Themen |
---|---|---|
Vertexdaten | Untransformierte Modellvertices werden in Vertexspeicherpuffern gespeichert. | Vertexpuffer (Direct3D 9), IDirect3DVertexBuffer9 |
Grundtypdaten | Geometrische Grundtypen, einschließlich Punkt, Linien, Dreiecke und Polygone, werden in den Vertexdaten mit Indexpuffern referenziert. | Indexpuffer (Direct3D 9), IDirect3DIndexBuffer9, Grundtypen, Higher-Order Grundtypen (Direct3D 9) |
Tesselation | Die Tesselatoreinheit konvertiert Grundtypen, Verdrängungszuordnungen 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, Back Face Culling, Attributauswertung und Rasterung werden auf die transformierten Scheitelpunkte angewendet. | Pixelpipeline (Direct3D 9) |
Texturoberfläche | Texturkoordinaten für Direct3D-Oberflächen werden über die IDirect3DTexture9 Schnittstelle an Direct3D bereitgestellt. | Direct3D-Texturen (Direct3D 9), IDirect3DTexture9 |
Textur-Sampler | Die Texturebenenfilterung wird auf Eingabetexturwerte angewendet. | Direct3D-Texturen (Direct3D 9) |
Pixelverarbeitung | Pixel-Shadervorgänge verwenden Geometriedaten, um Eingabevertex- und Texturdaten zu ändern, ergibt Ausgabepixelfarbwerte. | Pixelpipeline (Direct3D 9) |
Pixelrendering | Abschließende Renderingprozesse ändern Pixelfarbwerte mit Alpha-, Tiefen- oder Schablonentests oder durch Anwenden von Alpha-Blending oder Nebel. 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 Zugriff auf die Grafikhardware des Computers über den Gerätetreiber für die Grafikkarte. Im Gegensatz zu GDI kann Direct3D Hardwarefeatures nutzen, indem ein Hal-Gerät erstellt wird.
Ein Hal-Gerät bietet Hardwarebeschleunigung für Grafikpipelinefunktionen, basierend auf dem von der Grafikkarte unterstützten Featuresatz. Direct3D-Methoden werden zum Abrufen von Geräteanzeigefunktionen zur Laufzeit bereitgestellt. (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).