ElementButterObject的使用

ElementButterObject

  • ElementButter是指导如何组织vbo里的数据绘制图元的。如果没有ebo,在绘制图元的时候,是顺序调用vbo里的数据的。有了ebo之后就可以指定顺序调用了。
  • 使用ebo的步骤:
    1. 声明ebo
    2. 定义ebo索引数据
    3. 设置当前的GL_ELEMENT_ARRAY_BUFFER为ebo
    4. 将ebo的索引数据从cpu的内存块发送到gpu的内存上去
    5. 设置当前的GL_ELEMENT_ARRAY_BUFFER为零
    GLuint ebo;
    unsigned short indexes[] = { 0,1,2 };//按0,1,2的顺序绘制vbo里的点
    glGenBuffers(1, &ebo);//创建一个ebo
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo);//设置当前的element_buffer为ebo
    glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned short) * 3, indexes, GL_STATIC_DRAW);//将ebo从cpu的内存块传到显卡上去
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
    
    1. 在绘制图元的时候之前用vbo的glDrawArrays()接口就不用了,改为glDrawElements()。这个接口第一个参数表示要绘制的图元;第二个参数表示画多少个索引数据,也就是ebo里的索引数据用多少个;第三个参数表示ebo里的数据类型;第四个参数表示开始位置
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo);
    glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_SHORT, 0);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值