如何更新大于当前vbo缓冲区大小的vbo数据?

时间:2017-04-17 08:33:32

标签: opengl opengl-4

我生成了一个名为object_A的vbo缓冲区(顶点缓冲区)对象, 我们假设object_A包含10个顶点(30个浮点数)。 现在,我想使用object_A更新glMapBuffer 20个顶点(60个浮点数),我可以使用glMapBuffer吗?

1 个答案:

答案 0 :(得分:2)

您无法使用glMapBuffer(),仅用于将缓冲区的数据映射到客户端地址空间。

如果要调整缓冲区大小,则必须使用glBufferData()

glBufferData(GL_ARRAY_BUFFER, 60 * sizeof(GLfloat), NULL, GL_DYNAMIC_DRAW);

如果是因为你想要类似realloc()的东西(重新分配缓冲区,保留旧内容)。然后,您可以使用glCopyBufferSubData()并在缓冲区之间复制数据。