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



i生成了一个称为 object_A的VBO缓冲区(顶点缓冲区(对象假设object_A包含10个顶点(30个浮子(。现在我想使用glMapBuffer更新object_A20个顶点(60浮子(,我可以使用glMapBuffer

您不能使用glMapBuffer(),这只是用于将缓冲区的数据映射到客户端地址空间中。

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

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

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

最新更新