这是为什么?这取决于获取数据,转换数据,将其推送到GPU然后使屏幕上的像素闪烁的复杂过程.因此,不是"一种最佳方式",而是出现了一些可能通常可以提高性能的指导性.
:))现在,显而易见的是,如果你想要一个会改变的模型,你就不能吃蛋糕而是吃掉它.你必须做出权衡.简而言之,动态对象永远不会像静态对象那样快速渲染.那你该怎么办?
GL_STREAM_DRAW或GL_DYNAMIC_DRAW)的GPU - 这应该保证最佳的内存排列.最后但并非最不重要的是,始终仔细衡量您的变化对绩效的影响.盲目行事无济于事.准确彻底地测量(甚至像着色器编译时间这样的东西有时也很重要!).然后,即使你通过反复试验,也有希望你会到达某个地方.
并特别提到你的一点; 它是一个大的VBO还是一些较小的VBO并不重要,但是一个巨大的VBO可能在内存中存在问题.你仍然可以更新它的一部分,最重要的是它内部的内存安排.