【发布时间】:2010-04-27 19:02:47
【问题描述】:
我的 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);
现在:10 次中有 9 次完美运行,但有时纹理未显示(二次曲面保持白色)。
image 已正确加载,所以应该是 OpenGL 的问题。我也尝试了几种不同的图像。总是GL_NO_ERROR。
有什么想法吗?快把我逼疯了……
【问题讨论】:
-
有点傻但是在它不加载的时候,如果你最小化然后最大化窗口,它会出现吗?
-
不,它不会加载,即使我最小化/最大化。
-
你能在不同的电脑或不同的驱动程序上测试它吗?
-
“未显示纹理”是指重新启动应用程序时吗?