SceneKit AR游戏fps变低且设备使用时变热

时间:2019-07-12 18:39:21

标签: swift scenekit augmented-reality arkit realitykit

我正在使用ARKit和SceneKit开发3D游戏。游戏以60 fps的速度流畅运行,但是当我持续使用一段时间后,设备发热,帧频降至30 fps。能量影响非常大,我在Instruments中注意到了一些东西。我将显示统计数据以及在Instruments中看到的内容。这是游戏平稳运行时的统计数据,但我不明白为什么节点数达到1.16K。实际上,我并没有使用太多的节点,但这只是一个简单的层次。 enter image description here

这是我在Instruments上获得的,我不知道这意味着什么。 enter image description here 如您所见,能量影响非常大 enter image description here

我如何找出为什么fps变低而设备变热的原因?

1 个答案:

答案 0 :(得分:2)

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

  

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

  • 保持模型的多边形总数不超过10K
  • 每个场景使用不超过200K的多边形(使用低多边形模型)
  • 不生成实时阴影(使用预先烘焙的或伪造的阴影)
  • 尽量不要将许多PBR着色器用作金属或反射材料
  • 尝试lower a tracking frame rate和/或渲染帧速率
  • 考虑到动态过程会消耗大量处理能力
  • 请勿将高分辨率纹理用于漫反射,法线,遮挡等。