当用户在检测到的平面上点击时,我试图在AR场景中放置3D对象:
self.sceneView.scene.rootNode.addChildNode(model3DNode)
但是,在渲染3D模型之前,相机会冻结几秒钟。这仅在第一次时发生,随后进行的任何放置模型的尝试均会顺利执行。由于模型很轻(1.3Mb),这看起来很奇怪。到目前为止,我已经尝试了不同的解决方案:
DispatchQueue.global(qos:.background).async
的后台线程sceneView.prepare([model3DNode], completionHandler: { (success) in
self.sceneView.scene.rootNode.addChildNode(model3DNode)
})
但是这些方法都不成功。在此处的附件中,您可以找到分析的结果,并且可以清楚地看到GPU / CPU帧时间是第一次出现峰值,随后的所有尝试均无效(FPS似乎没有受到影响)。
系统正在运行iOS 12和ARKit 2.0