在opengl中绘制基本的集合原语可以使用诸如
gl_begin(type)
。。。
gl_end
的方式,逐个顶点进行绘制,但是如果想绘制一个大的模型或是一个完整的场景,里面的顶点数目几十上百万,这时就不能这样逐个顶点绘制了,为此,在opengl中有从数组绘制的方式。
数组绘制的基本思想:
就是把所所有顶点的位置、法向等信息装入数组,并且按照一定的序列(预先排好的)绘制他们就行了,这只需要几步操作。这里面一共涉及到两种数组,顶点数组(vertex array)与序列数组(indice array)。顶点数组就是将各顶点的位置、法向等装入(可单独也可联合),序列数组就好比一个目录,上面记录了先绘制哪个顶点,在绘制哪一个。图例
有了这个数组就可以进行绘制了
在opengl的数组绘制中,一共分三步:
第一步:用glEnableClientState(type)激活一个类型的数组type=GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_INDEX_ARRAY, GL_NORMAL_ARRAY, GL_TEXTURE_COORD_ARRAY, and GL_EDGE_FLAG_ARRAY,表示要进行那种数据的绘制
第二步: 用glVertexPointer(GLint size, GLenum type,