前言

之前一篇文章讲了如何绘制点,所谓两点成线,三点成面。一个立体图形就是由很多面组成,在OpenGL ES中,面特指一个三角形。

绘制调用glDrawArrays(int mode, int first, int count)方法

mode的参数可以选择

GL_POINTS ————绘制独立的点

GL_LINE_STRIP————绘制连续的线段,不封闭

GL_LINE_LOOP————绘制连续的线段,封闭

GL_LINES————顶点两两连接,为多条线段构成

GL_TRIANGLES————每隔三个顶点构成一个三角形

GL_TRIANGLE_STRIP————每相邻三个顶点组成一个三角形

GL_TRIANGLE_FAN————以一个点为三角形公共顶点,组成一系列相邻的三角形

例子

我设置一个顶点数组如下

//顶点数组

private float[] mArray = {

-0.6f , 0.6f , 0f,

-0.2f , 0f , 0f ,

0.2f , 0.6f , 0f ,

0.6f , 0f , 0f

};

指定绘制模式为GL_POINTS

gl.glDrawArrays(GL10.GL_POINTS, 0, 4);

效果图

fa6061d473df

这里写图片描述

指定绘制模式为GL_LINE_STRIP

gl.glDrawArrays(GL10.GL_LINE_STRIP, 0, 4);

效果图

fa6061d473df

这里写图片描述

指定绘制模式为GL_LINE_LOOP

gl.glDrawArrays(GL10.GL_LINE_LOOP, 0, 4);

效果图

fa6061d473df

这里写图片描述

指定绘制模式为GL_LINES

gl.glDrawArrays(GL10.GL_LINES, 0, 4);

效果图

fa6061d473df

这里写图片描述

指定绘制模式为GL_TRIANGLES

gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 4);

效果图,PS:当顶点个数不足以绘制第二个三角形时,就忽略

fa6061d473df

这里写图片描述

指定绘制模式为GL_TRIANGLE_STRIP

gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);

效果图,我用虚线隔开了,它本身是两个相邻三角形组成

fa6061d473df

这里写图片描述

指定绘制模式为GL_TRIANGLE_FAN

gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, 4);

效果图,我用虚线隔开了,它本身以第一个顶点为公共点,绘制了相邻的三角形

fa6061d473df

这里写图片描述

点击阅读全文
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐