Rendu sur texture : opengl

Rendu sur texture : opengl - Divers - Programmation

Marsh Posté le 19-06-2007 à 11:44:15    

Hello.
 
J'essaye de faire un rendu sur texture mais j'ai un écran tout blanc, pourquoi ? :
 
A l'initialisation de ma fenêtre, je fait ceci :

Code :
  1. glGenTextures(1, &textureID);
  2. glBindTexture (GL_TEXTURE_2D, textureID);
  3. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  4. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);


 
Quand on redimensionne la fenêtre, je fait ceci :

Code :
  1. unsigned int *pTexture = new unsigned int[width*height*3];
  2. glBindTexture (GL_TEXTURE_2D, textureID);
  3. glTexImage2D(GL_TEXTURE_2D, 0, 3, width, height, 0, GL_RGB, GL_UNSIGNED_INT, pTexture);
  4. delete [] pTexture;


 
Rendu :

Code :
  1. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
  2. glLoadIdentity();
  3. glDrawBuffer(GL_AUX0); //on dessine le triangle dans un buffer auxilliaire
  4. glReadBuffer(GL_AUX0);
  5. glBegin(GL_TRIANGLES);
  6. glColor3f(1.0, 1.0, 1.0); glVertex3f(-1.0, -1.0, -7.0);
  7. glColor3f(0.0, 0.0, 0.0); glVertex3f(1.0, -1.0, -7.0);
  8. glColor3f(0.5, 0.5, 0.5); glVertex3f(0.0, 1.0, -7.0);
  9. glEnd();
  10. glBindTexture (GL_TEXTURE_2D, textureID);
  11. glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, width, height, 0); //copie le buffer auxilliaire dans une texture
  12. glDrawBuffer(GL_BACK);
  13. glReadBuffer(GL_BACK);
  14. //On se projette en vision orthogonale (2D) et on affiche la texture
  15. glDisable(GL_DEPTH_TEST);
  16. glMatrixMode(GL_PROJECTION);
  17. glPushMatrix();
  18. glLoadIdentity();
  19. glOrtho(0, 1, 0, 1, -1, 1);
  20. glMatrixMode(GL_MODELVIEW);
  21. glPushMatrix();
  22.  glLoadIdentity();
  23.  glBegin(GL_QUADS);
  24.   glColor4f(1.0, 1.0, 1.0, 0.5);
  25.   glTexCoord2f(0.0, 0.0); glVertex2i(0, 0);
  26.   glTexCoord2f(0.0, 1.0); glVertex2i(0, 1);
  27.   glTexCoord2f(1.0, 1.0); glVertex2i(1, 1);
  28.   glTexCoord2f(1.0, 0.0); glVertex2i(1, 0);
  29.  glEnd();
  30.  glMatrixMode(GL_PROJECTION);
  31. glPopMatrix();
  32. glMatrixMode(GL_MODELVIEW);
  33. glPopMatrix();
  34. glEnable(GL_DEPTH_TEST);


 
Merci...

Reply

Marsh Posté le 19-06-2007 à 11:44:15   

Reply

Marsh Posté le 19-06-2007 à 17:21:04    

Personne ne sais ?


Message édité par vincent0 le 19-06-2007 à 19:01:30
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed