【发布时间】:2018-08-22 20:36:27
【问题描述】:
我正在用 SceneKit 编写一个游戏,它被分为关卡。每个关卡都使用不同的基本形状(Xcode/SceneKit 中的默认形状,可在对象库中找到)作为玩家必须避免的“障碍”。所以第一关有块作为障碍物,在 iPhone 6 及以下设备上以 60 FPS 运行,但是当玩家玩使用金字塔作为障碍物的第二关时,FPS 下降到 10。每个关卡中的节点少于 500 个。它在 iPhone 8 上以 60 FPS 运行。发生了什么以及如何解决?
Here 是一个 youtube 链接,显示它们在游戏中的使用方式。它在 iPhone 8 Plus 上运行,没有 FPS 问题;但是,如果在 iPhone 5s 或更低版本上运行,第一级的帧速率会下降得非常低,而第二级则不会。
This 链接为其提供了运行统计信息。 WaitDrawable 占了很大一部分。
这里是线框的图像,有材料和没有材料。
【问题讨论】:
-
图片,请!!!如果不分析它们各自的线框,甚至无法开始理解金字塔的问题和块的好处。请对没有材料和有材料的模型进行截图。立方体和金字塔都是孤立的,并且在它们的形成中。
-
@Confused 我更新了问题。另外,为了澄清。这些是在“对象库”中找到的对象,除了节点的颜色之外没有添加任何外部网格。
-
使用仪器!它会告诉你是什么减慢了渲染速度。
-
@matt 动画耗时 10 毫秒。
-
@matt 第一层 WaitDrawable 似乎占据了图形的 50%,而第二层则占 1%。
标签: swift xcode scenekit frame-rate