【问题标题】:SceneKit AR game fps getting low and the device getting hot with useSceneKit AR 游戏 fps 越来越低,设备使用时变热
【发布时间】:2019-11-22 13:07:00
【问题描述】:

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

这是我在 Instruments 上得到的,我不知道它是什么意思。 如您所见,能源影响非常高

如何找出 fps 变低以及设备因使用而变热的原因?

【问题讨论】:

    标签: swift scenekit augmented-reality arkit realitykit


    【解决方案1】:

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

    要降低能源影响,请遵循以下建议:

    • 保持模型的多边形总数不超过 10K
    • 每个场景使用不超过 50K 的多边形(使用低多边形模型)
    • 不要使用光线追踪阴影(使用预烘焙或假阴影)
    • 尽量不要使用许多 PBR 着色器,例如金属或反光材料
    • 尝试lower a tracking frame rate,如果需要,还可以尝试渲染帧速率
    • 考虑到物理消耗大量处理能力
    • 不要为您的 3D 模型使用高分辨率 JPEG 或 PNG 纹理

    【讨论】:

    • 感谢您的回复!我会尽量听从你的建议。你建议我以 30 fps 运行我的游戏吗?
    • 视情况而定。有时,最好降低帧速率并获得不太完美的跟踪和渲染,而不是因为游戏中的 CPU 和电池问题而失去用户。
    • @DanieleCiti,此信息对您有用吗?
    • 是的,当然。我做了一些事情来使我的游戏 FPS 尽可能稳定。我仍然想知道为什么虽然我的场景中有大约 20-30 个节点,但场景统计中的节点数却如此之高。
    • 我不知道你的代码是什么样的,但我认为这是因为你使用了 renderer() 方法,这使得所有那些 1000 个不必要的节点。
    猜你喜欢
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    相关资源
    最近更新 更多