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.