Opengl es 在OpenGL ES中,多个程序是否可以使用相同的VBO并将其绑定到其属性?

Opengl es 在OpenGL ES中,多个程序是否可以使用相同的VBO并将其绑定到其属性?,opengl-es,vbo,glsles,vertex-buffer-objects,Opengl Es,Vbo,Glsles,Vertex Buffer Objects,我有两个程序正在切换。我在VBO中加载了位置数据,然后为我的第一个程序设置了顶点属性数组。当我切换到第二个程序并尝试使用相同的数据设置顶点属性数组时,它无法绘制。但是,如果我使用完全相同的代码制作第二个缓冲区,并将其用于第二个程序,它们都可以绘制。我想知道是否有人可以澄清在程序之间共享这些VBO的规则,因为我不希望有两个缓冲区,除非它们是必需的。是的,多个程序可以绑定到同一个VBO,没有问题。我的问题是,我的程序的另一部分加载了一个单独的VBO,该VBO缺少一些顶点,与使用两个程序无关 当然。顶

我有两个程序正在切换。我在VBO中加载了位置数据,然后为我的第一个程序设置了顶点属性数组。当我切换到第二个程序并尝试使用相同的数据设置顶点属性数组时,它无法绘制。但是,如果我使用完全相同的代码制作第二个缓冲区,并将其用于第二个程序,它们都可以绘制。我想知道是否有人可以澄清在程序之间共享这些VBO的规则,因为我不希望有两个缓冲区,除非它们是必需的。

是的,多个程序可以绑定到同一个VBO,没有问题。我的问题是,我的程序的另一部分加载了一个单独的VBO,该VBO缺少一些顶点,与使用两个程序无关

当然。顶点设置与程序绑定的内容完全正交。只要属性位置在程序之间匹配,您甚至可以使用相同的VAO。@RetoKoradi-我非常不明白为什么我可以使用一个缓冲区而不是另一个缓冲区,而这是唯一的区别?我将继续测试,并在这里张贴,如果我发现otherwise@RetoKoradi-我在我的应用程序中发现了一个导致这种情况的复杂错误。您的陈述是正确的,即可能有多个程序使用同一个VBO。您是否可以发布一个答案,解释原因?