Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1697 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [HLSL] Problème de positionnement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[HLSL] Problème de positionnement

n°1575475
MythTitans
Posté le 15-06-2007 à 13:04:14  profilanswer
 

Bonjour à tous,  
 
J'ai essayé de programmer un shader qui permet de simuler de la lumière sur une image 2D (en fait il crée un cercle et multiplie la teinte des pixels compris dans ce cercle). Seulement voilà j'ai un petit problème pour le placement de la "lumière". Quand il est à 0.5, 0.5 (avec un intervalle 0, 1), donc au centre, il n'y a pas de problème, par contre quand je modifie la position X il ne bouge pas, si je modifie la position Y il se déplace verticalement (donc il déplace a la fois X et Y). Voici le code :  
 

Code :
  1. uniform extern texture ScreenTexture; 
  2. //Position de la lumiere   
  3. float2 position = (0.5f, 0.5f);
  4. //Rayon du cercle de lumiere  
  5. float rayon = 0.15f;
  6. //Intensité de la lumiere  
  7. float intensite = 4.0f;
  8. sampler ScreenS = sampler_state
  9. {
  10.     Texture = <ScreenTexture>;   
  11. };
  12. float4 PixelShader(float2 texCoord: TEXCOORD0) : COLOR
  13. {
  14.     float4 color = tex2D(ScreenS, texCoord);
  15.    
  16.     //Calcule la distance entre le centre de la lumiere et le pixel courrant  
  17.     //Le problème se trouve apparemment dans ma formule  
  18.     float distance = sqrt((position.x - texCoord.x)*(position.x - texCoord.x) + (position.y - texCoord.y)*(position.y - texCoord.y));
  19.     if(distance < rayon)
  20.     {
  21. //Illumine le pixel courrant en fonction de sa distance du centre de lumière  
  22. color += intensite*(rayon-distance);
  23.     }
  24.     return color;
  25. }
  26. technique
  27. {
  28.     pass P0
  29.     {
  30.         PixelShader = compile ps_2_0 PixelShader();
  31.     }
  32. }


 
Comme je l'ai mis dans les commentaires, le problème doit venir au niveau du calcul de la distance, mais je ne vois pas l'erreur. Quelqu'un pourrait-il m'aider ?  
 
Merci

mood
Publicité
Posté le 15-06-2007 à 13:04:14  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [HLSL] Problème de positionnement

 

Sujets relatifs
Probleme permission en localProbléme avec script pour modifier une table Mysql
probleme de liste déroulanteprobleme de label dans un formulaire
problème installation forum phpbbProbléme de flux avec Runtime.exec()
probleme avec classeproblème d'affichage IE/Firefox
Problème affichage menu déroulant CSS/java sous IEProblème de keyListener en SWT
Plus de sujets relatifs à : [HLSL] Problème de positionnement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR