Besoin d'aide projet OpenGL/GLUT

Résolu
fox81 Messages postés 9 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 17 mars 2009 - 12 mars 2009 à 04:53
fox81 Messages postés 9 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 17 mars 2009 - 17 mars 2009 à 04:49
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

3 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
12 mars 2009 à 09:30
Hello,
Pleins de sources en parlent sur le forum.
Plus, un des sites de références, voir LE site de référence, celui de Nehe

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
fox81 Messages postés 9 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 17 mars 2009
13 mars 2009 à 04:15
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
0
fox81 Messages postés 9 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 17 mars 2009
17 mars 2009 à 04:49
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..


---------------------------------------------------------------------------------------------------------------


if (keys[VK_UP])

{

axpos=xpos;

azpos=zpos;

//&& ((xpos!=8.95 || xpos!=-8.95) || (zpos!=28.95 || zpos != -28.95))

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))))

{

xpos -= (float)sin(heading*piover180) * 0.05f;

zpos -= (float)cos(heading*piover180) * 0.05f;

if (walkbiasangle >= 359.0f)

{

walkbiasangle = 0.0f;

}

else

{

walkbiasangle+= 10;

}

walkbias = (float)sin(walkbiasangle * piover180)/20.0f;

}

else

{

xpos=axpos;

zpos=azpos;

}

}


if (keys[VK_DOWN])

{

axpos=xpos;

azpos=zpos;

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)))

{

xpos += (float)sin(heading*piover180) * 0.05f;

zpos += (float)cos(heading*piover180) * 0.05f;

if (walkbiasangle <= 1.0f)

{

walkbiasangle = 359.0f;

}

else

{

walkbiasangle-= 10;

}

walkbias = (float)sin(walkbiasangle * piover180)/20.0f;

}

else

{

xpos=axpos;

zpos=azpos;

}

}


if (keys['K'])

{

xarobot=xrobot;

if ((xarobot < 9) &&
(((xarobot<xpos-1.5)||(xarobot>xpos+1.5)) ||
((zarobot<zpos-1.5)||(zarobot>zpos+1.5)))){

xarobot+=0.2f;}

if (xarobot >= 9)

{

xarobot = 9;

}

xrobot = xarobot;

}

if (keys['H'])

{

xarobot=xrobot;

if ((xarobot > -9) &&
(((xarobot<xpos-1)||(xarobot>xpos+1)) ||
((zarobot<zpos-1)||(zarobot>zpos+1)))){

xarobot-=0.2f;}

if (xarobot <= -9)

{

xarobot = -9;

}

xrobot = xarobot;

}


if (keys['J'])

{

zarobot=zrobot;

if ((zarobot < 29) &&
(((zarobot<zpos-1.5)||(zarobot>zpos+1.5)) ||
((xarobot<xpos-1.5)||(xarobot>xpos+1.5)))){

zarobot+=0.2f;}

if (zarobot >= 29)

{

zarobot = 29;

}

zrobot = zarobot;

}

if (keys['U'])

{

zarobot=zrobot;

if ((zarobot > -29) &&
(((zarobot<zpos-1)||(zarobot>zpos+1)) ||
((xarobot<xpos-1)||(xarobot>xpos+1)))){

zarobot-=0.2f;

}

if (zarobot <= -29)

{

zarobot = -29;

}

zrobot = zarobot;

}


if (keys[VK_RIGHT])

{

heading -= 1.0f;

yrot = heading;

}

if (keys[VK_LEFT])

{

heading += 1.0f;

yrot = heading;

}
0
Rejoignez-nous