初学OpenGL之VBO、VAO、EBO\IBO

根据LearnOpenGL的教程学习而来,有很多不懂的地方,现根据自己的理解和参考各位大大网络上的分享,记录如下,给自己一个回顾的机会,也希望能够惠及他人


VBO


定义

  1. VBO就是用来管理存储在GPU的显存上的顶点内存=VBO代表着我们定义的顶点。

  2. 这样做的好处就是我们可以一次性发送大量顶点数据到显卡上,而不用每次发送一个。从CPU发送数据到显卡可是很慢的;因此我们也需要尽可能多地把所有顶点数据给VBO

具体代码操作流程

  • 创建对象:
gluint VBO; //定义一个无符号整形VBO对象,其值为其ID
glGenBuffers(num, &VBO);//分配num个缓冲给VBO
  • 绑定顶点缓冲:
glBindBuffer(GL_ARRAY_BUFFER,VBO)//将VBO对象绑定到顶点缓冲

从此起,任何作用于顶点缓冲的操作,都会配置当前绑定的缓冲(VBO)。相当于状态设置。

  • 复制数据给顶点缓冲:
glBufferData(GL_ARRAY_BUFFER,sizeof(vertices),vertices,GL_STATIC_DRAW);

glBufferData是一个专门用来把用户定义的数据复制到当前绑定缓冲的函数:

  • 第一个参数是目标缓冲的类型;
  • 第二个参数指定传输数据的大小(以字节为单位);
  • 第三个参数是我们希望发送的实际数据;
  • 第四个参数指定了我们希望显卡如何管理给定的数据。

EBO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值