Xcode中的ARKit使3D模型动摇了

时间:2018-11-25 02:15:42

标签: swift scenekit ios11 arkit ios12

我正在使用ARKits图像检测功能在检测到特定图像时放置3D对象。除了正在创建的3D模型之外,其他所有东西都可以正常工作。像疯了似的发抖。我仔细检查过,参考图片有正确的测量方法。

检测到图像时我呼叫addModel()。这是我的代码的样子。

查找参考图片:

func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
    let node = SCNNode()

    if let imageAnchor = anchor as? ARImageAnchor{
        let plane = SCNPlane(width: imageAnchor.referenceImage.physicalSize.width, height: imageAnchor.referenceImage.physicalSize.height)

        let planeNode = SCNNode(geometry: plane)

        addModel(addTo: planeNode)
        node.addChildNode(planeNode)
    }
    return node
}

addModel()函数如下所示:

func addModel(addTo: SCNNode){
    let testScene = SCNScene(named: "art.scnassets/testModel.scn")

    let testNode = testScene?.rootNode.childNode(withName: "test", recursively: true)
    let testMaterial = SCNMaterial()
    testMaterial.diffuse.contents = UIImage(named: "art.scnassets/bricks")

    testNode?.geometry?.materials = [testMaterial]

    testNode!.position = SCNVector3Zero
    testNode!.position.x = -0.3
    testNode!.position.z = 0.3

    addTo.addChildNode(testNode!)
}

0 个答案:

没有答案