Window系统中,屏幕坐标原点在屏幕的左上角,X轴向右为正,Y轴向下为正.度量单位是象素
OpenGL的定义中,纹理坐标原点在画布的左下角,X轴向右为正,Y轴向上为正
左下角坐标为(0.0f, 0,0f), 右上角坐标为(1.0f, 1.0f)和形状(矩形是否为正方形)无关,
其他位置取0到1之间的一个浮点数插值得到
这也是为什么在Windows平台进行OpenGL编程的时候需要将读入的图片首先进行垂直翻转的原因。
举例:
假设一个简单的矩形,在OpenGL中,我们给其Vertex Buffer内顶点坐标赋值为:
那么对应的Windows系统中屏幕上显示的位置为:
这个矩形可以以两个三角形来绘制,现在我们要给矩形ABCD贴上纹理,首先载入纹理图片
然后vertical flip,然后按照OpenGL中的坐标规则给每个顶点分配合适的纹理坐标:
这样分析之后就可以得到B(1,0),D(0,1),所以最后的Vertex Buffer内容为: