opengl 获取绑定到顶点数组的顶点缓冲区

zpjtge22  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(135)

我正在编写一个OpenGL应用程序,我现在面临的问题如下:
假设我有一个顶点数组,有它的ID。但是,我手头没有它的绑定顶点缓冲区ID。我需要一个操作的缓冲区ID。那么,是否可以从顶点数组中检索当前缓冲区绑定?
请注意,我遇到过glGetIntegerv,但我认为它只检索当前缓冲区绑定,而不是顶点数组绑定

fnvucqvd

fnvucqvd1#

假设我有一个顶点数组,它有ID,但是我手头没有它的绑定顶点缓冲区ID。
在运行良好的应用程序中,这是不可能的。是您的应用程序将缓冲区放入 VAO 中。因此,您应该已经知道哪个缓冲区附加到了VAO中。这是一个您不需要问的问题。
但是,如果你别无选择,只能问OpenGL一个你应该知道答案的问题,你必须首先把 VAO 绑定到上下文。如果你没有使用separate attribute format API,那么你可以使用glGetVertexAttribivGL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,指定你感兴趣的属性索引。如果你想使用单独的属性格式API,您需要将glGetIntegeri_vGL_VERTEX_BINDING_BUFFER一起使用,指定要查询的绑定索引。
如果您使用DSA(它 * 需要 * 使用单独的属性格式),那么您可以使用glGetVertexArrayIndexediv,带有GL_VERTEX_BINDING_BUFFER和适当的绑定索引。

相关问题