
Tableau comparatif de DirectX 8 et 9

La nouveauté principale de DirectX9 réside en une profonde évolution des Shaders. Vertex et Pixel Shaders passent en effet en version 2.0, en subissant une grande amélioration de leurs caractéristiques.
Pour les Vertex Shaders cela se traduit par un nombre d'instructions multiplié par huit, en passant ainsi de 128 à 1024 par vertice, de la même façon que le nombre de constantes qui a lui aussi augmenté. Parallèlement, les Vertex ont acquis une flexibilité bien supérieure par rapport à la version 1.1. En effet, les programmeurs peuvent maintenant compter sur un contrôle de flux statique lors d'un traitement, ce qui correspond à la possibilité de stopper un calcul en cours, chose impossible avec la version 1.1. Ainsi, le gain en termes de performance est appréciable puisque le GPU ne s'encombre plus de calculs inutiles sur une scène et perd de la sorte moins de temps sur certains rendus.
Les Pixel Shaders ne sont pas en reste, puisque comme le montre le tableau comparatif le nombre de textures par pixel, d'instructions de texture et d'instructions de couleur est en nette augmentation. Les capacités de traitements s'en trouvent donc accrues, ce dont peuvent profiter les programmeurs pour nous faire bénéficier de scènes 3D plus détaillées graphiquement. Avec un codage passant sur 128 bits en virgule flottante, la précision des données permet d'appliquer jusqu'à 1024 nuances de couleur sur chaque canal, soit la possibilité de réaliser des images plus riches en contraste, notamment sur les zones claires ou ombragées.
Contrairement à DirectX8.1 qui avait introduit une structure de programmation différente pour les Pixel Shaders avec la version 1.4, les Shaders se retrouvent maintenant avec des spécifications uniques, ce qui ne peut que simplifier la tâche des programmeurs qui peuvent optimiser au mieux leurs applications. Cela ne peut être que bénéfique pour les performances de celles-ci.
Enfin, certains effets ont été ajoutés à DirectX9 pour accroître encore la qualité graphique et la précision du rendu. Ainsi, pour mieux gérer le détail des objets en fonction de la distance, la tessellation dynamique a été implémentée en hardware. A ceci s'ajoute également le Displacement Mapping, qui consiste en une évolution du Bump Mapping et qui permet d'améliorer la gestion des effets de relief sur les objets.