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

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [C] OpenGl et clicks

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] OpenGl et clicks

n°700683
Ykizar
Posté le 16-04-2004 à 01:17:53  profilanswer
 

Salut,
Jai un probleme pour la gestion des clicks en opengl.. en fait, jarive bien a detecter si un object a ete clické (a laide de projections) mais le probleme que jai maintenant est que plus lobject est eloigné (translation suivant z) plus sa zone de click est décalée...et je n'arive pas a résoudre ce probleme. Donc voila, si quelqu'un à une idée ce serai cool qu'il la poste
merci

mood
Publicité
Posté le 16-04-2004 à 01:17:53  profilanswer
 

n°700708
skeye
Posté le 16-04-2004 à 08:02:55  profilanswer
 

Ykizar a écrit :

Salut,
Jai un probleme pour la gestion des clicks en opengl.. en fait, jarive bien a detecter si un object a ete clické (a laide de projections) mais le probleme que jai maintenant est que plus lobject est eloigné (translation suivant z) plus sa zone de click est décalée...et je n'arive pas a résoudre ce probleme. Donc voila, si quelqu'un à une idée ce serai cool qu'il la poste
merci  


Ta détection des clicks est buggée... [:skeye]  
http://www.google.com/search?q=ope [...] 8&oe=utf-8

n°701542
Ykizar
Posté le 17-04-2004 à 05:09:08  profilanswer
 

Salut,
Jai fais le tour des sites (avant que tu me donne le lien :/) et ma fonction ne me parait pas buggée..maintenant pê qu'il y a vraiment un bug et que je ne le vois pas...Je poste donc ma fonction qui est en delphi (crée grace qux tutoriaux de Game Tutorials)..voila merci
 

Code :
  1. function selection (x,y : integer):integer;
  2. var
  3. trouve,i,choisi: integer;
  4. viewport: array [0..3] of integer;
  5. Buffer : array [0..511] of Gluint;
  6. Depth : Gluint;
  7. begin
  8. glSelectBuffer(512, @Buffer);
  9. glGetIntegerv(GL_VIEWPORT, @viewport);
  10. glMatrixMode(GL_PROJECTION);
  11. glPushMatrix();
  12.   glRenderMode(GL_SELECT);
  13.   glLoadIdentity();
  14.   gluPickMatrix(x, viewport[3] - y, 2, 2, @viewport);
  15.   gluPerspective(45.0,SCREEN_WIDTH /SCREEN_HEIGHT,0.1,150.0);
  16.   glMatrixMode(GL_MODELVIEW);
  17.   DrawGlScene;
  18.   trouve := glRenderMode(GL_RENDER);
  19.   glMatrixMode(Gl_PROJECTION);
  20. glPopMatrix();
  21. glMatrixMode(GL_MODELVIEW);
  22. if (trouve > 0) then
  23. begin   
  24.     Depth := Buffer[1];
  25.     choisi := Buffer[3];
  26.     for i:=1 to trouve-1 do
  27.       begin
  28.         if(Buffer[(i * 4) + 1] < Depth) then
  29.           begin
  30.             Depth := Buffer[(i * 4) + 1];
  31.             choisi := Buffer[(i * 4) + 3];
  32.           end;
  33.       end;
  34.     result:=choisi;
  35.   end
  36.     else
  37.   result:=0;
  38. end;


Message édité par Ykizar le 17-04-2004 à 05:10:29
n°701825
Ykizar
Posté le 17-04-2004 à 18:13:15  profilanswer
 

up pls :/


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [C] OpenGl et clicks

 

Sujets relatifs
Paysage sous OpenGLUn peu d'OpenGL...
le fonctionnement de Directx et Opengl ?[OpenGL/software] creer une sphere
OpenGL evolue t'il?Une Methode de Detection optimale et implementable sous OpenGL?
OpenGL : combien de lumières on peut utiliser ?opengl/linux : ATI et NVIDIA : le mystere de glXGetProcAddress
programmation de jeux 3D en OpenGL[OpenGL] Une bonne equation pour heightmap avec grayscale
Plus de sujets relatifs à : [C] OpenGl et clicks


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