我正在寻找更智能的算法来处理OpenGL中的VBO。
目前,我目前将每个模型存储在4MB VBO中。 如果模型大于4MB,则单独存储。 存储对象使得模型汇集在一起以减少绑定的数量。
我遇到的问题是如何清理未使用的VBO,这些VBO仅使用稀疏。 关于如何更好地管理这些内存池的任何资源都表示赞赏。
答案 0 :(得分:1)
尝试使您的VBO尽可能大也没有任何好处。事实上,在我的经验中,大约0.5k到5k顶点的适度大小的VBO效果最好。
答案 1 :(得分:1)
我原本和你一样。我在大约100行代码中实现了一个简单的freelist,以便可以重用已释放的VBO段。它显着减少了VBO重新分配,这给了我框架故障。我使用了最合适的分配算法,因为我有许多网格恰好具有相同数量的顶点和面。