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

问题描述 投票:0回答:1

我生成了一个名为

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

opengl opengl-4
1个回答
2
投票

你不能使用

glMapBuffer()
,那只是为了将缓冲区的数据映射到客户端地址空间。

如果你想调整缓冲区的大小,那么你必须使用

glBufferData()
.

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

如果是因为你想要类似于

realloc()
的东西(重新分配缓冲区,保留旧内容)。然后你可以利用
glCopyBufferSubData()
并在缓冲区之间复制数据。

© www.soinside.com 2019 - 2024. All rights reserved.