Tom's Guide > Forum > Programmation > pb open gl glut textures

pb open gl glut textures

Forum Programmation : pb open gl glut textures

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

chers amis bonsoir,
voilà on nous a demandé de coder une environnement
speedbrick (considerons cela comme un aquarium avec des
poissons.. sauf que c'est des speed brick), developpé en c++,
avec la librairie GLUT.... c'est la est notre soucis...
on gere de la texture.... voici le probleme...
on choisi la couleur gris pour la tete de notre "speed-brick",cette couleur represente
sa carte génétique et
permet differencier un speed brick parmis les autres... bref
chacun a sa couleur qui est son code genetique.

La dessus le speed brick grandit et on applique une autre
couleur pour son corps a savoir "bleue" pour les garcons, "rose"
pour les filles.
Et c'est la que ca merde... dees qu'il grandit il devient tout
bleu...au revoir la couleur de la tête (couleur "code génétique)

ca doit pas être grand chose....

par avance merci les kokos.

voici notre speed_brick.h

Code :
  1. #ifndef P_SPEEDBRICK_H
  2. #define P_SPEEDBRICK_H
  3. #include <GLUT/glut.h>
  4. #include "P_Organisme.h"
  5. #include "M_Position.h"
  6. class P_SpeedBrick: public P_Organisme{
  7.     private :
  8.         GLubyte _Les_Couleurs_Tete[8][3];
  9.         GLubyte _Les_Couleurs_Corps[8][3];
  10.         GLuint _Identifiant_Texture, _Identifiant_Texture1;
  11.         GLUquadric* params;
  12.       public :
  13.         P_SpeedBrick(GLfloat *Diametre_Tete, GLfloat (*Couleur_Tete)[3]);
  14.         void Affiche_Toi(GLfloat (*Position)[3]);
  15.         void Affiche_Toi(GLfloat (*Position)[3], vector <Position> *Les_Anneaux);
  16.         void Affiche_Toi(GLfloat *Position_X, GLfloat *Position_Y, GLfloat *Position_Z);
  17.         void Affiche_Toi(GLfloat Position_X, GLfloat Position_Y, GLfloat Position_Z);
  18. };
  19. #endif


Code :
  1. et voici la procedure d'affichage:
  2. void P_SpeedBrick::Affiche_Toi(GLfloat (*Position)[3],
  3. vector<Position> *Les_Anneaux){
  4. //cout << "plop"<<endl;
  5. /*
  6.     glPushMatrix();
  7.     glTranslatef((*Position)[Pos_X], (*Position)[Pos_Y], (*Position)[Pos_Z]);
  8.     glColor3d(0,1,0);
  9.     glutSolidSphere(_Diametre_Tete, 20, 20);
  10.     glPopMatrix();
  11. */
  12.     glTexImage1D
  13.     (
  14.         GL_TEXTURE_1D,    //Type : texture 1D
  15.         0,    //Mipmap : aucun
  16.         3,    //Couleurs (RGBA)
  17.         8,    //Largeur
  18.         0,    //Largeur du bord : 0
  19.         GL_RGB,    //Format : RGBA
  20.         GL_UNSIGNED_BYTE,    //Type des couleurs
  21.         _Les_Couleurs_Corps    //Addresse de l'image
  22.     );
  23.    
  24. glBindTexture(GL_TEXTURE_1D, _Identifiant_Texture1);    //Sélectionne la texture
  25.     gluQuadricTexture(params,GL_TRUE);
  26.     //glColor3d(_Couleur_Tete[Coul_R],_Couleur_Tete[Coul_V],_Couleur_Tete[Coul_B]);
  27.     for(int i=0;i<Les_Anneaux->size();i++){
  28.         glPushMatrix();
  29.         glTranslatef(Les_Anneaux->at(i)._Pos_X, Les_Anneaux->at(i)._Pos_Y, Les_Anneaux->at(i)._Pos_Z);
  30.     if(i%2==0)glColor3d(0,0,1); else glColor3d(0,1,1);
  31.     //GLfloat couleur[3] = {0.0f, 0.0f, 1.0f};
  32.     //glMaterialfv(GL_FRONT, GL_DIFFUSE, couleur);
  33.         glutSolidSphere(0.6, 20, 20);
  34.     //gluSphere(params, 0.6, 20,20);
  35.         glPopMatrix();
  36.     }
  37.   glPushMatrix();
  38.     glEnable(GL_TEXTURE_1D);
  39.     glDisable(GL_COLOR_MATERIAL);
  40.     glTexImage1D
  41.     (
  42.         GL_TEXTURE_1D,    //Type : texture 1D
  43.         0,    //Mipmap : aucun
  44.         3,    //Couleurs (RGBA)
  45.         8,    //Largeur
  46.         0,    //Largeur du bord : 0
  47.         GL_RGB,    //Format : RGBA
  48.         GL_UNSIGNED_BYTE,    //Type des couleurs
  49.         _Les_Couleurs_Tete    //Addresse de l'image
  50.     );
  51.     glBindTexture(GL_TEXTURE_1D, _Identifiant_Texture);    //Sélectionne la texture
  52.     glTranslatef((*Position)[Pos_X], (*Position)[Pos_Y], (*Position)[Pos_Z]);
  53.     gluQuadricTexture(params,GL_TRUE);
  54.     //glBindTexture(GL_TEXTURE_2D, mTextureID);
  55.     gluSphere(params, _Diametre_Tete, 20,20);
  56.     //glDisable(GL_TEXTURE_1D);
  57.     //glEnable(GL_COLOR_MATERIAL);
  58.     //glColor3d(_Couleur_Tete[Coul_R],_Couleur_Tete[Coul_V],_Couleur_Tete[Coul_B]);
  59.     //glutSolidSphere(_Diametre_Tete, 20, 20);
  60.     glPopMatrix();
  61.    
  62.     //glPopMatrix();
  63.     //glColor3f(1,1,1);
  64.     //glDisable(GL_COLOR_MATERIAL);
  65.     glDisable(GL_TEXTURE_1D);
  66. }



et voici les screen avant et apres que ca merde...
http://depret.fr/Image6.jpg
et voila apres que le spped brick aie grandi :'((
http://depret.fr/Image8.jpg
nb: ne pas tenir compte des points rouge,
c'est une autre famille de poisson...
pas de soucis pour eux


Message édité par fflorever le 25-04-2007 à 19:36:37
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.
Tom's Guide > Forum > Programmation > pb open gl glut textures
Aller à :

Il y a 1289 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens