gpt4 book ai didi

ios - ARKit 对象随机摆动

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

在我们的arkit项目中,物体开始摆动。我们尝试使用较旧的代码,在出现此问题之前该代码运行良好,但摆动并没有停止。
我们启用了调试选项来显示原点,它也会摆动。我们尝试将我们的应用程序与不同的设备(iPhone XS、Ipad pro 2018、ipad 2018,均配备 ios 12.1.3)和对象一起使用。
跟踪图像的尺寸正确。

这是我们的配置(Swift):

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
guard let referenceImages = ARReferenceImage.referenceImages(inGroupNamed: "Photos", bundle: Bundle.main) else { return }
let configuration = ARWorldTrackingConfiguration()
configuration.detectionImages = referenceImages
configuration.maximumNumberOfTrackedImages = 2
let options: ARSession.RunOptions = [.resetTracking, .removeExistingAnchors]
sceneView.session.run(configuration, options: options)
sceneView.delegate = self
}

这是我们的渲染器:

 func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
guard let imageAnchor = anchor as? ARImageAnchor else { return }
let referenceImage = imageAnchor.referenceImage
let imageName = referenceImage.name ?? "no name"


let plane = SCNPlane(width: referenceImage.physicalSize.width, height: referenceImage.physicalSize.height)
let planeNode = SCNNode(geometry: plane)
plane.firstMaterial?.diffuse.contents = UIColor(white: 1, alpha: 0) //make the plane invisable

let obj = SCNScene(named: "art.scnassets/obj.scn")!
let objNode = obj.rootNode.childNodes.first!
objNode.position = SCNVector3Zero
objNode.eulerAngles.y = 90
planeNode.addChildNode(objNode)
node.addChildNode(planeNode)
}

谁能帮忙阻止晃动吗?

最佳答案

问题在于:“世界追踪是一门不精确的科学。这个过程通常可以产生令人印象深刻的准确性,从而带来逼真的 AR 体验。但是,它依赖于设备物理环境的细节,这些细节并不总是一致或难以确定实时测量而不会出现一定程度的错误。要构建高质量的 AR 体验,请注意这些注意事项和提示”。来自

From Understanding World Tracking in ARKit.

为了获得更好的 AR 体验,请为您的应用提供适当的物理环境,包括良好的照明、纹理地板等...希望对您有帮助!

关于ios - ARKit 对象随机摆动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54402781/

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