Mon application OpenGL qui fonctionnait correctement sur la carte ATI a cessé de fonctionner lorsque j'ai mis une carte NVIDIA Quadro. La texture ne fonctionne tout simplement pas du tout! J'ai réduit mon programme à une seule fonction d'affichage qui ne fonctionne pas:OpenGL Nvidia Driver 259.12 texture ne fonctionne pas
void glutDispCallback()
{
//ALLOCATE TEXTURE
unsigned char * noise = new unsigned char [32 * 32 * 3];
memset(noise, 255, 32*32*3);
glEnable(GL_TEXTURE_2D);
GLuint textureID;
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_2D, textureID);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glPixelStorei(GL_PACK_ALIGNMENT, 1);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 32, 32, 0, GL_RGB, GL_UNSIGNED_BYTE, noise);
delete [] noise;
//DRAW
glDrawBuffer(GL_BACK);
glViewport(0, 0, 1024, 1024);
setOrthographicProjection();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glDisable(GL_BLEND);
glDisable(GL_LIGHTING);
glBindTexture(GL_TEXTURE_2D, textureID);
glColor4f(0,0,1,0);
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex2f(-0.4,-0.4);
glTexCoord2f(0, 1);
glVertex2f(-0.4, 0.4);
glTexCoord2f(1, 1);
glVertex2f(0.4, 0.4);
glTexCoord2f(1,0);
glVertex2f(0.4,-0.4);
glEnd();
glutSwapBuffers();
//CLEANUP
GL_ERROR();
glDeleteTextures(1, &textureID);
}
Le résultat est un quad bleu (ou tout ce qui est spécifié par glColor4f()), et non pas un quad blanc qui est ce que le la texture est. J'ai suivi la FAQ sur le site OpenGL. J'ai désactivé le mélange au cas où la texture serait mélangée. J'ai désactivé l'éclairage. J'ai regardé par glGetError() - pas d'erreurs. J'ai également défini glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); et GL_DECAL. Même résultat J'ai aussi essayé différents enroulements polygonaux - CW et CCW.
Quelqu'un d'autre rencontre cela?
Une raison pour laquelle vous créez/détruisez un objet de texture à chaque image au lieu de simplement télécharger de nouvelles données de texture? – genpfault
C'est juste du code pour reproduire le problème. Je ne fais pas ça en réalité. – Budric