0
我生成了一个名为object_A
, 的vbo缓冲区(顶点缓冲区)对象,我们假设object_A
包含10个顶点(30个浮点数)。 现在我想更新object_A
使用glMapBuffer
与 20个顶点(60浮点数),我可以使用glMapBuffer
?如何更新大于当前vbo缓冲区大小的vbo数据?
我生成了一个名为object_A
, 的vbo缓冲区(顶点缓冲区)对象,我们假设object_A
包含10个顶点(30个浮点数)。 现在我想更新object_A
使用glMapBuffer
与 20个顶点(60浮点数),我可以使用glMapBuffer
?如何更新大于当前vbo缓冲区大小的vbo数据?
您不能使用glMapBuffer()
,这只是为了将缓冲区的数据映射到客户端地址空间。
如果要调整缓冲区大小,则必须使用glBufferData()
。
glBufferData(GL_ARRAY_BUFFER, 60 * sizeof(GLfloat), NULL, GL_DYNAMIC_DRAW);
如果是因为你想类似的东西realloc()
(重新分配缓冲区,保持原有的内容)。然后你可以利用glCopyBufferSubData()
并在缓冲区之间复制数据。