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

标签 ios swift augmented-reality arkit .obj

我需要一些帮助来使用新的 apple ARKit 放置 3D 模型。是否可以放置类型为 OBJ 的对象?我正在尝试放置头骨的 3d 模型。

//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() 中。

最佳答案

    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 文件。

关于ios - 如何使用 ARKit 放置 OBJ 类型的 3D 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45143887/

相关文章:

Swift:如何实现登录 Storyboard?

opencv - 在opencv的solvePnP中,我应该为objectPoints传递什么?

algorithm - 如何在 2D 中绘制透视校正网格

ios - 有什么办法可以实时预览 AVMutableComposition 吗?如果不是,Final Cut Pro 是如何做到的?

android - 移动应用程序中的良好 Oauth2 流程?

swift - Observable<String?> 仅在第一次运行

ios - 使用 Codable 解码具有相似键的嵌套 JSON

ios - 在 ARSCNView Aspect Fit 中加载大型 3d Object .scn 文件以适应屏幕 ARKIT Swift iOS

ios - fatal error : Index out of range tableview

ios - cvWatershed 中不支持的格式或格式组合(仅支持 8 位、3 channel 输入图像)