簡體   English   中英

OpenGL,QT的紋理坐標問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM