Direct
3D 9.0L heet al een tijd 9Ex. Maargoed, een hoop mensen weten het exacte verschil nog niet dus dat zal ik hieronder voor eens en altijd duidelijk maken:
Even een stukje geschiedenis om te beginnen: onder MS-DOS hadden programmeurs directe toegang tot hardware, Microsoft stond dat met ingang van Windows 95 niet meer zomaar toe. Een aantal developers bij MS waren bang dat Windows 95 minder succesvol dan gehoopt zou zijn als gamedevelopers liever games voor MS-DOS zouden blijven maken, dus kwam er een set APIs (application programming interface) die DirectX werd gedoopt waarmee de programmeurs toch makkelijk met de hardware konden communiceren.
Met Vista zijn er aan aantal dingen veranderd ten opzichte van de vorige Windows versies, met name het drivermodel voor grafische kaarten. Het nieuwe model heet Windows Display Driver Model (WDDM), en MS noemt het oude model van Windows XP XPDM. WDDM heeft een aantal voordelen, zoals meer mogelijkheden en betere prestaties en stabiliteit (dit omdat de drivers nu voor een groot deel niet meer op kernelniveau draaien, en een drivercrash dus niet heel Windows met zich meeneemt), de rest staat
hier. Qua DirectX betreft is alleen Direct3D (het onderdeel dat het 3D-werk voor zijn rekening neemt) echt veranderd, dit komt natuurlijk door WDDM en het feit dat er steeds meer grafische pracht en praal uit een videokaart kan worden gehaald. In Vista is DirectX 10 aanwezig, en de volgende versies van Direct3D:
Ten eerste heb je gewoon
Direct3D 9.0c zoals je die kent van Windows XP. De games die van Direct3D 9 (en oudere versies) gebruik maken onder Vista 'zien' niets van het WDDM om zo achterwaartse compatibiliteit met oude games te garanderen. Dit is ook de enige Direct3D versie de beschikbaar is als er voor je grafische kaart geen WDDM-drivers beschikbaar zijn.
Daarna komt
Direct3D 9Ex (voorheen bekend als versie 9.0L waar een tijdje het gerucht van rondging dat dit Direct3D 10 voor XP zou zijn - wat dus niet klopt), een uitbreiding op Direct3D 9 die het wel mogelijk maakt om functies uit WDDM te gebruiken. Onder andere de nieuwe user interface van Vista (Aero) maakt hier gebruik van, zodat de 'oude' hardware die D3D 9 hardwarematig kan versnellen volledig tot zijn recht komt, en dat de nieuwe mogelijkheden van WDDM ook tot hun recht komen (zoals bijvoorbeeld het kunnen afspelen van HD-DVD/Blu-ray films op volledige resolutie die met HDCP is beveiligd).
En dan natuurlijk
Direct3D 10 waar zoveel over geschreven en gezegd is. Net zoals 9Ex heeft versie 10 WDDM-stuurpogramma's nodig om te kunnen functioneren, maar ook
moet er een videokaart aanwezig zijn die Direct3D 10 compleet ondersteund. Met de oude versies van Direct3D kon er nog prima een D3D 9 spel draaien op oude hardware die slechts de functies van D3D 7 ondersteund, wat de videokaart niet kon werd dan wel door de processor gedaan of weggelaten.
Verder is Direct3D 10 opnieuw geschreven met de huidige en toekomstige technologie in gedachten, en zijn er een hoop dingen veranderd om dit op een nettere (dus makkelijkere) manier op te lossen en gamedevelopers zo veel mogelijk vrijheid te geven in wat ze kunnen maken. Maar voor het allemaal zover is moeten er games zijn die er gebruik van maken, en heb je als gebruiker een videokaart nodig die het aankan. Kortom, op het moment van schrijven gebruikt iedereen over het algemeen nog Direct3D 9 en de overige delen van DirectX 10 wanneer ze gamen

.
Wat leesvoer van MSDN:
•
Graphics APIs in Windows Vista
•
Windows Vista Display Driver Model
•
The Windows Vista Developer Story: DirectX