2016-01-08 9 views
5

URLからWavefront OBJファイルをインポートしました。これを私のiOS 9アプリケーションのシーン(SceneKit)に挿入したいのですがスイフトで)。私がこれまで行ってきたことは、次のとおりです。Model I/Oを使用してWavefront OBJファイルをSCNNodeに変換するには

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

これをSCNNodeに変換する助けがあれば助かります。

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

しかし、私はSCNNodeにMDLAssetからバッファを取得するかどうかはわかりません:Appleのドキュメントに記載。

答えて

7

これは、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) 

簡単... ​​

+4

ノート '+ [SCNScene sceneWithURL:オプション:エラー:]は'も動作します。 – mnuages

+2

また、OBJのパース/インポートにはいくらかのコストがかかります。これがあなたのアプリケーションで/あなたのアプリと共に出荷されている場合は、まずそれをXcodeの '.scn'(またはMac上で動作する独自のツールを使ってモデルI/Oを使って)に変換することを検討してください。 – rickster

+0

ありがとう@mnuages – guru

関連する問題