如何从 ModelIO MDLMesh 转换为 SceneKit SCNGeometry 并返回?
How to convert from ModelIO MDLMesh to SceneKit SCNGeometry and back?
Apple 最近宣布了模型 I/O 框架,可以理解的是,文档目前 quite sparse with many classes still not fully documented. The Model I/O talk 建议在 SceneKit 类 和模型 [=38] 之间使用双向 link =] 类,但我在实践中找不到这样做的方法。
SCNGeometry
有一个 convenience init
接受一个 MDLMesh
对象,但我不确定如何从另一个方向生成一个 MDLMesh
对象预先存在 SCNGeometry
.
MDLMesh
的 init
是:
init(vertexBuffer vertexBuffer: MDLMeshBuffer,
vertexCount vertexCount: Int,
descriptor descriptor: MDLVertexDescriptor,
submeshes submeshes: [MDLSubmesh])
或者,或者,相同但使用 vertexBuffers: [MDLMeshBuffer]
(其中顶点缓冲区对应于 SceneKit 几何源),我不知道从这里去哪里。
(看起来 MDLMeshBuffer
有一个采用 fillData: NSData
参数的方法,我知道 SCNGeometry.geometrySources
给出了一个 SCNGeometrySources
的数组,每个数组都有一个 .data
将这些几何源作为 NSData
对象提供,但我不确定这是否是正确的方法。)
任何指导将不胜感激。
据 WWDC 实验室的工程师称,SceneKit 到模型 I/O 桥接不在第一个测试版中,但应该会在夏季晚些时候出现在另一个测试版中。
Apple 最近宣布了模型 I/O 框架,可以理解的是,文档目前 quite sparse with many classes still not fully documented. The Model I/O talk 建议在 SceneKit 类 和模型 [=38] 之间使用双向 link =] 类,但我在实践中找不到这样做的方法。
SCNGeometry
有一个 convenience init
接受一个 MDLMesh
对象,但我不确定如何从另一个方向生成一个 MDLMesh
对象预先存在 SCNGeometry
.
MDLMesh
的 init
是:
init(vertexBuffer vertexBuffer: MDLMeshBuffer,
vertexCount vertexCount: Int,
descriptor descriptor: MDLVertexDescriptor,
submeshes submeshes: [MDLSubmesh])
或者,或者,相同但使用 vertexBuffers: [MDLMeshBuffer]
(其中顶点缓冲区对应于 SceneKit 几何源),我不知道从这里去哪里。
(看起来 MDLMeshBuffer
有一个采用 fillData: NSData
参数的方法,我知道 SCNGeometry.geometrySources
给出了一个 SCNGeometrySources
的数组,每个数组都有一个 .data
将这些几何源作为 NSData
对象提供,但我不确定这是否是正确的方法。)
任何指导将不胜感激。
据 WWDC 实验室的工程师称,SceneKit 到模型 I/O 桥接不在第一个测试版中,但应该会在夏季晚些时候出现在另一个测试版中。