Les Programmeurs Fous ! Index du Forum Les Programmeurs Fous !
Programmation 3D
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Problème de couleur sur une scène.

 
Poster un nouveau sujet   Répondre au sujet    Les Programmeurs Fous ! Index du Forum -> OpenGL
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
ibrakola



Inscrit le: 15 Juin 2012
Messages: 4

MessagePosté le: Mer Juin 20, 2012 16:28    Sujet du message: Problème de couleur sur une scène. Répondre en citant

Bonjour,
j'ai une scene qui tournait en 32bits avec les toutes couleurs sur mes objets(polyedres), apres avoir compliquer
l'application sous 64bits, j'ai perdu toutes couleurs qui existaient sur mes objets.Je travail sous VS2010 c++ et utilise la bibliotehque OpenGl.
Je voudrais savoir comment pourais je retrouver les couleurs de mes objets(polyedre) sous 64bits.
Merci
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ibrakola



Inscrit le: 15 Juin 2012
Messages: 4

MessagePosté le: Mer Juin 20, 2012 16:39    Sujet du message: Répondre en citant

Voici le code OpenGl que j'utilise,
Code:
void setupPixelFormat(HDC hDC)
{   
   PIXELFORMATDESCRIPTOR pfd = 
      {   
        sizeof(PIXELFORMATDESCRIPTOR),  //taille du descripteur de format
            1, //version
            PFD_SUPPORT_OPENGL |
            PFD_DRAW_TO_WINDOW |
            PFD_DOUBLEBUFFER, //Propriétés
            PFD_TYPE_RGBA,  //Mode de couleurs
            16,  //Bits de couleur
            0, 0, 0, 0, 0, 0, //Paramètres des couleurs
            0,0,  //Paramètres alpha
            0,0, 0, 0, 0, //Paramètres du buffer d'accumulation
            32, //Bits de profondeur
            0,  //Bits du buffer stencil 
            0,  //Nombre de buffers auxiliaires
            0,  //ignoré (obsolète)
            0,  //réservé
            0,  //ignoré (obsolète)
            0, //Couleur de transparence
            0  //Ignoré (obsolète)
       };   
 
   int pixelFormat; 
   pixelFormat = ChoosePixelFormat(hDC, &pfd); 
   if (!pixelFormat) 
   { 
 
     MessageBox(WindowFromDC(hDC),
         "Mode graphique non supporté.",
         "Problème",
         MB_ICONERROR | MB_OK);
      exit(1);
   }   
   if (!SetPixelFormat(hDC, pixelFormat, &pfd)) 
   {     
     MessageBox(WindowFromDC(hDC),"Mode graphique non supporté.",
            "Problème",   MB_ICONERROR | MB_OK);
      exit(1);
   }   
}
 
void initgl (void)
{
 
 
   GLfloat light0_pos[4]   = { 0.5f, 0.5f, 0.5f, 0.0f };
   GLfloat light0_color[4] = { .6f, .6f, .6f, 1.0f }; //* lumière blanche
 
   GLfloat light1_pos[4]   = { 50.0f, 50.0f, -50.0f, 0.0f };
   GLfloat light1_color[4] = { .6f, .6f, .6f, 1.0f }; //* lumière blanche
 
   GLfloat light2_pos[4]   = { -50.0f, 0.5f, 0.5f, 0.0f };
   GLfloat light2_color[4] = { .6f, .6f, .6f, 1.0f }; //* lumière blanche
 
   GLfloat light3_pos[4]   = { 50.0f, 50.0f, -50.0f, 0.0f };
   GLfloat light3_color[4] = { .6f, .6f, .6f, 1.0f }; //* lumière blanche
 
   GLfloat light4_pos[4]   = { 0.5f, 0.5f, 0.5f, 0.0f };
   GLfloat light4_color[4] = { .6f, .6f, .6f, 1.0f }; //* lumière blanche
 
   GLfloat light5_pos[4]   = { 50.0f, 50.0f, -50.0f, 0.0f };
   GLfloat light5_color[4] = { .6f, .6f, .6f, 1.0f }; //* lumière blanche
 
   GLfloat light6_pos[4]   = { 50.0f, 50.0f, 50.0f, 0.0f };
   GLfloat light6_color[4] = { .6f, .6f, .6f, 1.0f }; //* lumière blanche
 
 
   //* remove back faces
   glDisable(GL_CULL_FACE);
   glEnable(GL_DEPTH_TEST);
 
   //* speedups
   glEnable(GL_DITHER);
   glShadeModel(GL_SMOOTH);
   glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
   glHint(GL_POLYGON_SMOOTH_HINT, GL_FASTEST);
 
   //* lumières *
   glLightfv(GL_LIGHT0, GL_POSITION, light0_pos);
   glLightfv(GL_LIGHT0, GL_DIFFUSE,  light0_color);
   glEnable(GL_LIGHT0);
 
   glLightfv(GL_LIGHT1, GL_POSITION, light1_pos);
   glLightfv(GL_LIGHT1, GL_DIFFUSE,  light1_color);
   glEnable(GL_LIGHT1);
 
   glLightfv(GL_LIGHT2, GL_POSITION, light2_pos);
   glLightfv(GL_LIGHT2, GL_DIFFUSE,  light2_color);
   glEnable(GL_LIGHT2);
 
   glLightfv(GL_LIGHT3, GL_POSITION, light3_pos);
   glLightfv(GL_LIGHT3, GL_DIFFUSE,  light3_color);
 
   glLightfv(GL_LIGHT4, GL_POSITION, light4_pos);
   glLightfv(GL_LIGHT4, GL_DIFFUSE,  light4_color);
 
   glLightfv(GL_LIGHT5, GL_POSITION, light5_pos);
   glLightfv(GL_LIGHT5, GL_DIFFUSE,  light5_color);
 
 
   glLightfv(GL_LIGHT6, GL_POSITION, light6_pos);
   glLightfv(GL_LIGHT6, GL_DIFFUSE,  light6_color);
 
 
   glEnable(GL_LIGHTING);
 
   glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
   glEnable(GL_COLOR_MATERIAL);
 
 
 
}
 
void draw_axes( float scale )
{
   glDisable( GL_LIGHTING );
 
   glPushMatrix();
   glScalef( scale, scale, scale );
 
 
   glLineWidth(2);
 
   glBegin( GL_LINES );
 
   glColor3f( 1, 0, 0 );
   glVertex3f( .8f, -0.05f, 0 );  glVertex3f( 1, -0.25f, 0 ); //* Letter X
   glVertex3f( 0.8f, -0.25f, 0 );  glVertex3f( 1, -0.05f, 0 );
   glVertex3f( 0, 0, 0 );  glVertex3f( 1, 0, 0 ); //* X axis     
 
   glColor3f( 0, 1, 0);
   glVertex3f( -.25f, 0.8f, 0 );  glVertex3f( -.05f, 1, 0 ); //* Letter Y
   glVertex3f( -.25f, 1, 0 );  glVertex3f( -.15f, 0.9f, 0 );
   glVertex3f( 0, 0, 0 );  glVertex3f( 0, 1, 0 ); //* Y axis
 
 
 
 
   if (info_valeur(58) > 20)
   {
      glColor3f( 0, 0, 1 );
      glVertex3f( 0, 0, 0 );  glVertex3f( 0.0f, 0.0f, 1.0f ); //* Z axis
      //Ici je place la lettre Z sur l'axe Z
      glVertex3f( -0.1f, 0, 0.8f);   glVertex3f( -0.3f, 0, 0.8f);
      glVertex3f( -0.1f, 0.2f, 0.8f);   glVertex3f( -0.3f, 0, 0.8f);
      glVertex3f( -0.1f, 0.2f, 0.8f);   glVertex3f( -0.3f, 0.2f, 0.8f);
   }
   glEnd();
 
   glLineWidth(1);
 
   glPopMatrix();
 
   glEnable( GL_LIGHTING );
}
 
void draw_axesXY( float scale )
{
   glDisable( GL_LIGHTING );
 
   glPushMatrix();
   glScalef( scale, scale, scale );
 
 
   glLineWidth(2);
 
   glBegin( GL_LINES );
 
   glColor3f( 1, 0, 0 );
   glVertex3f( .8f, -0.05f, 0 );  glVertex3f( 1, -0.25f, 0 ); //* Letter X
   glVertex3f( 0.8f, -0.25f, 0 );  glVertex3f( 1, -0.05f, 0 );
   glVertex3f( 0, 0, 0 );  glVertex3f( 1, 0, 0 ); //* X axis     
 
   glColor3f( 0, 1, 0);
   glVertex3f( -.25f, 0.8f, 0 );  glVertex3f( -.05f, 1, 0 ); //* Letter Y
   glVertex3f( -.25f, 1, 0 );  glVertex3f( -.15f, 0.9f, 0 );
   glVertex3f( 0, 0, 0 );  glVertex3f( 0, 1, 0 ); //* Y axis
 
      //glColor3f ( GetBValue(info->couleur_conteneur)/255.0f, GetGValue(info->couleur_conteneur)/255.0f,0);
 
      if (info_valeur(58) > 20)
   {
      glColor3f( 255, 255, 255 );
      glVertex3f( 0, 0, 0 );  glVertex3f( 0.0f, 0.0f, 1.0f ); //* Z axis
      //Ici je place la lettre Z sur l'axe Z
      glVertex3f( -0.1f, 0, 0.8f);   glVertex3f( -0.3f, 0, 0.8f);
      glVertex3f( -0.1f, 0.2f, 0.8f);   glVertex3f( -0.3f, 0, 0.8f);
      glVertex3f( -0.1f, 0.2f, 0.8f);   glVertex3f( -0.3f, 0.2f, 0.8f);
   }
   glEnd();
 
   glLineWidth(1);
 
   glPopMatrix();
 
   glEnable( GL_LIGHTING );
}
 
void draw_axesYZ( float scale )
{
   glDisable( GL_LIGHTING );
 
   glPushMatrix();
   glScalef( scale, scale, scale );
 
 
   glLineWidth(2);
 
   glBegin( GL_LINES );
 
   glColor3f( 0, 0, 1 );
   glVertex3f( 1, -0.25f, 0);   glVertex3f( 0.8f, -0.25f, 0);
   glVertex3f( 1, -0.05f, 0);   glVertex3f( 0.8f, -0.25f, 0);
   glVertex3f( 1, -0.05f, 0);   glVertex3f( 0.8f, -0.05f, 0);
   glVertex3f( 0, 0, 0 );  glVertex3f( 1, 0, 0 ); //* X axis     
 
glColor3f( 0, 1, 0);
   glVertex3f( -.25f, 0.8f, 0 );  glVertex3f( -.05f, 1, 0 ); //* Letter Y
   glVertex3f( -.25f, 1, 0 );  glVertex3f( -.15f, 0.9f, 0 );
   glVertex3f( 0, 0, 0 );  glVertex3f( 0, 1, 0 ); //* Y axis
 
      //glColor3f ( GetBValue(info->couleur_conteneur)/255.0f, GetGValue(info->couleur_conteneur)/255.0f,0);
 
      if (info_valeur(58) > 20)
   {
      glColor3f( 255, 255, 255 );
      glVertex3f( 0, 0, 0 );  glVertex3f( 0.0f, 0.0f, 1.0f ); //* Z axis
      //Ici je place la lettre Z sur l'axe Z
      glVertex3f( -0.1f, 0, 0.8f);   glVertex3f( -0.3f, 0, 0.8f);
      glVertex3f( -0.1f, 0.2f, 0.8f);   glVertex3f( -0.3f, 0, 0.8f);
      glVertex3f( -0.1f, 0.2f, 0.8f);   glVertex3f( -0.3f, 0.2f, 0.8f);
   }
   glEnd();
 
   glLineWidth(1);
 
   glPopMatrix();
 
   glEnable( GL_LIGHTING );
}
 
 
 
void draw_axesXZ( float scale )
{
   glDisable( GL_LIGHTING );
 
   glPushMatrix();
   glScalef( scale, scale, scale );
 
 
   glLineWidth(2);
 
   glBegin( GL_LINES );
 
   glColor3f( 1, 0, 0 );
   glVertex3f( .8f, -0.05f, 0 );  glVertex3f( 1, -0.25f, 0 ); //* Letter X
   glVertex3f( 0.8f, -0.25f, 0 );  glVertex3f( 1, -0.05f, 0 );
   glVertex3f( 0, 0, 0 );  glVertex3f( 1, 0, 0 ); //* X axis     
 
   glColor3f( 0, 0, 1 );
   glVertex3f( -0.2f, 1, 0);   glVertex3f( -0.4f, 1, 0);
   glVertex3f( -0.2f, 1, 0);   glVertex3f( -0.4f, 0.8f, 0);
   glVertex3f( -0.2f, 0.8f, 0);   glVertex3f( -0.4f, 0.8f, 0);
   glVertex3f( 0, 0, 0 );  glVertex3f( 0, 1, 0 ); //* Y axis
 
      //glColor3f ( GetBValue(info->couleur_conteneur)/255.0f, GetGValue(info->couleur_conteneur)/255.0f,0);
   if (info_valeur(58) > 20)
   {
      glColor3f( 255, 255, 255 );
      glVertex3f( 0, 0, 0 );  glVertex3f( 0.0f, 0.0f, 1.0f ); //* Z axis
      //Ici je place la lettre Z sur l'axe Z
      glVertex3f( -0.1f, 0, 0.8f);   glVertex3f( -0.3f, 0, 0.8f);
      glVertex3f( -0.1f, 0.2f, 0.8f);   glVertex3f( -0.3f, 0, 0.8f);
      glVertex3f( -0.1f, 0.2f, 0.8f);   glVertex3f( -0.3f, 0.2f, 0.8f);
   }
 
 
   glEnd();
 
   glLineWidth(1);
 
   glPopMatrix();
 
   glEnable( GL_LIGHTING );
}
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Les Programmeurs Fous ! Index du Forum -> OpenGL Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com