当前位置:  开发笔记 > IOS > 正文

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

如何解决《如何将WavefrontOBJ文件转换为具有模型I/O的SCNNode》经验,为你挑选了1个好方法。

我从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.



1> Jason Leach..:

事实证明这很容易,因为许多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)

这很容易......


请注意`+ [SCNScene sceneWithURL:options:error:]`也可以.
另请注意,解析/导入OBJ需要一些成本.如果这是您在应用程序中随附的资产,请考虑先将其转换为Xcode中的".scn"(或使用您在Mac上运行的工具,使用模型I/O).
推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有