Direct3D
| Direct3D | ||||
|---|---|---|---|---|
![]() | ||||
| Ontwerp en ontwikkeling | ||||
| Categorie | API voor computergraphics | |||
| Ontwikkelaar(s) | Microsoft | |||
| Besturingssysteem | Microsoft Windows, Xbox | |||
| Status en tijdlijn | ||||
| Status | Actief | |||
| Uitgebracht | 1990er jaren | |||
| Links | ||||
| Website | https://learn.microsoft.com/en-us/windows/win32/direct3d | |||
| ||||
Direct3D is een API voor grafische toepassingen van Microsoft. Het is onderdeel van DirectX en wordt gebruikt voor het weergeven van twee- en driedimensionale beelden op Windows en Xbox. Direct3D geeft programma's toegang tot de grafische processor of videokaart van een computer, waardoor grafische berekeningen met hardware-acceleratie kunnen worden uitgevoerd.[1]
Direct3D wordt onder meer gebruikt in computerspellen, grafische programma's, simulaties en game engines. De API verwerkt grafische gegevens zoals vertices, texturen, shaders en pixels, en zet deze om in beelden die op een beeldscherm worden weergegeven.
Werking
[bewerken | brontekst bewerken]Een programma dat Direct3D gebruikt, maakt verbinding met een grafische adapter. Daarna kan het programma grafische bronnen aanmaken, zoals buffers, texturen en shaders. De toepassing stuurt vervolgens opdrachten naar de grafische processor, die de berekeningen uitvoert en het resultaat opslaat in een beeldbuffer.
De grafische pijplijn van Direct3D bestaat uit verschillende stappen. In moderne versies kunnen onder meer vertex shaders, pixel shaders, compute shaders en rasterisatie worden gebruikt. Niet elk programma gebruikt alle onderdelen van de pijplijn.
Voor shaders gebruikt Direct3D de High-Level Shader Language, meestal afgekort tot HLSL. Dit is een programmeertaal waarmee ontwikkelaars shaders kunnen schrijven voor de Direct3D-pijplijn.[2]
Geschiedenis
[bewerken | brontekst bewerken]Direct3D ontstond in de jaren 1990 als onderdeel van DirectX. De API werd ontwikkeld om Windows-programma's een vaste manier te geven om 3D-hardware te gebruiken. In dezelfde periode kwamen 3D-versnellers en later geïntegreerde grafische processors op de personal computer op.
Vroege versies van Direct3D gebruikten veel vaste functies. Latere versies werden meer programmeerbaar door het gebruik van shaders. Direct3D 8 en Direct3D 9 maakten programmeerbare shaders een belangrijk onderdeel van de API. Direct3D 10 vernieuwde de grafische pijplijn en was verbonden met Windows Vista en het Windows Display Driver Model. Direct3D 11 voegde onder meer tessellatie en compute shaders toe. Direct3D 12 gaf ontwikkelaars meer directe controle over geheugenbeheer, synchronisatie en opdrachten aan de grafische processor.[3][4]
Versies
[bewerken | brontekst bewerken]Direct3D 9
[bewerken | brontekst bewerken]Direct3D 9 werd gebruikt voor veel Windows-spellen en grafische toepassingen. Deze versie ondersteunde programmeerbare shaders via verschillende shader models en werd gebruikt op onder meer Windows XP, Windows Vista en latere Windows-versies.[5]
Direct3D 10
[bewerken | brontekst bewerken]Direct3D 10 verscheen met Windows Vista. Deze versie had een vernieuwde pijplijn en gebruikte DirectX Graphics Infrastructure, afgekort DXGI, voor onder meer grafische adapters, schermmodi en het presenteren van beelden.[6]
Direct3D 11
[bewerken | brontekst bewerken]Direct3D 11 volgde Direct3D 10 op. De API ondersteunt onder meer tessellatie, compute shaders, multithreading en feature levels. Feature levels geven aan welke functies door de grafische hardware worden ondersteund.[7]
Direct3D 12
[bewerken | brontekst bewerken]Direct3D 12 is een lage-niveauversie van Direct3D. Deze versie geeft ontwikkelaars meer controle over command queues, command lists, synchronisatie en geheugenbeheer. Hierdoor moet een programma meer grafische taken zelf beheren dan bij eerdere versies van Direct3D.[8]
Direct3D 12 wordt gebruikt voor moderne Windows- en Xbox-toepassingen. De API is niet compatibel met andere grafische API's, maar wordt vaak vergeleken met Vulkan en Metal, omdat deze ook meer directe controle over grafische hardware bieden.
DirectX 12 Ultimate
[bewerken | brontekst bewerken]DirectX 12 Ultimate is een verzameling functies binnen DirectX 12 en Direct3D 12. Microsoft kondigde DirectX 12 Ultimate in 2020 aan. De functies omvatten DirectX Raytracing, Variable Rate Shading, mesh shaders en sampler feedback.[9]
DirectX Raytracing, vaak afgekort tot DXR, maakt raytracing via Direct3D 12 mogelijk. Deze techniek kan worden gebruikt voor onder meer reflecties, schaduwen en belichting.[10]
Feature levels
[bewerken | brontekst bewerken]Een feature level is een vastgelegde verzameling functies die door grafische hardware kan worden ondersteund. Met feature levels kan een programma controleren welke mogelijkheden beschikbaar zijn, zonder dat elke videokaart dezelfde Direct3D-versie volledig hoeft te ondersteunen.
Feature levels worden gebruikt in Direct3D 10, 11 en 12. Ze maken het mogelijk om één programma geschikt te maken voor meerdere generaties grafische hardware.
DXGI en WARP
[bewerken | brontekst bewerken]DirectX Graphics Infrastructure of DXGI is een onderdeel van DirectX dat samenwerkt met Direct3D. DXGI wordt gebruikt voor grafische adapters, schermmodi, bufferformaten, swapchains en het weergeven van beelden in een venster of op een monitor.[11]
Windows Advanced Rasterization Platform of WARP is een softwarematige rasterizer voor DirectX. WARP kan Direct3D-functies uitvoeren zonder geschikte hardwareversnelde grafische processor. Dit kan worden gebruikt voor compatibiliteit, testen en systemen zonder geschikte grafische driver.[12]
Gebruik
[bewerken | brontekst bewerken]Direct3D wordt gebruikt in computerspellen, game engines, grafische gebruikersinterfaces, CAD-software, simulaties, virtual reality en wetenschappelijke visualisatie. Op Windows wordt Direct3D vaak ondersteund naast andere grafische API's, zoals OpenGL en Vulkan.
Bekende game engines, waaronder Unreal Engine en Unity, ondersteunen Direct3D. Op Xbox is Direct3D de belangrijkste grafische API voor spellen en grafische toepassingen.
Vergelijking met andere API's
[bewerken | brontekst bewerken]Direct3D is vooral verbonden met Microsoft-platformen. OpenGL en Vulkan worden beheerd door de Khronos Group en zijn beschikbaar op meerdere besturingssystemen. Metal is de grafische API van Apple voor onder meer macOS, iOS en iPadOS.
Direct3D 12 en Vulkan geven ontwikkelaars meer directe controle over de grafische hardware dan oudere API's zoals Direct3D 9, Direct3D 11 en OpenGL. Daardoor verschillen ze in programmeerstijl, geheugenbeheer en synchronisatie.
Zie ook
[bewerken | brontekst bewerken]- ↑ (en) DirectX graphics and gaming. Microsoft Learn. Geraadpleegd op 5 juni 2026.
- ↑ (en) High-level shader language (HLSL). Microsoft Learn. Geraadpleegd op 5 juni 2026.
- ↑ (en) Direct3D 11 Graphics. Microsoft Learn. Geraadpleegd op 5 juni 2026.
- ↑ (en) Direct3D 12 programming guide. Microsoft Learn. Geraadpleegd op 5 juni 2026.
- ↑ (en) Programming Guide for Direct3D 9. Microsoft Learn. Geraadpleegd op 5 juni 2026.
- ↑ (en) Programming Guide for Direct3D 10. Microsoft Learn. Geraadpleegd op 5 juni 2026.
- ↑ (en) Programming guide for Direct3D 11. Microsoft Learn. Geraadpleegd op 5 juni 2026.
- ↑ (en) Direct3D 12 graphics. Microsoft Learn. Geraadpleegd op 5 juni 2026.
- ↑ (en) Announcing DirectX 12 Ultimate. DirectX Developer Blog (19 maart 2020). Geraadpleegd op 5 juni 2026.
- ↑ (en) Direct3D 12 Raytracing. Microsoft Learn. Geraadpleegd op 5 juni 2026.
- ↑ (en) DXGI. Microsoft Learn. Geraadpleegd op 5 juni 2026.
- ↑ (en) Windows Advanced Rasterization Platform (WARP) Guide. Microsoft Learn. Geraadpleegd op 5 juni 2026.

