opengl学习笔记:绘制图像

参考:从显示一张图片开始学习OpenGL ES

学习了一段时间的opengl (学会了画一个三角形…),发现绘制图形需要给定顶点坐标,然后进行着色绘制。流程如下图所示:
在这里插入图片描述
那么问题来了,以上都是讲如何绘制图形,那么它是怎么做到显示图像的呢?

首先我们可以将待显示的图像视为纹理。我们需要在窗口中显示该纹理图像,就需要指定一些顶点坐标以及对应的纹理坐标,这样就可以根据插值获取窗口里每个像素点对应的纹理像素值。

opengl拥有独立的坐标系,初始坐标系为三维坐标系,取值范围为[-1,1]。 对于二维图像的绘制而言,我们可以简单地忽略 Z Z Z轴,我们要将opengl标准化设备坐标系上定义的点绘制到屏幕上,需要进行视口变换。视口变换就是将标准化设备坐标系下的原点映射到屏幕的中心,其余四个顶点分别映射到屏幕的四个顶点,也就是做一些缩放操作。(同时可以发现超出标准化设备坐标系定义的点是不会显示在屏幕上的,此外无论屏幕/窗口大小,能显示的坐标范围都是[-1,1](定义在标准化设备坐标系下))
在这里插入图片描述
接下来就可以进行图像的绘制了。我们先绘制一个矩形,然后将纹理图像贴在该矩形上。首先我们需要一些顶点坐标以及对应的纹理坐标。我们定义一组矩形区域的顶点(也就是标准化设备坐标系的四个顶点,也可以理解为窗口的四个顶点(最终是显示在这里的))。opengl的纹理坐标原点在左上角,往右往下为正方向。根据顶点的渲染顺序,我们可以定义每个顶点对应的纹理坐标。(注意:纹理坐标的范围在[0,1],如果定义了超出该范围的纹理坐标,opengl默认行为是重复该纹理图像,也可以自定义重复方式。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值