VBO、VAO

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绑定

    

你可能感兴趣的:(VBO、VAO)