【问题标题】:SceneKit - Adding a new SCNNode to the scene causes severe lagSceneKit - 向场景添加新的 SCNNode 会导致严重滞后
【发布时间】:2015-06-12 01:02:51
【问题描述】:

我发现在场景中添加 SCNNode(使用 SCNGeometry)会导致严重的延迟峰值。

根据时间分析器,它必须生成几何体(至少函数/方法是这样调用的)。它在将节点添加到场景时执行此操作,而不是在创建节点时执行此操作。因此,使用 SCNNodes 创建池将不起作用。

有没有办法摆脱这种滞后?我希望能够在不丢失任何 FPS 的情况下将节点添加到场景中。

到目前为止,我唯一的想法是将所有内容添加到场景中,然后隐藏/取消隐藏它,尽管这并不是一个真正干净的解决方案。

这是来自 Time Profiler 的截图:

【问题讨论】:

    标签: ios objective-c xcode performance scenekit


    【解决方案1】:

    看起来您正在添加一个附有SCNShapeSCNText 的节点,并且这些几何形状的创建成本很高(您必须对贝塞尔曲线进行离散化和三角剖分,最终必须计算和偏移曲线倒角)。

    您可以尝试从SCNSceneRenderer预加载以下方法:-prepareObject:shouldAbortBlock:-prepareObjects:withCompletionHandler:

    【讨论】:

      猜你喜欢
      • 2019-03-20
      • 2022-07-29
      • 2012-06-03
      • 2017-09-14
      • 2019-11-06
      • 2018-03-28
      • 2016-12-01
      • 1970-01-01
      • 2018-02-01
      相关资源
      最近更新 更多