Как конфертировать из ModelIO MDLMesh в SceneKit SCNGeometry и обратно?
Apple недавно анонсировала Model I/O Framework, и, разумеется, документация в настоящее время довольно скудна, так как многие классы все еще не полностью документированы. Обсуждение Model I / O предлагает двустороннюю связь между классами SceneKit и классами Model I / O, но я не могу найти способ сделать это на практике.
SCNGeometry
имеет convenience init
который принимает MDLMesh
объект, но я не уверен, как пойти другим путем и создать MDLMesh
объект из ранее существовавшего SCNGeometry
,
init
за MDLMesh
является:
init(vertexBuffer vertexBuffer: MDLMeshBuffer,
vertexCount vertexCount: Int,
descriptor descriptor: MDLVertexDescriptor,
submeshes submeshes: [MDLSubmesh])
или, альтернативно, то же самое, но с vertexBuffers: [MDLMeshBuffer]
(где буфер вершин соответствует источнику геометрии SceneKit), я не могу понять, куда идти дальше.
(Это выглядит как MDLMeshBuffer
есть метод, который принимает fillData: NSData
параметр, и я знаю SCNGeometry.geometrySources
дает массив SCNGeometrySources
каждый с .data
что обеспечивает эти источники геометрии как NSData
объект, но я не уверен, что это правильный путь.)
Любое руководство будет высоко ценится.
1 ответ
По словам инженеров из лаборатории WWDC, мост SceneKit to Model I/O не входит в первую бета-версию, но должен появиться в другой бета-версии позже летом.