如何以编程方式将Arkit对象保存为.dae格式

Jag*_*ngh 3 ios swift ios11 arkit

我正在开发一个可创建3d用户面网格的应用程序。我成功地生成了用户面部数据。

我想以编程方式将数据保存为.dae格式,这样我就可以导出.dae文件,在Blender等3d软件中进行编辑,然后再将其导入到iPhone中并在SceneView中显示该文件。

长话短说,我想以编程方式将数据保存为.dae格式。我在互联网上找不到任何有关此的信息。

如果还有其他方法,请告诉我。

ric*_*ter 6

SceneKit在iOS中不是本机读取或写入DAE格式的。(SceneKit仅在macOS中读取/写入DAE。当您将DAE放入应用程序的捆绑资源中时,Xcode会在构建时将其转换为iOS优化格式。)

对于出口而言,网格从iOS的通用的文件格式最好的办法是型号I / O。该框架支持多种格式,但不支持DAE。如果您只是想输出ARFaceGeometry由ARKit生成的网格,则实际上并不需要比OBJ更复杂的格式,而Model I / O可以做到这一点。

要点:

  1. MDLMesh根据您的顶点/索引数据创建一个。MDLMeshBuffer顶点和纹理坐标数据需要s,MDLSubmesh三角形索引数据需要es。或者,如果SceneKit中已经有网格,则使用进行转换MDLMesh(scnGeometry:)。

  2. 创建一个empty MDLAsset,然后将您的网格添加为子对象。

  3. 将资产导出到文件。您提供的用于写入资产的URL的文件名扩展名,以确定导出的文件格式,因此,如果要写入OBJ文件,请使用“ .obj”文件名。