我尝试使用ARWorldMap共享功能。
编辑:我正在使用Xcode,iOS和macOS的最新版本(测试版3),可从Apple dev site下载。
因此,我在2个设备之间建立了MultipeerConnectivity连接。一个正在扫描直到拥有.mapped
WorldMap,然后将其发送到另一台设备。
从那里解包后,我创建了一个新的ARConfiguration并将configuration.initialWorldMap
设置为我收到的地图,并由我的ARSession运行此配置。
此后不久,我得到了:
2018-07-06 15:45:15.453812+0200 [Technique] Error initializing VIO handle (0x116113a00):
2018-07-06 15:45:15.456922+0200 [Session] Session (0x115d22340): did fail with error: Error Domain=com.apple.arkit.error Code=200 UserInfo={NSLocalizedDescription=<redacted>, NSLocalizedFailureReason=<redacted>}
2018-07-06 15:45:15.456995+0200 [Technique] ARWorldTrackingTechnique(0x11a5b2e40) error resetting object detection: ObjectDetectionCallbackNotSet
SessionFailed: World tracking failed.
然后调用session(_:didFailWithError:)
。
我什至可以在Apples ARMultiuser App中重现此错误(雷达已提交)。尝试保存和重新加载世界地图时,会发生类似的错误。
我收到并解开WorldData后的代码:
let configuration = ARWorldTrackingConfiguration()
configuration.initialWorldMap = worldData.map // is of type ARWorldMap
sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])
通知: 我不是要您修复Apple的错误。我来到这里的原因仅仅是因为我没有得到苹果(尚未)和其他开发人员的任何反馈。在线。
所以(为了确保),我现在真正要问的是:您可以将ARKit 2.0与最新Beta版本中的世界共享功能一起使用吗?有效的错误?您能想到任何解决方法吗?
有关ARKit 2.0最新beta版的任何反馈都值得赞赏^^
答案 0 :(得分:2)
我也在Beta 3中遇到了这个问题,现在我通过注释以下代码来解决此问题:
configuration.environmentTexturing = .automatic
答案 1 :(得分:1)
对不起,我不知道如何绕过VIO(视觉惯性测距法,有人不知道:它基本上是AR跟踪技术)错误。
但是我可以批准。我用您链接的苹果的示例代码进行了尝试,并得到了相同的错误。我猜您必须等待Apple修复它:/
答案 2 :(得分:1)
我知道您链接的演示应用程序可以在Beta 2中工作,但是我还没有尝试过在Beta 3中运行它,如果那意味着一切
答案 3 :(得分:0)
您需要更新参考数据。这是最新版本中的一个已知问题。 “ ARKit:使用iOS 12 beta 2或更早版本生成的ARReferenceObject和ARWorldMap数据与beta 3或更高版本不兼容。请重新扫描您的对象以生成新的ARReferenceObject和ARWorldMap数据。(41489820)” https://ios.gadgethacks.com/news/released-ios-12-dev-beta-3-public-beta-2-includes-improved-maps-bug-fixes-security-patches-0185742/