Android OpenGL ES 2.0 手把手教学(5)- 绘制模式

栏目: IOS · Android · 发布时间: 7年前

内容简介:大家好,下面和大学一起学习绘制模式,在我的github上有一个项目在我们之前的例子中,我们都是以三个独立顶点为一个三角形的方式来进行渲染,如果大家有注意观察的话,会发现我们在调用这张图展示了这三种绘制模式的区别

大家好,下面和大学一起学习绘制模式,在我的github上有一个项目 OpenGLES2.0SamplesForAndroid ,我会不断地编写学习样例,文章和代码同步更新,欢迎关注,链接: github.com/kenneycode/…

在我们之前的例子中,我们都是以三个独立顶点为一个三角形的方式来进行渲染,如果大家有注意观察的话,会发现我们在调用 glDrawArrays() 方法的时候,第一个参数都是用 GL_TRIANGLES ,这第一个参数就是用来设置绘制模式的,下面给大家介绍三个比较常用的绘制模式 GL_TRIANGLESGL_TRIANGLE_STRIPGL_TRIANGLE_FAN ,我们先来看一张图:

Android OpenGL ES 2.0 手把手教学(5)- 绘制模式

这张图展示了这三种绘制模式的区别

GL_TRIANGLES 就是我们之前的例子中一直在用的,它是将每三个独立顶点构成一个三角形,不同三角形之间不会共用顶点

GL_TRIANGLE_STRIP 的效果就像它名字一样,是带状的,它构成三角的规则和顶点数量的奇偶有关,如果顶点数量是奇数,则三角形为 k, k+1, k+2 , 如果顶点数量是偶数,则三角形为 k, k+2, k+1 ,这是什么意思呢?我们对照上图来看,假如顶点数量是5,那么就是 (v0, v1, v2)、(v1, v2, v3)、(v2, v3, v4) 三个三角形,假如顶点数量是4,那么就是 (v0, v2, v1)、(v1, v3, v2) 两个三角形,可以看它三角形顶点是会共用的。

GL_TRIANGLE_FAN 的效果也像它名字一样,一扇形的,以第0个点为扇形的中心,其它点就连接0号点与上一个点构成三角形。

这三种绘制模式各有特点,可根据实际需要来采用,在能满足需求的情况下,尽量采用传递顶点少的方式,可以提高性能,例如我们之前的例子中,是否能用 GL_TRIANGLE_STRIP 或者 GL_TRIANGLE_FAN 来替代,减少传递的顶点呢?大家可以思考一下。

我们来看看例子中的效果,从左到右依次是 GL_TRIANGLESGL_TRIANGLE_STRIPGL_TRIANGLE_FAN ,可以通过按钮切换:

Android OpenGL ES 2.0 手把手教学(5)- 绘制模式

代码在我github的 OpenGLES2.0SamplesForAndroid 项目中,本文对应的是 SampleDrawMode ,项目链接: github.com/kenneycode/…

感谢阅读!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

从零开始学微信公众号运营推广

从零开始学微信公众号运营推广

叶龙 / 清华大学出版社 / 2017-6-1 / 39.80

本书是丛书的第2本,具体内容如下。 第1章 运营者入门——选择、注册和认证 第2章 变现和赚钱——如何从0到100万 第3章 决定打开率——标题的取名和优化 第4章 决定美观度——图片的选取和优化 第5章 决定停留率——正文的编辑和优化 第6章 决定欣赏率——版式的编辑和优化 第7章 数据的分析——用户内容的精准营销 书中从微信运营入门开始,以商业变......一起来看看 《从零开始学微信公众号运营推广》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具