[英]Texture coordinates issue with OpenGL, QT
無論我使用哪種紋理坐標,都只會顯示左下角的像素(矩形具有純色)。
在這里設置紋理坐標:
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中呈現。 在一個小部件中,紋理看起來很好,而在另一個小部件中,我僅得到左下方的像素。
我發現了錯誤。 我認為在兩個小部件的兩個渲染過程之間的任何地方都設置了標志GL_TEXTURE_RECTANGLE_NV。 我以為glEnable(GL_TEXTURE_2D); 自動禁用GL_TEXTURE_RECTANGLE_NV標志。 但似乎沒有。
所以以下解決了我的問題:
glDisable(GL_TEXTURE_RECTANGLE_NV);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.