Modèles de nuanceur et profils de nuanceur

Le langage de trame de haut niveau pour DirectX implémente une série de modèles de nuanceur. À l’aide de HLSL, vous pouvez créer des nuanceurs programmables de type C pour le pipeline Direct3D. Chaque modèle de nuanceur s’appuie sur les fonctionnalités du modèle antérieur, implémentant davantage de fonctionnalités avec moins de restrictions.

Le modèle de nuanceur 1 a démarré avec DirectX 8 et incluait des instructions de niveau d’assembly et de type C. Ce modèle présente de nombreuses limitations causées par le matériel de nuanceur programmable précoce. Les modèles de nuanceur 2 et 3 ont considérablement développé le nombre d’instructions et les constantes que les nuanceurs peuvent utiliser. Ils sont beaucoup plus puissants que le modèle de nuanceur 1, mais comportent toujours certaines des limitations existantes du premier modèle de nuanceur.

À compter de Windows Vista, le nuanceur modèle 4 est une refonte complète. Il permet un nombre illimité d’instructions et de constantes (dans les contraintes matérielles de votre machine), a des objets modélisés pour rendre l’échantillonnage de texture plus propre et plus efficace, et a le moins de restrictions d’un modèle de nuanceur. Toutefois, il nécessite le modèle de pilote Windows qui est uniquement disponible sur le système d’exploitation Windows Vista (ou version ultérieure).

Profils de nuanceur

Un profil de nuanceur est la cible pour la compilation d’un nuanceur ; ce tableau répertorie les profils de nuanceur pris en charge par chaque modèle de nuanceur.

Modèle nuanceur Profils de nuanceur
Modèle de nuanceur 1 vs_1_1
Modèle de nuanceur 2 ps_2_0, ps_2_x, vs_2_0, vs_2_x, ps_4_0_level_9_0, ps_4_0_level_9_1, ps_4_0_level_9_3, vs_4_0_level_9_0, vs_4_0_level_9_1, vs_4_0_level_9_3, lib_4_0_level_9_1, lib_4_0_level_9_3
Modèle de nuanceur 3 ps_3_0, vs_3_0
Modèle de nuanceur 4 cs_4_0, gs_4_0, ps_4_0, vs_4_0, cs_4_1, gs_4_1, ps_4_1, vs_4_1, lib_4_0, lib_4_1
Modèle de nuanceur 5 cs_5_0, ds_5_0, gs_5_0, hs_5_0, ps_5_0, vs_5_0, lib_5_0 (bien que gs_4_0, gs_4_1, ps_4_0, ps_4_1, vs_4_0 et vs_4_1 aient été introduits dans le modèle de nuanceur 4.0, le modèle de nuanceur 5 ajoute la prise en charge de ces profils de nuanceur pour les mémoires tampons structurées et les mémoires tampons d’adresses d’octets.)
Modèle de nuanceur 6 cs_6_0, ds_6_0, gs_6_0, hs_6_0, ps_6_0, vs_6_0, lib_6_0

Différences entre Direct3D 9 et Direct3D 10 :

  • Direct3D 9 a introduit les modèles de nuanceur 1, 2 et 3.
  • Direct3D 10 introduit le nuanceur modèle 4.
  • Direct3D 10.1 a introduit le modèle de nuanceur 4.1.

Profils d’effet

Un profil d’effet est la cible pour la compilation d’un effet/nuanceur ; Ce tableau répertorie les profils d’effet pris en charge par chaque version de Direct3D.

Différences entre Direct3D 9 et Direct3D 10 :

  • Direct3D 9 a introduit des profils effect-framework fx_1_0 et fx_2_0.
  • Direct3D 10 a introduit le profil effect-framework fx_4_0.
  • Direct3D 10.1 a introduit des fx_4_1 de profil effect-framework.
  • Direct3D 11 a introduit des fx_5_0 de profil effect-framework.

Notes

Ces profils d’effets hérités sont déconseillés.

Référence pour HLSL