-、顶点数组
- 启用顶点数组 glEnableClientState(GLenum array) array有8个 包括顶点 颜色 纹理坐标等等。对应禁用函数glDisableClientState(GLenum array).
- 指定顶点数组 glVertexPointer(GLint size ,GLenum type,GLsizei stride ,const GLVoid* pointer); glColorPointer等等
- 解引用 glArrayElement(GLint ith)解引用单个数组元素 glDrawElements 解引用数组元素的一个列表
2、缓冲区对象vbo
建立数组
- 缓冲区对象 glGenBuffers(GLsizei n, GLuint * buffers);
- 激活缓冲区对象 glBindBuffer(GLenum target, GLuint buffer);
- 数据分配和初始化缓冲区对象 glBufferData;
- 更新缓冲区数据 glBufferSubData 或者GLvoid* glMapBuffer GLMapBufferRange glUnmapBuffer
- 在缓冲区对象之间复制数据 glCopyBufferSubData
- 清楚缓冲区对象 glDeleteBuffers
3、顶点数组对象vao
- 一个顶点数组对象捆绑了一组调用的集合。也就是说 经过顶点对象绑定了顶点缓冲区 element缓冲区,最后只要激活这个顶点数组对象 就能够直接解引用对应绑定的各类缓冲区对象。
- 建立顶点数组对象 glGenVertexArrays(GLsizei n,GLuint* arrays); 1.激活顶点缓冲区对象 glBindVertexArray;
- 清楚顶点数组对象 glDeleteVertexArrays;
- ~~`.glVertexAttribPointer 向shader传统attribute 属性数组
glGenVertexArrays(1,&vao)
glBindVertexArray(vao)
glGenBuffers(2,buffers)
glBindBuffer(GL_ARRAY_BUFFER,buffers[0]);
glBindBufferData(GL_ARRAY_BUFFER,xxxx,xx,);
glBindBuffer(GL_ELEMENT_ARRAY,buffers[1]);
glBindBufferData(GL_ELEMENT_ARRAY,xxxx,xx,);
glBindVertexArray(vao)
glDrawElements(GL_TRIANGLE, _indexCount, GL_UNSIGNED_BYTE, 0);