我正在使用ARKit和SceneKit开发一款3D游戏。游戏在60帧每秒的流畅运行,但当我用了一段时间后,设备会变得很热并且帧数降到30帧每秒。能量影响非常大,我在Instruments中注意到了一些东西。我将展示统计数据以及我在Instruments中看到的内容。这里是游戏正常运行时的统计数据,但我不明白为什么节点计数为1.16K。我实际上没有使用太多节点,只是一个简单的水平。 这就是我在Instruments上得到的结果,我不知道它代表什么意思。如你所见,能量影响非常大 我该如何找出fps为什么会变慢,设备为什么会因为使用而变热?
使用ARKit的6自由度跟踪以及SceneKit或RealityKit的渲染(多边形几何,PBR着色器和阴影)以每秒60帧的速度是对处理器和图形单元的极大负担。这也会非常快地耗尽您的电池并使手机产生很多热量。对于AR、VR和AI应用程序来说,这是一个普遍的问题。 为了降低能源消耗,请遵循以下建议: 将模型的总多边形数保持在不超过10K 每个场景使用不超过50K个多边形(使用低多边形模型) 不要使用光线追踪阴影(使用预先烘焙或虚假阴影) 尽量不要使用许多PBR着色器,如金属或反射材料 尝试降低跟踪帧率,如果需要,可以降低渲染帧率 请注意物理消耗了大量的处理能力 不要为您的3D模型使用高分辨率JPEG或PNG纹理
renderer()
方法,这导致了那1000个不必要的节点。 - Andy Jazz