Erste Schritte mit Direct3D
Direct3D ist eine API auf niedriger Ebene zum Zeichnen von Grundtypen mit der Renderingpipeline oder zum Ausführen paralleler Vorgänge mit dem Compute-Shader.
Was ist Direct3D?
Direct3D ist eine API auf niedriger Ebene, mit der Sie Dreiecke, Linien oder Punkte pro Frame zeichnen oder hochgradig parallele Vorgänge auf der GPU starten können.
Direct3D:
- Blendet verschiedene GPU-Implementierungen hinter einer kohärenten Abstraktion aus. Sie müssen jedoch immer noch wissen, wie Sie 3D-Grafiken zeichnen.
- Dient zum Steuern eines separaten grafikspezifischen Prozessors. Neuere GPUs verfügen über Hunderte oder Tausende von parallelen Prozessoren.
- Betont die parallele Verarbeitung. Sie richten eine Reihe von Rendering- oder Computestatus ein und starten dann einen Vorgang. Sie warten nicht auf sofortiges Feedback vom Vorgang. Cpu- und GPU-Vorgänge werden nicht miteinander kombiniert.
Welche Direct3D-APIs können Sie verwenden?
Die Direct3D-APIs, die Sie auswählen, hängen vom Stil der App ab, die Sie schreiben möchten.
- Wenn Sie eine UWP-App schreiben möchten, verwenden Sie eine Teilmenge der Direct3D 11-, DXGI- und HLSL-APIs. Eine Liste dieser APIs finden Sie unter Win32- und COM-APIs für UWP-Apps. Informationen zum Schreiben einer Direct3D 11-Windows Store-App finden Sie unter Erstellen von 3D-Grafiken mit DirectX.
- Wenn Sie eine Desktop-App schreiben, können Sie den vollständigen Satz von Direct3D 11-, DXGI- und HLSL-APIs verwenden.
- Ab Windows 8 unterstützen wir das XNA-Framework für Desktop-Apps nicht mehr aktiv. Windows Store-Apps, UWP-Apps und Desktop-Apps können jedoch den vollständigen Satz der XAudio2 - und DirectXMath-APIs verwenden. Desktop-Apps können den vollständigen Satz der XInput-APIs verwenden, während Windows Store-Apps und UWP-Apps die meisten XInput-APIs verwenden können. weitere Informationen finden Sie unter XInput-Versionen.
Welche Direct3D-Version?
Die direct3D-API-Version, die Sie auswählen, hängt von dem Betriebssystem und der Hardwareebene ab, die Sie als Ziel verwenden möchten.
- Wenn Sie Windows 8 und höher als Ziel verwenden möchten, verwenden Sie Direct3D 11-APIs.
- Verwenden Sie Direct3D 9-APIs mit Windows XP und höher. Alle Hardware unterstützt Direct3D 9-APIs, sogar neuere Direct3D-Hardware auf 11-Ebene.
- Verwenden Sie Direct3D 10-APIs mit Windows Vista und höher. Nur Direct3D 10-Level und höher-Hardware unterstützt Direct3D 10-APIs.
- Verwenden Sie Direct3D 10.1- und Direct3D 11-APIs mit Windows 7 und höher. Sie können auch Direct3D 10.1- und Direct3D 11-APIs mit Windows Vista mit Service Pack 2 (SP2) verwenden.
Direct3D-Renderingpipeline
In der Direct3D-Renderingpipeline fließen Daten aus mehreren Quellen, z. B. den Nebenflüssen eines Flusses.
- Einige Teile des Flows sind programmierbar.
- Einige Teile verfügen über Regler und Wählscheiben.
- Datenquellen sind entweder serielle Datenströme von Paketen (Scheitelpunkte) oder indizierbare Arrays (Shaderressourcen).
- Scheitelpunkte und Shaderressourcen fließen in Grundtypen ein, die Sie verstärken können.
- Grundtypen und Shaderressourcen fließen in Pixelvorgänge ein.
Direct3D-Compute-Shader
Mit dem Direct3D-Compute-Shader werden alle GPU-Prozessoren parallel ausgeführt. Der Compute-Shader verhält sich also eher wie ein Teich als wie ein Fluss.