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

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

内容简介:大家好,下面和大学一起学习绘制模式,在我的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/…

感谢阅读!


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

查看所有标签

猜你喜欢:

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

面向对象分析与设计

面向对象分析与设计

Grady Booch、Robert A. Maksimchuk、Michael W. Engel、Bobbi J. Young、Jim Conallen、Kelli A. Houston / 王海鹏、潘加宇 / 人民邮电出版社 / 2009-8 / 79.00元

《面向对象分析与设计(第3版)》是UML创始人Grady Booch的代表作之一,书中介绍的概念都基于牢固的理论基础。同时,《面向对象分析与设计(第3版)》又是一本注重实效的书,面向架构师和软件开发者等软件工程实践者的实际需要。《面向对象分析与设计(第3版)》通过大量例子说明了基本概念,解释了方法,并展示了在不同领域的成功应用。全书分为理论和应用两部分。理论部分深刻剖析了面向对象分析与设计(OOA......一起来看看 《面向对象分析与设计》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换