Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 配置VAO以处理具有多个网格的VBO_Opengl_Buffer_Vbo_Vao - Fatal编程技术网

Opengl 配置VAO以处理具有多个网格的VBO

Opengl 配置VAO以处理具有多个网格的VBO,opengl,buffer,vbo,vao,Opengl,Buffer,Vbo,Vao,我尝试使用单个VAO来表示包含多个网格的单个VBO。现在我有: glVertexArrayElementBuffer ( vertexArray, buffer ); glVertexArrayVertexBuffer ( vertexArray, positionLocation, buffer, 0, 3 * sizeof ( float ) ); glVertexArrayVertexBuffer ( vertexArray, normalLocation, buf

我尝试使用单个VAO来表示包含多个网格的单个VBO。现在我有:

    glVertexArrayElementBuffer ( vertexArray, buffer );
    glVertexArrayVertexBuffer ( vertexArray, positionLocation, buffer, 0, 3 * sizeof ( float ) );
    glVertexArrayVertexBuffer ( vertexArray, normalLocation, buffer, (objectVertexBytes + objectIndexBytes), 3 * sizeof ( float ) ); // Issue 2
更多信息来源如下:

我认为我的问题主要存在于代码片段的最后一行

我以为我可以在同一个VBO中填充两个不同的网格?如果我在设置缓冲区源时只能设置一个状态,这怎么可能呢


我遇到了这个麻烦,因为我读到,每个VBO只有一个VAO效率非常低,因为绑定是一件相对昂贵的事情。我还了解到,在同一VBO中存储具有类似需求的网格是一个好主意。

不要将索引缓冲区与顶点数据(读取:属性)缓冲区VBO混合使用

总之:

VBO 1
Mesh 1 indices + Mesh 2 indices

(Of course you could separate out Mesh 1 and Mesh 2 here if you'd like)

VBO 2
Mesh 1 Attributes (Vertex, Normal, etc.)
Mesh 2 Attributes (Vertex, Normal, etc.)

为什么我被否决了?我不太明白你的术语。“顶点VBO”和“属性VBO”之间有什么区别?