代码之家  ›  专栏  ›  技术社区  ›  Alexander Rafferty

OpenGL骨骼动画性能

  •  2
  • Alexander Rafferty  · 技术社区  · 14 年前

    我有点不对劲。

    你看,当用rendermesh()函数呈现我的模型时,游戏的速度大约是30fps。当渲染到显示列表并运行时,fps将达到大约450 fps。增长了1500%。我对此欣喜若狂,因为这意味着OpenGL不是导致延迟的原因,它是一个功能,可以优化。

    但现在我想渲染一个蒙皮网格,所以我需要更新每帧的顶点位置,但没有其他内容。所以运行rendermesh()会浪费时间,因为修补所有面等的开销…是不必要的。我想缓存这些数据,但是由于顶点坐标不稳定,显示列表无法工作。

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

    2 回复  |  直到 14 年前
        1
  •  3
  •   BЈовић    14 年前

    你可以使用 VBOs 得到改善。应该与列表相同或更好。1500%的改善是奇怪的。你确定你测量fps对吗?

        2
  •  5
  •   James    14 年前

    我只能建议:

    1. 使用较少的顶点
    2. 在刚性组中移动顶点(或大部分顶点)——这样每个组都可以是一个列表
    3. Vertex Buffer Objects