Aan de slag met Direct3D

Direct3D is een API op laag niveau voor het tekenen van primitieven met de renderingpijplijn of voor het uitvoeren van parallelle bewerkingen met de compute-shader.

Wat is Direct3D?

Direct3D is een API op laag niveau die u kunt gebruiken om driehoeken, lijnen of punten per frame te tekenen of om zeer parallelle bewerkingen op de GPU te starten.

Direct3D:

  • Verbergt verschillende GPU-implementaties achter een coherente abstractie. Maar u moet nog steeds weten hoe u 3D-afbeeldingen kunt tekenen.
  • Is ontworpen om een afzonderlijke grafische specifieke processor aan te sturen. Nieuwere GPU's hebben honderden of duizenden parallelle processors.
  • Benadrukt parallelle verwerking. U stelt een heleboel rendering- of rekenstatus in en start vervolgens een bewerking. Je wacht niet op onmiddellijke feedback van de operatie. U combineert geen CPU- en GPU-bewerkingen.

Welke Direct3D-API's kunt u gebruiken?

De Direct3D-API's die u kiest, zijn afhankelijk van de stijl van de app die u wilt schrijven.

  • Als u een UWP-app wilt schrijven, gebruikt u een subset van Direct3D 11-, DXGI- en HLSL-API's. Zie Win32- en COM-API's voor UWP-appsvoor een lijst met deze API's. Zie 3D-afbeeldingen maken met DirectXvoor meer informatie over het schrijven van een Direct3D 11 Windows Store-app.
  • Als u een desktop-app schrijft, kunt u de volledige set Direct3D 11-, DXGI- en HLSL-API's gebruiken.
  • Vanaf Windows 8 ondersteunen we het XNA-framework voor desktop-apps niet meer actief. Maar Windows Store-apps, UWP-apps en bureaublad-apps kunnen de volledige set XAudio2- en DirectXMath-API's gebruiken. Desktop-apps kunnen de volledige set van de XInput API's gebruiken, terwijl Windows Store-apps en UWP-apps de meeste XInput-API's kunnen gebruiken; Zie XInput Versionsvoor meer informatie.

Welke Direct3D-versie?

De Direct3D-API-versie die u kiest, is afhankelijk van het besturingssysteem en het hardwareniveau waarop u zich wilt richten.

  • Als u Windows 8 en hoger wilt targeten, gebruikt u Direct3D 11-API's.
  • Direct3D 9-API's gebruiken met Windows XP en hoger. Alle hardware ondersteunt Direct3D 9 API's, zelfs nieuwere Direct3D 11-niveau hardware.
  • Gebruik Direct3D 10-API's met Windows Vista en hoger. Alleen Direct3D 10-niveau en hoger hardware ondersteunt Direct3D 10 API's.
  • Gebruik Direct3D 10.1- en Direct3D 11-API's met Windows 7 en hoger. U kunt ook Direct3D 10.1- en Direct3D 11-API's gebruiken met Windows Vista met Service Pack 2 (SP2).

Direct3D Rendering-pijplijn

In de Direct3D rendering-pijplijnstromen gegevens uit verschillende bronnen, zoals de zijlijnen van een rivier.

  • Sommige onderdelen van de stroom zijn programmeerbaar.
  • Sommige onderdelen hebben knoppen en wijzerplaten.
  • Bronnen van gegevens zijn seriestromen van pakketten (vertices) of indexeerbare arrays (shader resources).
  • Hoekpunten en arceringsbronnen stromen naar primitieven, die u kunt versterken.
  • In pixelbewerkingen komen primitieven en shader-resources terecht.

Direct3D Compute Shader

Met de Direct3D compute-shaderworden alle GPU-processors parallel uitgevoerd. De compute shader gedraagt zich dus meer als een vijver dan als een rivier.