我正在使用 OpenGL
实现某种批量绘图。为此,我创建了一个 vertex buffer
来存储数据。
注意:这个缓冲区通常会在每一帧上更新,但永远不会减少大小(但仍然可以增加)。
我的问题是:使用 glBufferData
在技术上是否正确? (使用 s treaming write-only mode
)来更新它(而不是例如 glMapBuffer
)?我想没有必要映射它,因为完整的数据已经更新,所以我一次发送一个完整的包。如果当前缓冲区大小小于我发送的大小,它会自动增加,不是吗?我现在才确定它真正工作的方式(也许它会在每次调用时重新创建缓冲区,不是吗?)。
最佳答案
最好有固定大小的缓冲区并且不要每帧都重新创建它。
您可以通过以下方式实现:
来自评论的想法:
链接:http://hacksoflife.blogspot.com/2010/02/double-buffering-vbos.html
希望有帮助
关于OpenGL。使用 glBufferData 更新顶点缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14155615/