2016-01-08 23 views
5

ile bir SCNNode'a nasıl dönüştürürsiniz? Bir URL'den Wavefront OBJ dosyası alıyorum ve şimdi iOS 9 uygulamamdaki sahnedeki (SceneKit) içine eklemek istiyorum (Swift'de. Şimdiye kadar yaptığım şey:Wavefront OBJ dosyasını, Model I/O

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

Bunu bir SCNNode'a dönüştürmekte yardımcı olacak her şey takdir edilecektir.

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

Ama SCNNode içine MDLAsset gelen tampon nasıl emin değilim: Apple'ın dokümanlar göre.

cevap

7

Bu haliyle, halihazırda köprü olan Modelio sınıflarının çoğu kadar bu kadar kolay çıkıyor. Beni tüm ModelIO sınıflarına ve import SceneKit bana da SceneKit sınıflarını veren import ModelIO yapıyordum, ancak Modelio için SceneKit desteğini getirmek için import SceneKit.ModelIO eksikti.

let url = NSURL(string: "url-to-your-obj-here") 
let asset = MDLAsset(URL: url!) 
let object = asset.objectAtIndex(0) 
let node = SCNNode(MDLObject: object) 

bu kadar kolay ... `+ [SCNScene sceneWithURL: seçenekleri: Hata:] o

+4

not' da çalışacaktır. – mnuages

+2

Ayrıca OBJ'yi ayrıştırmak/ithal etmek için bazı maliyetler olduğunu unutmayın. Bu, uygulamanıza/uygulamanıza gönderim yaptığınız bir varlıksa, ilk önce Xcode'ta (veya Mac'te çalışan kendi araçlarınızla Model I/O kullanarak) .scn'ye dönüştürmeyi düşünün. – rickster

+0

Teşekkürler @mnuages – guru