OpenGL骨架动画表现

时间:2010-11-14 09:24:14

标签: c++ optimization opengl skinning

我处于某种状况。

你看,当用renderMesh()函数渲染我的模型时,游戏大约是30fps。渲染到显示列表并运行时,fps大约为450fps。多达1500%的收益。我对此感到非常高兴,因为这意味着OpenGL不是滞后的原因,它是功能,可以优化。

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

什么是最好的解决方案(除了优化我的renderMesh(),我将继续做)。

2 个答案:

答案 0 :(得分:5)

我只能建议:

  1. 使用较少的顶点
  2. 将您的顶点(或大多数顶点)移动到刚性组中 - 这样每个组都可以成为列表
  3. Vertex Buffer Objects

答案 1 :(得分:3)

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