【问题标题】:How to update VBO vertex data directly?如何直接更新 VBO 顶点数据?
【发布时间】:2013-05-01 06:12:40
【问题描述】:

我有一个顶点缓冲区和一个索引缓冲区来渲染多边形网格。 我想操纵 N 个顶点的位置(独立于其他相邻顶点移动它们)。

我该怎么做呢?

我当然希望我不必重新使用 glDrawArrays(而不是 glDrawElements)。我花了很长时间才弄清楚顶点/索引缓冲区的渲染。

【问题讨论】:

标签: iphone opengl-es


【解决方案1】:

如果您使用 glBufferSubData 更新数据,您可能会获得稍微更好的性能,特别是如果您可以避免更新所有缓冲区而只更新其中的一小部分。除非您将顶点动画移动到顶点着色器中,否则每次(由您的用户)移动顶点时都需要更新顶点缓冲区,而 glBuffer(Sub)Data 是您最好的选择。

编辑:将 VBO 创建为 DYNAMIC,如果您经常进行更改,请创建两个缓冲区并使用双缓冲方法,以避免性能下降,因为这样您可以在 gpu 使用另一个缓冲区时写入数据渲染。

【讨论】:

    猜你喜欢
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 2012-05-27
    相关资源
    最近更新 更多