2D纹理贴图

        本文简单介绍一下2D纹理贴图的概念,仅适合初学OpenGL ES的新手观看,如果大神们在浏览时发现了错误,请留言联系本人修改,谢谢。

        之前介绍过如何绘制平面图形,平面图形绘制完成以后可以对图形进行涂色。但是很多复杂的样式如果通过涂色来实现的话,就算是把编码的程序员累死,也做不到高清的效果,毕竟像素点太多了。此时就需要2D纹理贴图出马了。

        所谓的2D纹理贴图,就是把纹理素材图上的图案贴到我们绘制的每个三角形的平面上。就像小时候给四驱车贴外壳贴纸一样,把素材从贴纸板上撕下来,贴到车壳上。车壳就相当于我们绘制的三角形平面。

        绘制三角形时,是通过点的坐标决定的三角形的位置,2D纹理贴图也是如此。纹理素材图是一张平面图,我们根据这张图建立一个坐标系,以图的左上角作为坐标原点。右方向作为s轴正方向,下方向作为t轴正方向,贴图的最右边的S轴坐标为1,最下边的T轴坐标为1,具体样式如下图。

2D纹理贴图_第1张图片

        2D纹理贴图实际就是给每一个顶点坐标都在素材图上面对应一个纹理坐标,然后用组成三角形的3个顶点对应的3个纹理坐标在纹理素材图上组成一个三角形纹理图像区域,最后把纹理三角形贴到由顶点三角形平面上。过程就这么简单。

        绘制复杂的图形或者绘制空间立体图形时也是一样,虽然顶点是三维坐标,但是每个三角形都是一个平面,使用2D纹理进行贴图时不需要考虑那么多,只要把素材图贴到三角平面就成功了。

 

使用案例:

       素材图如下,是一个四色正方形。

2D纹理贴图_第2张图片

        我这里只绘制了一个三角形举例子,三角形三个顶点坐标顺序为:(-1,0,0),(1,0,-1),(0,1,-1)。对应纹理坐标顺序为(0,0.7),(1,0.7),(0.5,0.2)。

        实际结果如下

2D纹理贴图_第3张图片

你可能感兴趣的:(Android,OpenGLES)