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

VAO与VBO的相关操作

在OpenGL的学习中了解到了VAO与VBO的概念

什么是VBO

VBO是OpenGL指令告诉GPU在其显存中开辟一块指定大小的内存区间,其中存储片元的顶点数据等

//制作一个vbo,存放三角形的位置与颜色信息
//顶点数据
float ver[]={
-0.5f,-0.5f,0.0f,1.0f,0.0f,0.0f,
0.5f,-0.5f,0.0f,0.0f,1.0f,0.0f,
0.0f,0.5f,0.0f,0.0f,0.0f,1.0f
};GLuint vbo;//创建一个VBO,这时候没有实装
glGenBuffers(1,&vbo);
glBindBuffer(GL_ARRAY_BUFFER,vbo);//把这个vbo绑定到状态机上的vbo接口
//下面这一步才算实装,填入vbo数据(接口,大小,数据,数据使用方式)
glBufferData(GL_ARRAY_BUFFER,sizeof(ver),ver,GL_STATIC_DRAW);

什么是vao

vao是与vbo搭配使用的,他存放的是vbo的描述信息,比如上述的ver数组,我不说你知道他是什么吗,他有三排数据,每一排是一个顶点,前三个是float类型的坐标xyz,后面三个是颜色数据rgb,数据有的都是相对坐标,我记得是有个官方的名字叫什么系统坐标还是什么,忘了不重要,本质就是相对坐标系,xy的范围都是(-1,1),原点在屏幕中心,相对于屏幕的比例,这就是描述信息,告诉GPU怎么用这些数据,存在vao中

//创建绑定vao
GLuint vao =0;
glGenVertexArrays(1,&vao);
glBindVertexArray(vao);//绑定vbo,接下来设置的属性与这个buffer有关
glBindBuffer(GL_ARRAY_BUFFER,vbo);
//位置属性放在vao的0号位置,要先激活
glEnableVertexArray(0);
//位置属性放在0号位置,一个属性三个位置,属性数字是float,非归一化,步长(一个点有6个数据),顶点数据内部偏移
glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,6*sizeof(float),(void*)0);//颜色数据放在vao的1号位置,要先激活
glEnableVertexArray(0);
glVertexAttribPointer(1,3,GL_FLOAT,GL_FALSE,6*sizeof(float),(void*)(3*sizeof(float)));

数据内偏移量这里注意一下,指针每次都值指向点数据的头部位置,如果数据是混用在一块的要设置

最后可以加一句解除vao绑定

glBindVertexArray(0);

还只算了解,有什么不对的地方欢迎指正

http://www.dtcms.com/a/167893.html

相关文章:

  • Hive数据倾斜 常见解决办法
  • DeepSeek V3 训练策略:FP8混合精度与多Token预测
  • Python 常用内置函数详解(八):对象属性操作getattr()、setattr()、delattr()、hasattr()、vars()函数详解
  • ​基于51单片机的数字温度计—可显示负数
  • esp32cam开发板的引脚使用和测试
  • 《跨越边界:探索跨端框架中通用状态管理方案设计》
  • 数据库Mysql_约束
  • 响应式布局,在飞帆平台中如此简单
  • 红利底波是什么意思?
  • LegalOne:本土与国际视野融合的法律评级,大湾区律师及律师事务所榜单申报启动
  • 使用CubeMX新建DMA工程——存储器到外设模式
  • 梳理顶会论文相关的经验贴
  • L3-040 人生就像一场旅行
  • 目标文件的段结构及核心组件详解
  • C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 17)
  • 【Shell 脚本编程】详细指南:第三章 - 运算符与条件判断
  • PostgreSQL:pgAdmin 4 使用教程
  • tiktok web X-Bogus X-Gnarly 分析
  • 【dify—8】Agent实战——占星师
  • L3-041 影响力
  • 艺华直播 5.0 |专注于提供港澳台及央视频道的电视直播应用,加载快,播放流畅
  • PMP-第九章 项目资源管理(一)
  • 嵌入式产品运行中数据丢失怎么办?
  • ES6异步编程中Promise与Proxy对象
  • centos7 离线安装python3 保留python2
  • 使用Set和Map解题思路
  • 25.4.30数据结构|并查集 路径压缩
  • 企业经营系统分类及功能详解
  • Java状态机实战:打造高扩展性的订单流程引擎(含源码详解与快照设计)
  • Memory Bank 不够用?Cline 全新 CRCT:省 token,依赖关系自行追踪