bjone Insert booze to continue | Tetragrammaton IHVH 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.
|
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. |