-、頂點數組
- 啓用頂點數組 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);