如何将 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)
就这么简单...
我已经从 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)
就这么简单...