OpenGL ES零基础入门四矩形的绘制

绘制矩形

在上一篇文章 OpenGL ES零基础入门—-(2)绘制三角形 中,使用OpenGLES绘制了基本的三角形,从绘制三角形中,我们也大概了解了OpenGL的基本使用,包括设置 CAEAGLLayer 属性,创建 EAGLContext,创建和使用 renderbuffer 和 framebuffer,了解OpenGL ES 渲染管线,创建和使用 shader,创建和实现 program,使用顶点数组进行描绘。现在我们所描绘的矩形相对于三角形来说就是多一个顶点坐标,并且矩形是也可以认为是两个三角形组成的这样一个理解的方式去绘制,所以从我们的顶点数组添加顶点坐标和颜色坐标。

如下图
首先,按照最基本的方式依次设置顶点位置及颜色,使用glDrawArrays依次绘制顶点。

OpenGL ES零基础入门四矩形的绘制

三角形的绘制方式

glDrawArrays函数的第一个参数可设置为GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN,分别是绘制三角形的三种方式。
OpenGL ES零基础入门四矩形的绘制

GL_TRIANGLES是以每三个顶点绘制一个三角形。第一个三角形使用顶点V0,V1,V2,第二个使用V3,V4,V5,以此类推。如果顶点的个数n不是3的倍数,那么最后的1个或者2个顶点会被忽略。
以上方式即在glDrawArrays函数中使用GL_TRIANGLES。
而GL_TRIANGLE_STRIP第一个三角形为V0、V1、V2,第二个三角形为V1、V2、V3,第三个三角形为V2、V3、V4,依次类推。GL_TRIANGLE_FAN第一个三角形为V0、V1、V2,第二个三角形为V0、V2、V3,第三个三角形为V0、V3、V4,依次类推。

所以,如果使用GL_TRIANGLE_STRIP绘制以上矩形,顶点数组与颜色数组也要相应变化:

OpenGL ES零基础入门四矩形的绘制

如果使用GL_TRIANGLE_FAN呢,因取得三角形顶点的方式不同,因此也必须对顶点数组中顶点的序列做相应调整如下,才能绘制出跟以上两种方式一样的矩形:

OpenGL ES零基础入门四矩形的绘制

以上几种是绘制矩形的方法,就是改变顶点位置和颜色。
总结:结合 OpenGL ES零基础入门—-(2)绘制三角形以上三角形的绘制文字,在此文章中可以极易的描绘出所需的矩形,通过以下几种glDrawArray方法的参数GL_TRIANGLES,GL_TRIANGLE_FAN,GL_TRIANGLE_FAN,根据我们自己的需求变化坐标来绘制矩形
本文源码可以在这里获得:https://github.com/476455183/OpenGLES