理清下面四个概念:
顶点数组对象(对下列三项进行整合) VertexArrays
顶点缓冲(告知顶点信息) GL_ARRAY_BUFFER
顶点属性指针(告知顶点布局) VertexAttribPointer
索引缓冲(告知顶点绘制顺序) GL_ELEMENT_ARRAY_BUFFER
一般情况下,我们只需要指定:
1.着色器代码
2.顶点缓冲
3.顶点属性指针
4.索引缓冲
就可以进行绘图了。
默认情况下,有一个全局顶点数组对象VAO
如果我要绘制多个对象(正方形,三角形,五边形),那么每次绘制前,都要重新绑定2,3,4项。
现在提供另一种方案,可以为每一个对象手动创建单独的顶点数组对象VAO。
VAO会记录2,3,4项的状态,每次绘制前,只要绑定自己的VAO就行了
举个粒子:
我要先后绘制:三角形,正方形,三角形,正方形
使用默认VAO,我要在每次绘制前,都重新绑定缓冲1,2,3
为三角形设置一个VAO,为正方形设置一个VAO,我在每次绘制前,只要绑定VAO即可