OpenGL缓存对象VBO

本文介绍了OpenGL中的顶点数组对象(VAO)和缓存对象(VBO),包括它们的作用和类型,如GL_ARRAY_BUFFER和GL_ELEMENT_BUFFER。文章详细阐述了创建、绑定、删除缓存对象的函数,如glGenBuffers、glBindBuffer和glDeleteBuffers,并提及了内存分配与初始化的glNamedBufferStorage函数。通过对这些基本操作的解析,帮助读者理解OpenGL中的内存管理和图形数据存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VAO指的是顶点数组对象,你可以看成是C语言中的一个数组指针,它指向一个数组,这个数组里面的元素也是指针,而这些指针指向的就是缓存对象,相当与一片内存空间VBO。
缓存对象VBO有很多种类型,例如用来存储顶点属性数据的GL_ARRAY_BUFFER类型,用来存储索引数据的GL_ELEMENT_BUFFER类型等等。今天记录一下创建缓存对象的几个函数。

1、void glGenBuffers(GLSizei n,GLuint* buffers)

创建n个缓存对象,并将对象名保存在buffers中。

2、void glBindBuffer(GLenum target,GLuint buffer)

将一个对象绑定到OpenGL中,绑定成功后,在target这种类型中,buffer这个缓存对象将处于激活的状态。如果buffer为0,那么OpenGL将不再对当前的target使用任何的缓存对象。

3、void glDeleteBuffers(GLSizei n,const GLuint* buffers)

与glGenBuffers()函数的作用相反,这个是删除n个缓存对象。

4、GLboolean glIsBuffer(GLuint buffer)

判断buffer是否是一个已经分配并且没有释放的缓存对象的名称。

5、void glNamedBufferStorage(GLuint buffer,GLsizeptr size,const void* data,GLbitfield flags)

buffer:生成的缓存对象名称
size:需要分配的内存的大小,单位是byte
data:要传入的数据的内存指针,当data为NULL的时候,表示只分配内存,不初始化内存空间
flags:标志该内存的相关用途

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值