OpenGL ES入门点线面的绘制

OpenGLES图元的绘制方式有如下几种

绘制方式 含义
GL_POINTS
GL_LINES 线段
GL_LINE_LOOP 线圈
GL_LINE_STRIP 多段线
GL_TRIANGLES 三角形
GL_TRIANGLE_STRIP 三角形条带
GL_TRIANGLE_FAN 三角形扇

在绘制图形时候我们往往用到更多的是三角形的绘制,所以详细讲解三种三角形绘制的方式,点、线点绘制从字面意思也很好理解。

先直观的从下图感受这三种方式的不同


image.png
  • GL_TRIANGLES是以为三个点绘制一个三角形。如上图看到的V0、V1、V2绘制成一个三角形,V3、V4、V5绘制成另一个三角形。
    注意:如果顶点个数不是3或者3的倍数,多出来的顶点自动忽略

  • GL_TRIANGLE_STRIP的规律是:
    构建当前三角形的顶点的连接顺序依赖于要和前面已经出现过的2个顶点组成三角形的当前顶点的序号的奇偶性(如果从0开始):
    如果当前顶点是奇数:组成三角形的顶点排列顺序:T = [n-1 n-2 n].
    如果当前顶点是偶数:组成三角形的顶点排列顺序:T = [n-2 n-1 n].
    以上图为例,第一个三角形,顶点v2序号是2,是偶数,则顶点排列顺序是v0,v1,v2。第二个三角形,顶点v3序号是3,是奇数,则顶点排列顺序是v2,v1,v3,第三个三角形,顶点v4序号是4,是偶数,则顶点排列顺序是v2,v3,v4,以此类推。
    这个顺序是为了保证所有的三角形都是按照相同的方向绘制的,使这个三角形串能够正确形成表面的一部分。对于某些操作,维持方向是很重要的,比如剔除。
    注意:顶点个数n至少要大于3,否则不能绘制任何三角形。

  • GL_TRIANGLE_FAN绘制各三角形形成一个扇形序列,以v0为起始点,[V0,V1,V2]、[V0,V2,V3]、[V0,V3,V4]。

你可能感兴趣的:(OpenGL ES入门点线面的绘制)