Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个顶点缓冲区和一个索引缓冲区来渲染多边形网格。我想操纵 N 个顶点的位置(独立于其他相邻顶点移动它们)。
我该怎么做呢?
我当然希望我不必重新使用 glDrawArrays(而不是 glDrawElements)。我花了很长时间才弄清楚顶点/索引缓冲区的渲染。
如果您使用 glBufferSubData 更新数据,您可能会获得稍微更好的性能,特别是如果您可以避免更新所有缓冲区而只更新其中的一小部分。除非您将顶点动画移动到顶点着色器中,否则每次(由您的用户)移动顶点时都需要更新顶点缓冲区,而 glBuffer(Sub)Data 是您最好的选择。
编辑:将 VBO 创建为 DYNAMIC,如果您经常进行更改,请创建两个缓冲区并使用双缓冲方法,以避免性能下降,因为这样您可以在 gpu 使用另一个缓冲区进行渲染时写入数据。