VAO、VBO、EBO理解

VAO、VBO、EBO理解

以三角形为例,通常,画一个三角形需要3个顶点,每个顶点有多种属性,例如坐标和颜色。

为了存储这些顶点信息,首先需要一个缓存将所有的顶点统一保存起来,这也就是VBO(vertex buffer object)。

但仅仅将顶点存起来还不够,计算机不知道应该如何解析这块缓存,这块缓存还只是缓存,不是顶点数组。所以,需要指明这块缓存信息的含义,也就是不同属性缓存中的不同位置,这些属性位置信息可以用glVertexAttribPointer指定。

为了将这些位置信息统一管理,又产生了VAO。由于VAO指明了缓存缓存属性位置信息,所以这时缓存已经不再是单纯的缓存,而是升级成为了顶点数组,这也就是VAO(vertex array object)得名的原因。

但仅仅只有顶点数组还不够,绘制一个primitive时还需要知道到底使用哪几个顶点,这个信息用EBO(element buffer object)管理。

你可能感兴趣的:(OpenGL)