如何使用ARKit放置OBJ类型的3D模型?

问题描述 投票:3回答:1

使用新苹果ARKit放置3D模型需要一些帮助。是否可以放置OBJ类型的对象?我正在尝试放置一个头骨的三维模型。

//Load the OBJ file
let bundle = Bundle.main
guard let url = bundle.url(forResource: "Cranial", withExtension: "obj") else {
    fatalError("Failed to find model file")
}

let asset = MDLAsset(url:url)
guard let object = asset.object(at: 0) as? MDLMesh else {
    fatalError("Failed to get mesh from asset")
}

let scene = SCNScene()
let nodeCranial = SCNNode.init(mdlObject: object)
nodeCranial.simdPosition = float3(0, 0, 0.5)
sceneView.scene.rootNode.addChildNode(nodeCranial)

我不知道为什么没有任何东西出现在镜头前。如果我使用以下行而不是上面的nodeCranial,它可以工作:

let cubeNode = SCNNode(geometry: SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0))

为什么它也不适用于OBJ文件?上面的代码在func viewDidLoad()中。

ios swift augmented-reality arkit .obj
1个回答
3
投票
    let tempScene = SCNScene(named: "art.scnassets/cat/cat.obj")!
    modelNode = tempScene.rootNode
    modelNode.simdPosition = float3(0, 0, 0.5)
    sceneView.scene.rootNode.addChildNode(modelNode)

你可以像这样加载.obj,.scn或.dae文件。

© www.soinside.com 2019 - 2024. All rights reserved.