原创文章,转载请注明连接 http://blog.youkuaiyun.com/hoytgm/article/details/32977479
第二个demo的时候我们画了一个三角形,三角形是OpenGLES,OpenGL和Direct3D中最基本的元素。在Direct3D中一个三角形也被称作为primitive,也就是一个图形元。确实,在图形学的世界中,不管你看到任何东西,最后都是由一个一个的三角形构成的。了解的朋友也许会问线,一般来说,即使开发者画的是一条线,在显卡的驱动或者是硬件的的实现上也是由两个三角形构成,这样的话,如果开发者需要画一条宽的线,那么很简单了,扩大构成这条线的三角形就可以了。
在图形学中,一般会用到三种画三角形的方式,triangles,triangle strip和triangle fan。这三种方式对应到OpenGLES中就是GL_TRIANGLES, GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN。
Triangles是指三角形列表,每三个点构成一个三角形。如果开发者想画两个三角形的话,那么就需要提供6个顶点。因为Triangles方式没有共享点的问题,每个三角形都由独立的三个点构成。因此要画的三角形个数和顶点的关系为 triangles * 3 = vertices。
我们以第二章的代码为基础,如果我们需要画一个矩形,那么需要提供6个顶点,同时将glDrawArrays的最后一个参数由3改为6。
float vertices[] =
{
-0.5f, -0.5f, 0.5f, 1.0f,
0.5f, -0.5f, 0.5f, 1.0f,