当前位置: 首页 > news >正文

EBO的使用

 

EBO 其实就是个索引,绑定在相应的VAO中,用来描述绘制顺序。比如在OpenGL绘制三角形的时候,假设有四个顶点,我称他们分别为1,2,3,4号顶点,常规绘制三角形函数是按三个点为一组,{1,2,3,4},他就只会绘制123为三角形,4就不管了,如果我们想拿一个共用边加上4绘制三角形比如拿12边,就需要写成{1,2,3,4,1,2},他不够灵活,像这样存储的话,如果每个顶点还有颜色什么的数据就会导致需要的内存过大,这里就用到EBO了,顶点数据差不多,区别就在于当引入顶点的时候只需要存储顶点数据,其他的属性通过绑定VAO实现可重复调用,以达到节省内存的作用。

数据准备

//准备数据
//顶点数据x,y,z
float position[]={
-0.5f,-0.5f,0.0f,
0.5f,-0.5f,0.0f,
0.0f,0.5f,0.0f,
0.5f,0.5f,0.0f
};//索引(连线顺序)
uint indices[]={
0,1,2,
2,1,3
};

vbo创建

接下来实现一个简单的EBO,首先我们需要创建一个VBO,在显卡显存中开辟一个空间存储顶点数据

//创建VBO
GLuint vbo;
glGenBuffers(1,&vbo);//创建一个缓冲区
glBindBuffer(GL_ARRAY_BUFFER,vbo);//把vbo绑定上去
glBufferData(GL_ARRAY_BUFFER,sizeof(position),position,GL_STATIC_DRAW);//把顶点数据存进去

ebo创建

//创建EBO
GLuint ebo;
glGenBuffers(1,&ebo);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,ebo);//GL_ELEMENT_ARRAY_BUFFER是状态机上的索引接口
glBufferData(GL_ELEMENT_ARRAY_BUFFER,sizeof(indices),indices,GL_STATIC_DRAW);

vao创建

//创建VAO
glGenVertexArrays(1,&vao);
glBindVertexArray(vao);

vao绑定vbo,ebo

//绑定vbo,ebo加入属性描述信息
//加入位置描述信息
glBindBuffer(GL_ARRAY_BUFFER,vbo);//可省略,因为下面glVertexAttribPointer会向上查询绑定的vbo来绑定vao
glEnableVertexAttribArray(0);//用vao的0号位置信息描述状态机已绑定的vbo
glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,sizeof(float)*3,(void*)0);//加入ebo到vao
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,ebo);//这个不能省略,从头到尾没有glVertexAttribPointer这样的函数向上查询,需要手动将ebo绑定给vao

解绑

适当的时候要注意解绑,避免需要绑定别的vbo或者vao的时候报错

//解绑
glBindVertexArray(0);

这样一个完整的流程就完成了。

相关文章:

  • 数字智慧方案5974丨智慧农业大数据应用平台综合解决方案(79页PPT)(文末有下载方式)
  • [vscode]全局配置nim缩进
  • 【工具变量】上市公司治理水平数据集-含参考文献及dta、xlsx格式(2003-2023年)
  • ClackyAI:下一代智能云开发环境的技术革新与实践价值
  • 多节点监测任务分配方法比较与分析
  • 数字智慧方案5976丨智慧农业顶层设计建设与运营方案(59页PPT)(文末有下载方式)
  • 面经-计算机网络——OSI七层模型与TCP/IP四层模型的对比详解
  • Umi-OCR项目(1)
  • 第七章:赤 色广播计划的全面启动
  • VAO与VBO的相关操作
  • Hive数据倾斜 常见解决办法
  • DeepSeek V3 训练策略:FP8混合精度与多Token预测
  • Python 常用内置函数详解(八):对象属性操作getattr()、setattr()、delattr()、hasattr()、vars()函数详解
  • ​基于51单片机的数字温度计—可显示负数
  • esp32cam开发板的引脚使用和测试
  • 《跨越边界:探索跨端框架中通用状态管理方案设计》
  • 数据库Mysql_约束
  • 响应式布局,在飞帆平台中如此简单
  • 红利底波是什么意思?
  • LegalOne:本土与国际视野融合的法律评级,大湾区律师及律师事务所榜单申报启动
  • 此前显示售罄的火车票“五一”前大量放出来了?12306回应
  • 两部门预拨4000万元支持山西、广西、陕西做好抗旱救灾工作
  • 水利部将联合最高检开展黄河流域水生态保护专项行动
  • 事关广大农民利益,农村集体经济组织法5月1日起施行
  • 民营经济促进法出台,自今年5月20日起施行
  • “ChatGPT严选”横空出世了,“DeepSeek严选”还要等多久?