我从URL导入了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.
事实证明这很容易,因为许多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)
这很容易......