API-Features (Direct3D 10)
Die Direct3D 10-Grafikpipeline stellt eine grundlegende Architekturänderung dar, die von Grund auf in Hardware und Software neu erstellt wurde, um die nächste Generation von Spielen und 3D-Multimediaanwendungen zu fördern. Es wird das Windows Display Driver Model (WDDM) verwendet, das Leistungs- und Verhaltensverbesserungen ermöglicht, z. B. virtuellen GPU-Speicher.
Entwickler, die mit Direct3D 9 vertraut sind, werden eine Reihe von Funktionserweiterungen und Leistungsverbesserungen in Direct3D 10 entdecken, einschließlich:
- Die Fähigkeit, ganze Primitive in der neuen geometry-shader-Phasezu verarbeiten.
- Die Möglichkeit, pipelinegenerierte Scheitelpunktdaten mithilfe der Streamausgabephasein den Arbeitsspeicher auszugeben.
- Organisation des Pipelinezustands in 5 unveränderliche Zustandsobjekte,wodurch eine schnelle Konfiguration der Pipeline ermöglicht wird.
- Organisation von Shaderkonstanten in konstanten Puffern,wodurch der Bandbreitenaufwand für die Bereitstellung von Shaderkonstantendaten minimiert wird.
- Die Möglichkeit zum Austausch und Einrichten von Pro-Primitive-Material mithilfe eines Geometrie-Shaders.
- Neue Ressourcentypen (einschließlich Texturarrays, die über Shader indiziert werden können) und Ressourcenformate.
- Erhöhte Generalisierung des Ressourcenzugriffs mithilfe einer Ansicht.
- Legacy-Hardwarefunktionsbits (Caps) wurden zugunsten eines umfangreichen Satzes garantierter Funktionen entfernt, die auf Direct3D-Hardware der 10-Klasse (mindestens) ausgerichtet sind.
- Mehrstufige Runtime: Die Direct3D 10-API wird mit Ebenen erstellt, beginnend mit der grundlegenden Funktionalität im Kern und der Erstellung optionaler und Entwicklerunterstützungsfunktionen (Debuggen usw.) in äußeren Ebenen.
- Vollständige HLSL-Integration: Alle Direct3D 10-Shader werden in HLSL geschrieben und mit dem Common-Shader-Kernimplementiert.
- Eine Erhöhung der Anzahl von Renderzielen, Texturen und Samplern. Es gibt auch keine Längenbeschränkung für Shader.
- Ganzzahlige und bitweise Shadervorgänge.
- Rücklesen einer Tiefen-/Schablonenoberfläche oder einer Multisampled-Ressource, sobald sie nicht mehr als Renderziel gebunden ist.
- Multisampled Alpha-to-Coverage-Unterstützung.
Es gibt zusätzliche Verhaltensunterschiede, die Direct3D 9-Entwickler ebenfalls beachten sollten (siehe Überlegungen zu Direct3D 9 zu Direct3D 10).
Hier finden Sie eine Liste der Direct3D 9-Features, die entweder nicht mehr unterstützt werden oder in Direct3D 10 überarbeitet wurden (siehe Veraltete Features).