Besoin d'aide OpenGL/GLUT

Besoin d'aide OpenGL/GLUT - C++ - Programmation

Marsh Posté le 12-03-2009 à 07:04:05    

Bonjour a tous,
Je vous présente mon problème, je doit faire un projet C++ avec Visual utilisant les bibliothèques OpenGL et Glut. Le but de ce projet, est de créer une scene en 3D, dans laquelle on peut se deplacer (vue a la premiere personne), comportant l enseigne de mon ecole et un robot pouvant se deplacer en etant controle par l'utilisateur.Il faut aussi gerer les problemes de collision entre tous les objets et l'utilisateur et gerer de meme les eclairages. Le probleme c'est que je n'y comprend pas grand chose et que le temps joue contre moi. C'est pour cela que je fait appel a vous pour m'aiguiller et m'aider a avancer au plus vite. Je vous remercie d'avance.
Cordialement

Reply

Marsh Posté le 12-03-2009 à 07:04:05   

Reply

Marsh Posté le 12-03-2009 à 11:25:05    

google Nehe

Reply

Marsh Posté le 12-03-2009 à 23:43:57    

tu peut aussi regarder sur le site:
http://www.codesampler.com

Reply

Marsh Posté le 13-03-2009 à 04:17:02    

Merci je regarde le tutoriel de Nehe, et je commence a comprendre petit a petit merci beaucoup. Cependant j'ai un problème que je n'arrive pas a résoudre. Lorsque j'applique un mapping sur une des faces d'un carre, l'image se trouve comme en conflit avec une couleur pour apparaitre. J'ai du mal a l'expliquer, en gros l'image appliquée clignote tout comme la couleur de la face du carre....
bref j'arrive pas a être plus clair désolé
merci d avance

Reply

Marsh Posté le 13-03-2009 à 08:24:11    

Si tu textures une surface, tu n'as peut-être pas besoin de lui appliquer une couleur lorsque tu dessines la primitive (le glColor3f(...))

Reply

Marsh Posté le 13-03-2009 à 09:42:21    

Oui c'est bon ca marche c t tt simple en fait...
Maintenant j'ai creee ma scene et ajouter les deplacement avec le clavier.
Je n'arrive cependant pas a gerer les collisions avec le decor et a ajouter un objet 3ds une petite idee??? Merci beaucoup

Reply

Marsh Posté le 13-03-2009 à 10:01:11    

Pour l'objet 3ds, il faut un loader je crois. Tu devrais trouver plus d'infos sur games-creators.org (où tu as le même post :))
 
Pour les collisions tu as plusieurs solutions (jamais codé pour ma part) :  
- Octree/Quadtree : C'est pas le but initiale, mais ils permettent la gestion des collisions. C'est surtout utiliser pour n'afficher à l'écran que ce que la caméra voit je crois
- Pixel Perfect
 
Mais sur gcn, tu devrais aussi trouver différents type de détection de collision.

Reply

Marsh Posté le 17-03-2009 à 04:49:33    

Bonjour a tous ,
Je m'auto répoond. J'ai finalement beaucoup avance dans mon projet grâce a vous et il ne me reste plus qu'un tout petit porblème. Les collisions... Je pensais faire ca de facon simpliste en delimitant une aire ou chaque objet ne pourrait plus avancer. Mais je me suis rendu compte qu'arriver a la limite, l'objet en question bloque. Bref c'est pas tres clair mais je vous met le code pour que ce soit plus comprehensible... Si vous avez des idées Merci Beaucoup..
 
 
---------------------------------------------------------------------------------------------------------------

Code :
  1. if (keys[VK_UP])
  2. {
  3. axpos=xpos;
  4. azpos=zpos;
  5. //&& ((xpos!=8.95 || xpos!=-8.95) || (zpos!=28.95 || zpos != -28.95))
  6. if ((((axpos<9 && axpos>-9) && (azpos<29 && azpos>-29)) && ((axpos<xrobot-1.5 || axpos>xrobot+1.5) && (azpos<zrobot-1.5 || azpos>zrobot+1.5))))
  7. {
  8. xpos -= (float)sin(heading*piover180) * 0.05f;
  9. zpos -= (float)cos(heading*piover180) * 0.05f;
  10. if (walkbiasangle >= 359.0f)
  11. {
  12. walkbiasangle = 0.0f;
  13. }
  14. else
  15. {
  16. walkbiasangle+= 10;
  17. }
  18. walkbias = (float)sin(walkbiasangle * piover180)/20.0f;
  19. }
  20. else
  21. {
  22. xpos=axpos;
  23. zpos=azpos;
  24. }
  25. }
  26. if (keys[VK_DOWN])
  27. {
  28. axpos=xpos;
  29. azpos=zpos;
  30. if (((axpos<9.5 && axpos>-9.5) && (azpos<29.5 && azpos>-29.5)) && ((axpos<xarobot-1 || axpos>xarobot+1) && (azpos<zarobot-1 || azpos>zarobot+1)))
  31. {
  32. xpos += (float)sin(heading*piover180) * 0.05f;
  33. zpos += (float)cos(heading*piover180) * 0.05f;
  34. if (walkbiasangle <= 1.0f)
  35. {
  36. walkbiasangle = 359.0f;
  37. }
  38. else
  39. {
  40. walkbiasangle-= 10;
  41. }
  42. walkbias = (float)sin(walkbiasangle * piover180)/20.0f;
  43. }
  44. else
  45. {
  46. xpos=axpos;
  47. zpos=azpos;
  48. }
  49. }
  50. if (keys['K'])
  51. {
  52. xarobot=xrobot;
  53. if ((xarobot < 9) && (((xarobot<xpos-1.5)||(xarobot>xpos+1.5)) || ((zarobot<zpos-1.5)||(zarobot>zpos+1.5)))){
  54. xarobot+=0.2f;}
  55. if (xarobot >= 9)
  56. {
  57. xarobot = 9;
  58. }
  59. xrobot = xarobot;
  60. }
  61. if (keys['H'])
  62. {
  63. xarobot=xrobot;
  64. if ((xarobot > -9) && (((xarobot<xpos-1)||(xarobot>xpos+1)) || ((zarobot<zpos-1)||(zarobot>zpos+1)))){
  65. xarobot-=0.2f;}
  66. if (xarobot <= -9)
  67. {
  68. xarobot = -9;
  69. }
  70. xrobot = xarobot;
  71. }
  72. if (keys['J'])
  73. {
  74. zarobot=zrobot;
  75. if ((zarobot < 29) && (((zarobot<zpos-1.5)||(zarobot>zpos+1.5)) || ((xarobot<xpos-1.5)||(xarobot>xpos+1.5)))){
  76. zarobot+=0.2f;}
  77. if (zarobot >= 29)
  78. {
  79. zarobot = 29;
  80. }
  81. zrobot = zarobot;
  82. }
  83. if (keys['U'])
  84. {
  85. zarobot=zrobot;
  86. if ((zarobot > -29) && (((zarobot<zpos-1)||(zarobot>zpos+1)) || ((xarobot<xpos-1)||(xarobot>xpos+1)))){
  87. zarobot-=0.2f;
  88. }
  89. if (zarobot <= -29)
  90. {
  91. zarobot = -29;
  92. }
  93. zrobot = zarobot;
  94. }
  95. if (keys[VK_RIGHT])
  96. {
  97. heading -= 1.0f;
  98. yrot = heading;
  99. }
  100. if (keys[VK_LEFT])
  101. {
  102. heading += 1.0f;
  103. yrot = heading;
  104. }


Message édité par fox8142 le 18-03-2009 à 09:34:13
Reply

Marsh Posté le 17-03-2009 à 07:36:37    

Utilise la balise Code

Reply

Marsh Posté le 18-03-2009 à 06:58:27    

OK désolé alexandre mais pourrai tu être plus précis car je ne suis pas très fort en programmation désolé

Reply

Marsh Posté le 18-03-2009 à 06:58:27   

Reply

Marsh Posté le 18-03-2009 à 07:31:49    

Je parlais de la balise Code (C/C++) sur le forum pour que ce soit plus lisible.

Reply

Sujets relatifs:

Leave a Replay

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