我遇到了一些情况。
你看,当使用我的 renderMesh() 函数渲染我的模型时,游戏的帧率约为 30fps。当渲染到显示列表并运行它时,fps 达到大约 450fps。那是 1500% 的 yield 。我对此感到非常高兴,因为这意味着 OpenGL 不是延迟的原因,而是可以优化的功能。
但现在我想渲染蒙皮网格,所以我需要更新每帧的顶点位置,但仅此而已。所以运行 renderMesh() 是浪费时间,因为将所有面拼接在一起的开销,等等……是不必要的。我想缓存此数据,但由于顶点坐标不稳定,显示列表将无法工作。
最好的解决方案是什么(除了优化我的 renderMesh(),无论如何我都会这样做)。
最佳答案
我只能建议:
- 使用更少的顶点
- 在刚性组中移动你的顶点(或它们中的大部分)——这样每个组都可以是一个列表
- Vertex Buffer Objects
关于c++ - OpenGL骨骼动画性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4176894/