glTexCoord2f(GLfloat x, GLfloat y)
x,y不言而喻就是每一个点的(x,y)坐标,这个函数没有z坐标,是因为这个函数就是针对一个平面的。
为了将纹理正确的映射到四边形上,必须将
纹理的右上角映射到四边形的右上角;
纹理的左上角映射到四边形的左上角;
纹理的右下角映射到四边形的右下角;
譬如给自己的课桌上贴一张海报,安装正常人的思维,我们肯定要将海报铺平,海报的左下角粘住课桌的左下角,海报的右下角粘住课桌的右下角,海报的右上角粘住课桌的右上角,然后海报的左上角粘住课桌的左上角。这个函数就是用来对齐的,将海报的各个角对齐课桌的各个角,只不过是通过坐标的方式。当然,最重要的是,贴海报虽然可以随意贴,铺平就可以了,不需要那么认真,但是针对这个函数,就必须遵守顺序,按照逆时针的方向,从左下角开始,然后右下角,右上角,左上角。形式如下例子所示。
如果映射错误的话,图像显示时可能上下颠倒,侧向一边或者什么都不是。
例子:
纹理的左上坐标是X:0.0,Y:1.0f,四边形的左上顶点是X:-1.0,Y:1.0。其余三点依此类推。下面是一个具体的例子。
glTexCoord2f( 0.0, 0.0 ); glVertex3f( -1.0, -1.0, 1.0 );
glTexCoord2f( 1.0, 0.0 ); glVertex3f( 1.0, -1.0, 1.0 );
glTexCoord2f( 1.0, 1.0 ); glVertex3f( 1.0, 1.0, 1.0 );
glTexCoord2f( 0.0, 1.0 ); glVertex3f( -1.0, 1.0, 1.0 );
原创:http://blog.youkuaiyun.com/u013383042/article/details/50249981