Je dois créer une instance MTKMeshBuffer à partir d'une instance MDLMeshBufferData. Voici un extrait de code:Comment extraire les données d'un MDLMeshBufferData pour remplir un MTKMeshBuffer?
let mdlm = MDLMesh(scnGeometry:sceneGeometry, bufferAllocator:nil)
let mdlSubmesh:MDLSubmesh = mdlm.submeshes?[ 0 ] as! MDLSubmesh
let mdlIndexBufferData:MDLMeshBufferData = mdlSubmesh.indexBuffer as! MDLMeshBufferData
let d:Data = mdlIndexBufferData.data
let mtlIndexBuffer:MTKMeshBuffer = device.makeBuffer(bytes: ???, length: ???, options:MTLResourceOptions.storageModeShared) as! MTKMeshBuffer
Le ??? sont les bits que je dois remplir. Quelqu'un peut-il me montrer la bonne API à utiliser pour extraire les bits du tampon MDL pour remplir le tampon MTK?
Oui, j'ai réussi à créer des maillages via les méthodes d'usine MDLMesh - plan/cube/sphere/... Fonctionne très bien. Ma motivation pour construire les buffers - indexBuffer et vertexBuffer à partir de rien est de lire dans un fichier SCNScene - .scn - et d'en extraire des mailles. La clé API - MDLMesh (scnGeometry: sceneGeometry, bufferAllocator: MTKMeshBufferAllocator (périphérique: périphérique)) - est cassée et je vais y déposer un bug radar. Essayez-le vous-même. – dugla