我有点情况。

您会看到,使用我的renderMesh()函数渲染模型时,游戏速度约为30fps。渲染到显示列表并运行该列表时,fps达到约450fps。那就是1500%的 yield 。我对此感到高兴,因为这意味着OpenGL并不是导致延迟的原因,而是功能,并且可以对其进行优化。

但是现在我要渲染蒙皮的网格,因此我将需要更新每帧的顶点位置,但没有其他任何更新。因此,运行renderMesh()会浪费时间,因为不必要的是将所有面等连接在一起的开销。我想缓存这些数据,但是由于易变的顶点坐标,显示列表将无法工作。

什么是最好的解决方案(除了优化我的renderMesh()之外,无论如何我都会这样做)。

最佳答案

您可以使用VBOs并获得改进。应该与 list 相同或更好。 1500%的改善很奇怪。确定要测量FPS吗?

关于c++ - OpenGL骨骼动画性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4176894/

10-12 20:28