顶点数组, glDrawArrays,glDrawElements - [OpenGL]

本文介绍了OpenGLES中用于替代glBegin()和glEnd()等函数的新方法,包括如何使用glDrawArrays()和glDrawElements()进行绘图,并详细解释了相关函数的参数设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两天接触OpenGL ES的时候发现里面没有了熟悉的glBegin(), glEnd(),glVertex3f()函数,取而代之的是glDrawArrays()。有问题问google,终于找到答案:因为OpenGL ES是针对嵌入式设备这些对性能要求比较高的平台,因此把很多影响性能的函数都去掉了,上述的几个函数都被移除了。接下来看看这些函数是如何使用的。

1.glEnableClientState(GL_VERTEX_ARRAY); 使能顶点数组功能。

2.将准备好的数组告知程序,使用glVertexPointer(),原型如下:

void glVertexPointer(

  GLint size,      //每个顶点占用的数组元素数量

  GLenum type,   //数组元素的数据类型

  GLsizei stride,  //元素之间的间隔,一般系统为0

  const GLvoid *pointer  //指向数组的指针

);

3.进行绘图:glDrawArrays()或者 glDrawElements(),glDrawElements()主要用于索引数组。函数原型如下:

void glDrawArrays(

  GLenum mode,     //绘图方式 GL_POINTS、GL_QUADS etc

  GLint first,      //第一个元素的下标

  GLsizei count   //绘制元素的数量

);

void glDrawElements(
  GLenum mode,     //绘图方式 GL_POINTS、GL_QUADS etc

  GLsizei count,  //顶点数组当中元素的个数

  GLenum type,   //索引数组当中元素数据类型

  const GLvoid *indices  //指向索引数组的指针

);

对应于顶点数组,OpenGL当中还提供了法向量数组、纹理坐标数组等等的支持,这些数组与顶点数组的使用方式相同,只是在相关参数和函数名称上将Vertex改为对应的名字即可。

glEnableClientState(GL_COLOR_ARRAY);

glColorPointer();

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值