gpt4 book ai didi

ios - ARKit 2 : Virtual Objects are floating when the ARWorldMap is reloaded from backend

转载 作者:行者123 更新时间:2023-11-30 11:18:45 25 4
gpt4 key购买 nike

我目前正在开发一个可以保存和重新加载的应用程序 AR World Maps (由于 WWDC18 上 ARKit 2 的发布而成为可能)。当我检索存储在后端的世界地图并使用重新加载的 configuration 运行 ar session 时,对象会四处 float ,直到对象放置在其原始表面上(来自原始 session )。我可以通过隐藏对象来防止此问题,直到我可以断言对象 anchorsARPlaneAnchors ,但是在苹果向 iOS 发布了 beta 4 更新后,这个方法就不再起作用了,iOS 也更新了 ARKit SDK。有其他人遇到过这个问题和/或找到解决方案吗?

这是之前解决此问题的代码:

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {

if let _ = anchor as? ARPlaneAnchor {
for object in self.virtualObjectLoader.loadedObjects {
if object.modelName == anchor.name {
DispatchQueue.main.async {
object.isHidden = false
}
}
}
}
}

最佳答案

您在什么时候将对象添加到场景中(在重新定位期间)?我觉得你太快了。

此外,我发现在对象周围添加多个 ARAnchor 有助于实现一些“滑动/移动”。

ARWorldMaps 有一个 ARAnchor 数组,将在重新定位期间添加到您的场景中,我已将其中一个 anchor 指定为我的对象的 anchor ,一旦我看到它们放置在渲染器中:didAddNode:ForAnchor:我使用该 anchor 添加我的对象.

guard let object = items.filter({ (item) -> Bool in
return item.anchor == anchor
}).first else { return }
// Then add the object

关于ios - ARKit 2 : Virtual Objects are floating when the ARWorldMap is reloaded from backend,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51517446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com