Votre question

Initialisation aux Shaders avec DirectX

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
24 Mars 2009 11:59:10

Voilà, ça fait un petit temps que je me documente sur le sujet, j'aimerai me lancer dans les shaders (pixel et vertex shaders) sous DirectX en C/C++ pour la réalisation d'un jeu.

Le code pour implémenter ça dans mon programme me semble simple par contre je n'ai pas trouvé de tutorial pour apprendre le language des shaders...

Avec DirectX on peut utilier le HLSL (Hight-Level Shader Language) ou un language du type assembleur. J'en déduit que l'assembleur est plus laborieux mais plus performant et plus complet (corrigés-moi si je me trompe), c'est celui que je voudrais utiliser.

Pour le HLSL il y a pas mal de documentation mais je cherche un bon cours sur l'assembleur, j'ai quelque bases en assembleur mais je n'ai jamais programmé pour un GPU.

Voilà donc si quelqu'un sait où je peux trouver ça ou connais bien la différence entre les languages, merci!

Autres pages sur : initialisation shaders directx

26 Mars 2009 19:15:52

Merci beaucoup, mais ce que je recherchais c'était un cours sur la programmation de shaders en assembleur.

Sinon effectivement je suis en C++, mais dans mon code je demande à la carte graphique de charger un programme qui peut être compilé soit à partir de l'assembleur ou d'un langage évolué de type C. Et je manque d'avis quand aux avantages de l'un ou l'autre donc je juge par moi même et je choisi le langage assembleur qui ne me fait pas peur.

Voici le genre de code que donne un shader en ASM (on constate des instruction différentes de l'ASM pour CPU):

  1. ; A simple pixel shader
  2. ; This uses the ps 2.0 instruction set and registers
  3. ps_2_0
  4. ;
  5. ; Declare the s0 register to be the sampler for stage 0
  6. dcl_2d s0
  7.  
  8.  
  9. ; Declare t0 to have 2D texture coordinates
  10. ; from stage 0. These are the interpolated
  11. ; texture coordinates.
  12. dcl t0.xy
  13.  
  14.  
  15. ; Sample the texture at stage 0 into the r1 temporary register
  16. texld r1, t0, s0
  17.  
  18.  
  19. ; move r1 to the output register
  20. mov oC0, r1


Voilà sinon ici ils disent que les différences de performance ne sont pas notable apparement:

http://www.gamedev.net/community/forums/topic.asp?topic...
m
0
l
Contenus similaires
Pas de réponse à votre question ? Demandez !
30 Mars 2009 12:13:55

En effet elle est pas terrible cette doc, je cherche un cours où ils expliquent bien les différentes instructions et les registres en assembleur pour GPU.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS