【问题标题】:Change world origin to existing node in scene in ARKit将世界原点更改为 ARKit 场景中的现有节点
【发布时间】:2018-12-15 20:02:48
【问题描述】:

我的应用有一个 ARSCNView 并通过图像检测识别图像 我们的目标是寻找一张图片,一旦它被识别出来,就改变世界位置到它的中心

有些东西不工作。任何帮助将不胜感激!

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

    guard let imageAnchor = anchor as? ARImageAnchor else {return}

    if let imageName = imageAnchor.referenceImage.name  {
        switch imageName {
            case "myImage":

            //OK, the image gets recognized

            let refSphere = SCNSphere(radius: 0.02)
            let refNode = SCNNode(geometry: refSphere)
            refSphere.firstMaterial?.diffuse.contents = UIColor.red.withAlphaComponent(0.8)
            node.addChildNode(refNode) // OK, there's a sphere representation on top of the recognized image

            sceneView.session.pause()
            self.sceneView.session.setWorldOrigin(relativeTransform: node.simdTransform) // Trying to move the world Origin to the center of recognized image
            sceneView.session.run(configuration, options: [.resetTracking])

            let box = SCNBox(width: 0.05, height: 0.05, length: 0.05, chamferRadius: 0.01)
            let boxNode = SCNNode(geometry: box)

            box.firstMaterial?.diffuse.contents = UIColor.green.withAlphaComponent(0.9)
            boxNode.position = SCNVector3(0,0,0)

            sceneView.scene.rootNode.addChildNode(boxNode)  // Not OK - I was expecting to have world Origin in the center of the recognized image and a green box on top of it

        default:
            print("other")
        }
    }
}

【问题讨论】:

    标签: scenekit arkit


    【解决方案1】:

    我是这样做的:

    self.sceneView.session.setWorldOrigin(relativeTransform: imageAnchor.transform)
    

    【讨论】:

      【解决方案2】:

      不知道它是否仍然与您相关,但是在您使用self.sceneView.session.setWorldOrigin 更改世界原点后,您可以使用.resetTracking 选项恢复会话,它将您的世界原点设置为相机的位置。

      摆脱该选项应该会有所帮助。

      【讨论】:

        猜你喜欢
        • 2018-06-04
        • 2020-01-07
        • 1970-01-01
        • 2022-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-13
        相关资源
        最近更新 更多