Erste Schritte mit Direct3D
Direct3D ist eine API auf niedriger Ebene zum Zeichnen von Primitiven 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 konsistenten Abstraktion aus. Sie müssen jedoch weiterhin wissen, wie 3D-Grafiken ge zeichnen werden.
- Dient zum Erstellen eines separaten grafikspezifischen Prozessors. Neuere GPUs verfügen über Hunderte oder Tausende von parallelen Prozessoren.
- Hebt die parallele Verarbeitung hervor. 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 gemischt.
Welche Direct3D-APIs können Sie verwenden?
Welche Direct3D-APIs Sie auswählen, hängt vom App-Stil ab, den 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 wird das XNA-Framework für Desktop-Apps nicht mehr aktiv unterstützt. Aber Windows Store Apps, UWP-Apps und Desktop-Apps können 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?
Welche Direct3D-API-Version Sie auswählen, hängt vom Betriebssystem und der Hardwareebene ab, die Sie als Ziel verwenden möchten.
- Wenn Sie als Ziel für Windows 8 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 11-Level-Hardware.
- 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-Renderingpipelinefließen Daten aus mehreren Quellen, z. B. den Tributaries eines Flusses.
- Einige Teile des Flusses sind programmierbar.
- Einige Teile verfügen über Regler und Wählregler.
- Datenquellen sind entweder serielle Datenströme von Paketen (Scheiteltices) oder indizierbare Arrays (Shaderressourcen).
- Scheitelungen und Shaderressourcen fließen in Primitive, die Sie verstärken können.
- Primitive und Shaderressourcen fließen in Pixelvorgänge ein.
Direct3D-Compute-Shader
Mit dem Direct3D-Compute-Shaderwerden alle GPU-Prozessoren parallel ausgeführt. Der Compute-Shader verhält sich also eher wie ein Flüsse.