SceneKit AR 游戏 fps 越来越低,设备随着使用而变热

SceneKit AR game fps getting low and the device getting hot with use

我正在使用 ARKit 和 SceneKit 开发 3D 游戏。游戏 运行 以 60 fps 流畅运行,但当我继续使用它一段时间后,设备会变热并且帧率下降到 30 fps。能量影响非常高,我注意到 Instruments 中有一些东西。我将展示统计数据以及我在 Instruments 中看到的内容。这是游戏 运行 流畅时的统计数据,但我不明白为什么节点计数时会得到 1.16K。我实际上并没有使用那么多节点,但它只是一个简单的级别。

这是我在 Instruments 上看到的,不知道是什么意思。 正如您在这里看到的,能量影响非常高

我如何找出为什么 fps 变低并且设备随着使用而变热?

使用 ARKit 的 60 fps 6 DoF 跟踪以及 SceneKit 或 RealityKit 的 60 fps 渲染(多边形几何、PBR 着色器和阴影)对处理器和图形单元来说是极其沉重的负担。它还会非常快速地耗尽您的电池并使 phone 产生大量热量。对于 AR、VR 和 AI 应用程序来说,这是一个常见问题。

To lower an energy impact follow these recommendations:

  • 保持模型的多边形总数不超过 10K
  • 每个场景使用不超过 50K 个多边形(使用 low-poly 个模型)
  • 不要使用 ray-traced 阴影(使用 pre-baked 或假阴影)
  • 尽量不要使用很多 PBR 着色器,例如金属或反光材料
  • 尝试,如果需要,渲染帧率
  • 考虑到物理会消耗大量处理能力
  • 不要为您的 3D 模型使用 high-resolution JPEG 或 PNG 纹理