direct x 9 a un language de haut nivo pour les shaders ou c tjs de ... - C++ - Programmation
Marsh Posté le 22-03-2003 à 20:51:44
les languages de plus haut niveau pour les shaders se nomment Cg de Nvidia ou RenderMonkey pour ATI. Ils sont tous les deux "marque" independant ( enfin supposes etre).
Marsh Posté le 22-03-2003 à 20:52:33
Oui, c'est le HLSL. C'est une espèce de pseudo C qui est intégré à DX9.
Y a aussi le CG du nVidia.
Mais ça n'a pas grand interet vu la petitesse d'un shader. C'est vraiment pas la mort de coder dans cet assembleur.
Marsh Posté le 22-03-2003 à 21:03:37
Tetragrammaton IHVH a écrit : Oui, c'est le HLSL. C'est une espèce de pseudo C qui est intégré à DX9. |
ça suppose de connaitre la programmation d'un assembleur classique ou on peut apprendre cekui de directX tout seul ?
Marsh Posté le 22-03-2003 à 21:09:33
airseb a écrit : |
non, ça n'apporte aucun avantage réel. Ils appellent ça un "assembleur" parce que c'est assemblé mais ça n'a pas grand chose à voir avec de l'ASM de 80x86 :
* pas d'adressage compliqué (car il n'y a pas d'adressage du tout )
* les registres sont limités à des rôles prédéfinis
* pas de boucles (sauf à partir des VS 2.0)
* une dizaine d'instructions vraiment utiles
* il y a aussi une syntaxe spéciale qui n'a rien à voir avec l'assembleur
=> les connaissances en ASM ne sont vraiment pas utiles.
Un shader fait typiquement une centaine d'instructions donc utiliser un langage de haut niveau, je trouve (avis perso) que c'est tirer un tomahawk pour tuer une mouche.
Et sinon, les concepts sont, dans tous les cas, les mêmes. Il faut connaitre les projections et les transformations homogènes.
En plus l'utilisation des shaders est ultra-simplifiée avec l'utilisation des effets (les ID3DXEffect). Je te conseille vivement de les utiliser, DX9 explose tout grâce à ça, en terme de convivialité, d'évolutivité et de facilité de mise en oeuvre.
Marsh Posté le 22-03-2003 à 22:08:12
Tetragrammaton IHVH a écrit : |
okai merci
Marsh Posté le 23-03-2003 à 01:49:13
Tetragrammaton IHVH a écrit : |
bin en fait si le langage de haut-niveau est utile, car reactor critical avait déjà mis en évidence que pour le même code asm de même niveau de shader, entre la radeon 8500 et la geforce 3/4, il y avait une version plus rapide possible pour chaque gpu (je parles pas d'utiliser des instructions propres à chaque gpu, mais juste -l'organisation- comme la diférence entre du code 486 et pentium pour tirer parti des deux pipes du pentium).
donc à priori, normaliser un langage de haut-niveau, est nécessaire pour tirer parti du max des cartes actuelles et pour autoriser l'évolution des capacitées des cartes, le code est étant optimisé par le compilo embarqué du driver vidéo.
Marsh Posté le 22-03-2003 à 20:38:53
direct x 9 a un language de haut nivo pour les shaders ou c tjs une sorte d'assembleur ?
Message édité par airseb le 22-03-2003 à 20:47:57