Как конфертировать из 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 не входит в первую бета-версию, но должен появиться в другой бета-версии позже летом.

Другие вопросы по тегам