如何在SceneKit中使用OBJ文件或CTM文件而不是DAE文件?

nju*_*rui 3 3d ios scenekit

我曾经在IOS上用openGL和metal渲染3d场景,而我使用的文件格式是OBJ和CTM。这些天,我正在尝试场景工具包。看来SceneKit只加载DAE文件。我可以在Internet上找到的所有演示都使用DAE文件,但在其代码中看不到顶点和构面的数组。如何加载OBJ文件或CTM文件而不是DAE文件?

Cam*_*mer 5

加载一个OBJ文件

就像传递MDLAsset一个有效的URL一样简单。

private func nodeForURL(url: NSURL) -> SCNNode
{
    let asset = MDLAsset(URL: url)
    let object = asset.objectAtIndex(0)
    let node = SCNNode(MDLObject: object)

    return node
}
Run Code Online (Sandbox Code Playgroud)

这不仅会正确加载.obj文件,还会加载引用的.mtl文件。