Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何以.dae格式编程保存arkit对象_Ios_Swift_Ios11_Arkit - Fatal编程技术网

Ios 如何以.dae格式编程保存arkit对象

Ios 如何以.dae格式编程保存arkit对象,ios,swift,ios11,arkit,Ios,Swift,Ios11,Arkit,我正在开发一个应用程序,可以创建用户面部的3d网格。我成功地生成了用户面部的数据 我想通过编程将这些数据保存为.dae格式,这样我就可以导出我的.dae文件,在blender等3d软件中进行编辑,然后进一步将其导入iphone并在sceneview中显示该文件 长话短说,我希望通过编程以.dae格式保存数据。我在网上找不到关于这件事的任何信息 如果有其他方法,请告诉我。SceneKit在iOS中不以本机方式读取或写入DAE格式。(SceneKit仅在macOS中读取/写入DAE。当您在应用程序的

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

我想通过编程将这些数据保存为.dae格式,这样我就可以导出我的.dae文件,在blender等3d软件中进行编辑,然后进一步将其导入iphone并在sceneview中显示该文件

长话短说,我希望通过编程以.dae格式保存数据。我在网上找不到关于这件事的任何信息


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

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

从iOS将网格导出为通用文件格式的最佳选择是。该框架支持多种格式,但不支持DAE。如果您只是想输出ARKit生成的
ARFaceGeometry
网格,那么您实际上不需要比OBJ更复杂的格式,而模型I/O就是这样做的

要点:

  • 从顶点/索引数据创建索引。对于顶点和纹理坐标数据,需要使用s,对于三角形索引数据,需要使用es。或者,如果在SceneKit中已经有网格,请使用进行转换

  • 创建一个空的网格,并将其作为子对象添加到网格中

  • 将资源添加到文件中。为写入资源而提供的URL的文件扩展名决定了导出的文件格式,因此,如果要写入obj文件,请使用“.obj”文件名


  • 您可以尝试以下代码:

      let scene2 = sceneView.scene
      let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
      let timeInterval = Date().timeIntervalSince1970 * 1000
      let filename = String(format: "test_%d.dae", timeInterval)
      let exportUrl = documentsPath.appendingPathComponent(filename)
      scene2.write(to: exportUrl, options: nil, delegate: nil, progressHandler: nil);
    

    谢谢回复,但我想导出网格文件,并在blender等3d软件中进行编辑。你给出的这个方法适合吗?你好,瑞克斯特,我也在尝试这样做;以编程方式将网格导出到Obj中。我在网上找不到任何东西。您是否可以提供一些关于我如何做的更多信息,或者与我共享一些资源?如果使用
    MDLMesh(scnGeometry:)
    导入标题的方法是
    import SceneKit.ModelIO
    是否有任何方法导出具有实际面大小的ARFaceGeometry??我对此感到困惑,希望得到一些示例代码,我问了一个与此相关的问题:你好,Jagjot,我也想做同样的事情,但在网上找不到任何东西,如果你已经做了,你能帮我吗?嘿,你能告诉我,在导出到文件时我们能保存面部表情吗?之后,使用相同的文件和网格复制相同的表情。?你能告诉我怎么做吗?