VBO(Vertex Buffer Objects)顶点缓冲对象
在显卡存储空间中开辟一块区域,用于存放顶点的各类属性信息。如顶点坐标,顶点法向量,顶点颜色等数据。在渲染时直接从显存取出数据,不必访问内存,提升效率。
VBO的创建及配置:
GLuint vbo; // 创建句柄
glGenBuffers(1, &vbo); // 分配空间
glBindBuffer(GL_ARRAY_BUFFER, vboId); // 绑定
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, 0); // 指定解析方式
VAO(Vertex Array Objects)顶点数组对象
每次绘制模型之前需要绑定顶点的所有信息,当数据量大时,重复这样的操作会变的比较麻烦。VAO存储了顶点的数据格式以及顶点属性信息的结合,相当于存储了很多VBO。
VAO的创建及配置:
GLuint vao; // 创建句柄
glGenVertexArray(1, &vao); // 分配
glBindVertexArray(vao); // 绑定VAO之后所有对VBO的配置都将被VAO绑定
网友评论