direct x 9 a un language de haut nivo pour les shaders ou c tjs de ...

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: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
Reply

Marsh Posté le 22-03-2003 à 20:38:53   

Reply

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).

Reply

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.


Message édité par Tetragrammaton IHVH le 22-03-2003 à 20:53:31

---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

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.
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.


 
ça suppose de connaitre la programmation d'un assembleur classique ou on peut apprendre cekui de directX tout seul ?
 

Reply

Marsh Posté le 22-03-2003 à 21:09:33    

airseb a écrit :


 
ça suppose de connaitre la programmation d'un assembleur classique ou on peut apprendre cekui de directX tout seul ?
 
 


 
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 :D)
* 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.


Message édité par Tetragrammaton IHVH le 22-03-2003 à 21:31:44

---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 22-03-2003 à 22:08:12    

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 :D)
* 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.


 
okai merci  :D

Reply

Marsh Posté le 23-03-2003 à 01:49:13    

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 :D)
* 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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed