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

  FORUM HardWare.fr
  Programmation
  C++

  Besoin d'aide OpenGL/GLUT

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide OpenGL/GLUT

n°1860595
fox8142
Posté le 12-03-2009 à 07:04:05  profilanswer
 

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

mood
Publicité
Posté le 12-03-2009 à 07:04:05  profilanswer
 

n°1860663
Joel F
Real men use unique_ptr
Posté le 12-03-2009 à 11:25:05  profilanswer
 

google Nehe

n°1860981
concoyote
Posté le 12-03-2009 à 23:43:57  profilanswer
 

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

n°1860995
fox8142
Posté le 13-03-2009 à 04:17:02  profilanswer
 

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

n°1861013
alexandre_​j
Posté le 13-03-2009 à 08:24:11  profilanswer
 

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

n°1861033
fox8142
Posté le 13-03-2009 à 09:42:21  profilanswer
 

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

n°1861045
alexandre_​j
Posté le 13-03-2009 à 10:01:11  profilanswer
 

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.

n°1862336
fox8142
Posté le 17-03-2009 à 04:49:33  profilanswer
 

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
n°1862339
alexandre_​j
Posté le 17-03-2009 à 07:36:37  profilanswer
 

Utilise la balise Code

n°1862795
fox8142
Posté le 18-03-2009 à 06:58:27  profilanswer
 

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

mood
Publicité
Posté le 18-03-2009 à 06:58:27  profilanswer
 

n°1862798
alexandre_​j
Posté le 18-03-2009 à 07:31:49  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Besoin d'aide OpenGL/GLUT

 

Sujets relatifs
Aide sur Google Chart API[résolu] Aide pour compilation
[php] [RESOLU] aide case switch automatisé phpaide
Aide pour la programmation d'un userform remplissant une ligne ExcelNoob en JS et besoin d'aide!
connexion ado avec acces et besoin d'aide pour code vb svpBesoin d'un devis pour programme entreprise
Plus de sujets relatifs à : Besoin d'aide OpenGL/GLUT


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