1

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

我该怎么做呢?

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

4

1 回答 1

0

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

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

于 2013-05-02T15:20:12.747 回答