绘制一个立方体的时候,需要6个正方形,普通的画法,需要指定6 × 4 = 24个顶点
进一步优化:指定8个顶点,存在数组中,再创建另外一个数组,保存每个面使用的顶点序号。就是一个比较合理的程序结构。但程序依然要循环24次,分别指定每个正方形的顶点。
进一步优化,使用顶点数组:
1. 顶点数组和前面的优化方法一样,一个数组保存顶点,一个数组保存顶点序号
2. 优点:不需要用普通的算法循环逐个循环指定顶点,而是把这两个数组传个OpenGL,OpenGL自动的查找顶点并绘制。减少了函数运行次数,提高运行效率
顶点数组是保存在客户端的,该机制也是在客户端生效。服务器端并不知道是否启用定点数组,也不关注
使用顶点数组的方法:
glEnableClientState(GL_VERTEX_ARRAY); //启动顶点数组功能
glVertexPointer(3, GL_FLOAT, 0, vertex_list);//指定保存顶点的数组
glDrawElements(GL_QUADS, 24, GL_UNSIGNED_INT, index_list); //指定保存顶点序号的数组,并开始绘制