原文鏈接:http://blog.csdn.net/vagrxie/article/details/5748140
同樣的一段程序,在SDL with OpenGL時是顛倒的,而在GLFW和完全使用Windows API加OpenGL時又是正確的。
如下:glBegin(GL_QUADS);
glTexCoord2f(0.0 , 0.0 ); glVertex3f(-1.0 , -1.0 , 0.0 );
glTexCoord2f(1.0 , 0.0 ); glVertex3f(1.0 , -1.0 , 0.0 );
glTexCoord2f(1.0 , 1.0 ); glVertex3f(1.0 , 1.0 , 0.0 );
glTexCoord2f(0.0 , 1.0 ); glVertex3f(-1.0 , 1.0 , 0.0 );
glEnd();
在默認情況下, 紋理的UV座標的原點是是左下角,在SDL中默認定在了左上角,所以需要將上面的紋理的座標Y軸倒過來,這樣顯示就沒有問題了。就像下面這樣:
glBegin(GL_QUADS);
glTexCoord2f(0.0 , 1.0 ); glVertex3f(-1.0 , -1.0 , 0.0 );
glTexCoord2f(1.0 , 1.0 ); glVertex3f(1.0 , -1.0 , 0.0 );
glTexCoord2f(1.0 , 0.0 ); glVertex3f(1.0 , 1.0 , 0.0 );
glTexCoord2f(0.0 , 0.0 ); glVertex3f(-1.0 , 1.0 , 0.0 );
glEnd();