【问题标题】:OpenGL skeletal animation performanceOpenGL 骨骼动画性能
【发布时间】:2010-11-14 17:57:52
【问题描述】:

我有点麻烦。

你看,当我用我的 renderMesh() 函数渲染我的模型时,游戏大约是 30fps。当渲染到显示列表并运行它时,fps 达到了大约 450fps。那是1500%的收益。这让我喜出望外,因为这意味着 OpenGL 不是导致延迟的原因,而是功能,可以优化。

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

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

【问题讨论】:

  • 当我们没有看到实际代码时,提出改进建议有点困难。如果您正在做简单的蒙皮,您甚至可以为它编写一个 GLSL 着色器来完成这项工作。

标签: c++ optimization opengl skinning


【解决方案1】:

我只能建议:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 是的,我是根据 CPU 滴答数来测量的,没有更准确的了。
    猜你喜欢
    • 2017-05-03
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 2013-10-19
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    相关资源
    最近更新 更多