更改代码以放置2D UIImage而不是3D形状几何

时间:2017-09-27 18:52:05

标签: 2d scenekit xcode9 arkit

我一直在按照教程创建AR标尺。因此,通过下面的代码,我可以将3D球体放置在我的场景中(我希望保留跟踪功能)。但是,我不是在拍摄3D图像,而是在寻找图像。我尝试更改dotGeometry并将其设置为UIImage并注释掉材料代码,但不确定如何处理dotNode代码。因此,我如何能够将我的图像设置为屏幕上的结果?

let dotGeometry = SCNSphere(radius: 0.005)
    let material = SCNMaterial()
    material.diffuse.contents = UIColor.red

    dotGeometry.materials = [material]

    let dotNode = SCNNode(geometry: dotGeometry)

    dotNode.position = SCNVector3(hitResult.worldTransform.columns.3.x, hitResult.worldTransform.columns.3.y, hitResult.worldTransform.columns.3.z)

    sceneView.scene.rootNode.addChildNode(dotNode)

1 个答案:

答案 0 :(得分:1)

您可以创建一个SCNBox并将其长度设置为一个非常小的值,使其显得平坦。

let box = SCNBox(width: 0.2, height: 0.2, length: 0.005, chamferRadius: 0)
let material = SCNMaterial()
material.diffuse.contents = UIImage(named: "image.png")
box.materials = [material]

boxNode = SCNNode(geometry: box)
boxNode.opacity = 1.0
boxNode.position = SCNVector3(0,0,-0.5)

scene.rootNode.addChildNode(boxNode)

或者你可以按照另一种方法将叠加SKScene(2D)添加到SCNScene(3D),如下所述:How can I overlay a SKScene over a SCNScene in Swift?