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

How do you convert Wavefront OBJ file to an SCNNode with Model I/O

我已经从 URL 导入了一个 Wavefront OBJ 文件,现在我想将它插入到我的 iOS 9 应用程序(在 Swift).到目前为止我所做的是:

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

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

Model I/O can share data buffers with the MetalKit, GLKit, and SceneKit frameworks to help you load, process, and render 3D assets efficiently.

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

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

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

就这么简单...