ios - ARKit - 将 3D 模型添加到场景时相机卡顿
问题描述
当用户点击检测到的平面时,我试图在 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
解决方案
推荐阅读
- javascript - 使用超时 NodeJS
- c# - 将数据从 MongoDB 加载到 SQL Server 的 SSIS 脚本任务出错:无法加载文件或程序集 MongoDB.Driver.Core
- javascript - 数组搜索和排序
- html - Div 未显示在屏幕上,我是否缺少一些 CSS 属性?
- r - 如何根据另一个闪亮小部件的值对闪亮小部件的值进行子集化
- azure - 如何从 Powershell Runbook 访问 VM 中的脚本文件
- scala - 在scala中扩展一个类是否也继承了辅助构造函数?
- javascript - 无法使用 ForEach 填充数组
- android - 如何将星期几用作 MPAndroidChart 的右轴标签?
- spring-boot - 适用于 Spring Boot >1.5.20 的 Spring Cloud Stream Kafka Binder 和 Spring Cloud Azure EventHub 兼容版本