生成缓冲区
unsigned int buffer; glGenBuffers(1, &buffer);//其实buffer里面存的是句柄
绑定缓冲区到缓冲目标(类似于PS选中图层)
glBindBuffer(GL_ARRAY_BUFFER, buffer);
通过缓冲目标向缓冲区存数据
glBufferData(GL_ARRAY_BUFFER, 6 * sizeof(float), positions, GL_STATIC_DRAW)
*DSA(Direct State Access)允许不绑定,直接进行数据修改
unsigned int buffer; glGenBuffers(1, &buffer); glNamedBufferData(buffer, 6 * sizeof(float), positions, GL_STATIC_DRAW)
设置顶点布局。(你可能会发现,没有指定target,是因为这两个函数只针对GL_ARRAY_BUFFER这个target)
/* void glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer); */ glEnableVertexAttribArray(0); glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 2, (const void *)0);