问题
I need some help with placing a 3D model with the new apple ARKit. Is it possible to place an object of type OBJ
? I'm trying to place a 3d model of a skull.
//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)
I don't know why nothing shows up in front of the camera. It works if I use the following line instead of the nodeCranial from above:
let cubeNode = SCNNode(geometry: SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0))
Why doesn't it work for OBJ
file too? The code above is in the func viewDidLoad()
.
回答1:
let tempScene = SCNScene(named: "art.scnassets/cat/cat.obj")!
modelNode = tempScene.rootNode
modelNode.simdPosition = float3(0, 0, 0.5)
sceneView.scene.rootNode.addChildNode(modelNode)
you can load .obj, .scn or .dae files like this way.
来源:https://stackoverflow.com/questions/45143887/how-to-place-a-3d-model-of-type-obj-with-arkit