OpenGL ES 3.0(四)图元、VBO、VAO

图元

OpenGL ES 3.0 可供绘制的图元类型有:
1) Triangles,三角形
2) Lines,线
3) Point sprites,点

三角形

绘制三角形时,可供选择的绘制方式有:GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN 三种,效果如下:

三角形的三种绘制方式

即:

1) GL_TRIANGLES,共有 n/3 个三角形会被绘制,绘制的方式是:(v0, v1, v2)、(v3, v4, v5) ……

2) GL_TRIANGLE_STRIP,共有 n-2 个三角形会被绘制,绘制的方式是:(v0, v1, v2)、(v2, v1, v3)、(v2, v3, v4)……

3) GL_TRIANGLE_FAN,共有 n-2 个三角形会被绘制,绘制的方式是:(v0, v1, v2)、(v0, v2, v3)、(v0, v3, v4)……

线

支持 GL_LINES、GL_LINE_STRIP、GL_LINE_LOOP 三种,效果如下:

线的三种绘制方式

可以使用 glLineWidth 指定线的宽度。

多用于游戏,未研究,略

图元绘制

除了使用 glDrawArrays 绘制之外,还可以使用 glDrawElements。glDrawArrays 的缺点是顶点不共享,比如:

正方体

如果要用 glDrawArrays 绘制这样一个立方体,则由于顶点不共享,因此每个面都需要 4 个顶点存储数据,一共有六个面,需要 24 个顶点数据。

而使用 glDrawElements,则可以定义顶点索引,指定每次绘制一个三角形时,所用到的顶点,比如绘制一个正方形:

const static GLfloat VERTICES[] = {
        -0.5f, 0.5f, 0.0f,  // 顶点 0
        -0.5f, -0.5f, 0.0f, // 顶点 1
        0.5f, -0.5f, 0.0f,  // 顶点 2
        0.5f, 0.5f, 0.0f,   
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值