无论我使用什么纹理坐标,只显示左下角的像素(矩形有纯色)。
这里我设置了纹理坐标:
glMatrixMode(GL_TEXTURE);
glPushMatrix();
glLoadIdentity();
glTranslatef(0.5,0.0,0.0); //Have no effect
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
...
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texture);
glBegin(GL_QUADS);
glTexCoord2f(0, 1);
glVertex2f(0, 0);
glTexCoord2f(0, 0);
glVertex2f(0, 1);
glTexCoord2f(1, 0);
glVertex2f(1, 1);
glTexCoord2f(1, 1);
glVertex2f(1, 0);
glEnd();
非常严肃。它呈现在两个不同的QGLWidgets中。在一个Widget中,纹理看起来很好,而在另一个Widget中,我只得到左下角的像素。
答案 0 :(得分:0)
我发现了错误。我认为两个小部件的两个渲染过程之间的任何位置都是GL_TEXTURE_RECTANGLE_NV标志设置。我以为glEnable(GL_TEXTURE_2D);自动禁用GL_TEXTURE_RECTANGLE_NV标志。但似乎没有。
所以以下解决了我的问题:
glDisable(GL_TEXTURE_RECTANGLE_NV);