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:标志该内存的相关用途