[OpenGL] OpenGL的纹理坐标问题

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内容为:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值