OpenGL(六)使用 VAO 打包指令 优化代码结构


通常说来当创建好vbo的数据结构,还需要设置glVertexAttribPointer等一系列属性,在OpenGL中提供了 VAO (Vertex Array Object)它相当于同时记录了数据在哪里和数据是怎样分布。从实际应用的角度,它最重要的贡献就是简化了代码。

原理

通过接口函数生成一个VertexArray,然后在其中创建和设置VBO的相关参数,在最终绘制时,直接使用。

实现

通过C++的匿名函数,可以将vbo操作开放出去

调用时,将vbo过程作为参数传入:

经过这样的改动,绘制部分变得非常简单。

总结

可以将VAO理解为一个存储指向VBO指针的数组,实际上数据还是储存在VBO中。它是将切分读取数据的过程打包在一起,避免了每次都编写繁琐的代码。

本文出自 松阳论道 转载必须注明出处

http://blog.songyang.net/388.html

说点什么吧...

电子邮件地址不会被公开。 必填项已用*标注