我已经从网址导入了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获取缓冲区。
答案 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)
这很容易......