我在我的C++ OpenGL应用程序中遇到了一个非常奇怪的问题。
我只是加载了一个纹理并将其应用于四面体:
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glTexImage2D(GL_TEXTURE_2D, 0, 3, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
那么
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, tex);
gluQuadricDrawStyle(quad,GLU_FILL);
gluQuadricTexture(quad,GL_TRUE);
gluCylinder(quad,1,0,2,20,1);
glDisable(GL_TEXTURE_2D);
现在:它能够完美地运行十次中有九次,但有时纹理不会显示(四面体保持白色)。
图像
已正确加载,因此问题应该出在OpenGL上。我也尝试过使用几种不同的图像。始终是 GL_NO_ERROR
。
有什么想法吗?这让我发疯了...