如何将Wavefront OBJ文件转换为带有模型I / O的SCNNode

时间:2016-01-08 01:10:02

标签: ios 3d scenekit wavefront

我已经从网址导入了Wavefront OBJ文件,现在我想将它插入我的iOS 9应用程序(在Swift中)的场景(SceneKit)中。到目前为止我所做的是:

let asset = MDLAsset(URL: localFileUrl)
print("count = \(asset.count)")  // 1

任何将此转换为SCNNode的帮助都将不胜感激。根据Apple的文档:

  

模型I / O可以与MetalKit,GLKit和SceneKit框架共享数据缓冲区,以帮助您有效地加载,处理和呈现3D资产。

但我不确定如何从MDLAsset到SCNNode获取缓冲区。

1 个答案:

答案 0 :(得分:8)

事实证明这很容易,因为许多ModelIO类已经桥接。我正在做import ModelIO,这使我可以访问所有ModelIO类,同样import SceneKit给了我SceneKit类,但是,我缺少import SceneKit.ModelIO来为ModelIO引入SceneKit支持。

let url = NSURL(string: "url-to-your-obj-here")
let asset = MDLAsset(URL: url!)
let object = asset.objectAtIndex(0)
let node = SCNNode(MDLObject: object)

这很容易......