Publicité
Tout sur les Cartes graphiques
 Derniers articles sur les Cartes graphiques
Tous les articles Cartes graphiques
 Comparatif Cartes graphiques
Tous les comparatifs
 Dernières actualités Cartes graphiques
Toutes les actualités Cartes graphiques

Newsletters


Questions high-tech
  • Besoin d'aide ? Publiez votre question
  • Publier

Désormais supportés en version 2.0 (1.4 par DirectX 8.1), ils deviennent réellement programmables et vont permettre de découvrir de nouveaux niveaux de détail en terme de qualité d’image.

Premier point : l’unification des spécifications des pixel shaders. En effet, depuis DirectX 8.1, l’introduction de la version 1.4 imposait un important changement dans la structure de la programmation des shaders, et le fait que cette version ne soit pas supportée par les cartes nVidia a obligé les quelques développeurs qui se sont fendus d’une optimisation de leurs programmes pour la version 1.4, à développer une alternative pour les cartes ne supportant pas ce niveau de spécification.
La version 2.0 des pixel shaders introduite avec DirectX 9.0 résout ce problème dans la mesure où cette fois-ci les cartes 3D des deux constructeurs suivent cette même spécification.

D’abord, les programmes en pixel shaders ne sont plus limités à 32 instructions (DirectX 8) mais à 64. Quand aux nombres maximaux de constantes et registres utilisables, ils passent respectivement de 8 et 6, à 32 et 12.

Par ailleurs, la version 2.0 des pixel shaders inaugure de nouveaux jeux d’instructions, que nos confrères de Beyond3D ont eut la bonne idée de regrouper dans un même tableau, en comparant les instructions supportées par les deux chips phares du moment, mais aussi deux versions de DirectX 9, sur lesquelles nous reviendront plus loin.


(Tableau réalisé par Beyond 3D)

En outre, de toutes nouvelles instructions spécifiques à des besoins très précis font leurs apparitions.

Instructions scientifiques :

Dites "scientifiques", ces instructions autorisent le moteur de pixel shaders à résoudre n’importe quel algorithme mathématique. Grâce à elles, les développeurs vont désormais pouvoir inclure leurs propres formules mathématiques comme éléments pour des effets spéciaux. Par exemple, au lieu d’appliquer une simple texture bleu à un extraterrestre, il devient possible de le rendre multicolore en introduisant une fonction faisant varier la couleur de sa peau en fonction de l’angle avec lequel la lumière vient frapper chaque relief de la morphologie de celui-ci (et donc en temps réel !).

Notez les nuances de couleurs soulignant le physique pour le moins particulier de l’extraterrestre.

Egalement, l’utilisation de ces instructions permet aux développeurs de réaliser un shading procédural, technique avec laquelle l’image ci-dessous aurait été rendue sans utiliser aucune texture :

Evidemment, l’image ne précise pas combien de temps il aura fallu à Goran Kocov pour la réaliser, ni quand on verra les mêmes dans les jeux vidéo, mais le tour de force mérite le respect.

Instructions pour le contrôle de flux :

DirectX 8 était très restrictif sur le plan des enchaînements de commandes et sur la question de savoir combien de niveaux de dépendances de textures pouvaient être utilisés.

A ce sujet, DirectX 9.0 offre pour la première fois dans l’histoire de Direct3D la possibilité d’utiliser des boucles et des branches dans les programmes de pixel shaders. Par ailleurs, la réutilisation du code devient possible via le branchement conditionnel et d’autres techniques similaires. Enfin, les effets peuvent être regroupés en groupes ou familles, ce qui favorisera leur réutilisation et leur perfectionnement au fil du temps.

Ceci devrait particulièrement améliorer la productivité et l’organisation des développeurs.

Liens commerciaux
Commentaires
Ce sujet ne peut plus être commenté.
Liens commerciaux