| ash08 | Salut tout le monde,
j'ai un probleme pour charger des textures en opengl.
 Je suis novice donc je me suis inspire du tuto de nehe sur les textures et de cet article qui defini les specifications pour Qt.
 
 Mais impossible a l'affichage j'obtient juste un carre bleu...
   
 | Code : 
 /**
 *
 * Retracer la fenetre graphique. est appele a chaque modification de scene
 *
 */void Graphique::paintGL(){   // Vider la fenetre graphique
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);   // Faire une mise a l'echelle pour la demo...
   glLoadIdentity();  // On ne tient pas compte du temps encore...      static double dt = 0.0 ;   pScene->animer(dt);   pScene->afficher(dt);}
 | 
 | Code : 
 /**
 *
 * Initialisation de contexte OpenGL
 *
 */void Graphique::initializeGL(){   glClearColor( 0.0, 0.0, 0.0, 0.0 );   glShadeModel( GL_SMOOTH );	glEnable(GL_TEXTURE_2D);	glEnable(GL_DEPTH);	glEnable(GL_DEPTH_TEST);	glEnable(GL_COLOR_MATERIAL);	glDepthFunc(GL_LEQUAL);}
 | 
 
La classe decor qui est pour l'instant juste un cube sur lequel on met une texture
 
 | Code : 
 #include "decor.h"/*
 * Constructeur
 *   */decor::decor(){	loadGLTextures();}/*
 * Destructeur
 *   */decor::~decor(){}/*
 * chargement de la texture
 *
 */void decor::loadGLTextures(void){  QImage t;  QImage b;     if ( !b.load( "./data/NeHe.bmp" ) )  {    b = QImage( 16, 16, 32 );    b.fill( Qt::red.rgb() );  }  t = QGLWidget::convertToGLFormat( b );  glGenTextures( 1, &texture[0] );  glBindTexture( GL_TEXTURE_2D, texture[0] );  glTexImage2D( GL_TEXTURE_2D, 0, 3, t.width(), t.height(), 0, GL_RGB, GL_UNSIGNED_BYTE, t.bits() );  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );  glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );}/*
 * Afficher: Methode contenant les appels OpenGL pour dessiner l'objet
 *   */void decor::afficher() const{	// Sauvegarde la matrice courante
	glPushMatrix();	glBegin(GL_LINES);  glColor3f(1.0f,0.0f,0.0f);      // Red
  glVertex3f( 1.5f, 0.0f, 0.0f);    	// Top Of Triangle (Front)
  glVertex3f( 0.0f, 0.0f, 0.0f);    	// Top Of Triangle (Front)
	glEnd();	glBegin(GL_LINES);  glColor3f(0.0f,1.0f,0.0f);      // Red
  glVertex3f( 0.0f, 0.0f, 0.0f);    	// Top Of Triangle (Front)
  glVertex3f( 0.0f, 1.5f, 0.0f);    	// Top Of Triangle (Front)
	glEnd();	glBegin(GL_LINES);  glColor3f(0.0f,0.0f,1.0f);      // Red
  glVertex3f( 0.0f, 0.0f, 0.0f);    	// Top Of Triangle (Front)
  glVertex3f( 0.0f, 0.0f, 1.5f);    	// Top Of Triangle (Front)
	glEnd();	glBindTexture(GL_TEXTURE_2D, texture[0]);	glBegin(GL_QUADS);  // Front Face
  glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);  glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);  glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);  glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);  // Back Face
  glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);  glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);  glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);  glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);  // Top Face
  glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);  glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f,  1.0f,  1.0f);  glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f,  1.0f,  1.0f);  glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);  // Bottom Face
  glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, -1.0f, -1.0f);  glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, -1.0f, -1.0f);  glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);  glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);  // Right face
  glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);  glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);  glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);  glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);  // Left Face
  glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);  glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);  glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);  glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);	glEnd();	// Revient a la matrice initiale
	glPopMatrix();}/*
 * Afficher: Methode pour animer l'objet
 *   * @param dt Temps pour l'animation
 *
 */void decor::animer(double dt){}
 | 
 
 J'ai teste et b.load( "./data/NeHe.bmp" ) retourne bien true
   
 voila je sais pas du tout ce que j'aurai pu oublier
 quelqu'un a une idee?
   |