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.