我有两个
ARWorldMaps
被捕获到两个 iOS 设备上,然后发送到服务器。这些地图具有相似的追踪区域,但也有不同的区域。两个地图都存储在远程服务器上。应该注意的是,我的 AR 应用程序没有多用户体验。
fileprivate func retrieveWorldMap() {
let storedData = UserDefaults.standard
if let data = storedData.data(forKey: "WorldMap") {
if let unarchiver = try? NSKeyedUnarchiver.unarchivedObject(
ofClasses: [ARWorldMap.classForKeyedUnarchiver()],
from: data),
let worldMap = unarchiver as? ARWorldMap {
config.initialWorldMap = worldMap
sceneView.session.run(config, options: [])
}
}
}
如何在没有 MultipeerConnectivity 帮助的情况下将两个 ARWorldMap 合并为一个更大的地图?
“盲目”合并两个 ARWorldMap,而不使用带有比较算法的视觉控制,是没有意义的。 ARKit 工程师建议仅当您运行将新检测到的点与已保存会话中的稀疏点云相结合的新会话时才执行此操作。 “盲目”地组合两个相邻的 ARWorldMap 没有实际价值,因为点云的整体定位精度会显着下降(这导致 AR 模型出现不可逆的定位误差),因为地图是在没有参考真实世界环境的情况下组合的.