基本介绍:
glDrawArrays 和 glDrawElements 的作用都是从一个数据数组中提取数据渲染基本图元。( render primitives from array data )
他们只是用不同的方式来将客户端中的数据传送到服务器的地址空间中,OpenGL支持3种方式来完成这个操作:
(1)访问单独的数据元素(随机存储) (2)创建一个单独数组元素的列表(系统存取)(3)线性的处理数组元素。具体选用的数据访问方式取决于需要处理的问题类型。
glArrayElements()、glDrawElements()和glDrawRangeElements()能够对数据数组进行随机存取,但是glDrawArrays()只能按顺序访问它们。因为前者支持顶点索引的机制。
注!如果要 glDrawArrays 和 glDrawElements 正确进行绘制的话,必须在之前 调用带有相应参数的 glEnableClientState 方法。 比如:
|
先来看看2个函数的原型:
void glDrawElements( GLenum mode, GLsizei count, GLenum type, const GLvoid * indices);
void glDrawArrays(
GLenum mode, GLint first, GLsizei count)
;
绘制模式
这两个方法的第一个形参都是代表 绘制模式(GLenum mode)。绘图模式有如下几种:
GL_POINTS
, GL_LINE_STRIP
, GL_LINE_LOOP
, GL_LINES
, GL_LINE_STRIP_ADJACENCY
,GL_LINES_ADJACENCY</