【问题标题】:Convert ( .obj / .fbx ) to .dae runtime which must support iOS SceneKit将( .obj / .fbx )转换为必须支持 iOS SceneKit 的 .dae 运行时
【发布时间】:2018-07-04 14:25:34
【问题描述】:

我很难找到一种在后台自动将 .obj / .fbx 转换为 .dae(支持 iOS 场景适配)的方法。

在 python 中,可以将文件从 .obj / .fbx 转换为 .dae 文件格式。这个进程应该在后台运行,当我们在服务器上获得 .obj / .fbx 文件后立即运行。

这是我们正在尝试转换的示例文件。

https://s3.ap-south-1.amazonaws.com/p9-platform/DAE/barware_s11624.obj

如果您有任何建议,请帮助我。

【问题讨论】:

    标签: ios scenekit


    【解决方案1】:

    IOS 上的 Scenekit 不支持 dae,除非它包含在应用程序中。因此,由于“支持 iOS Scenekit”的要求,没有正确的答案。虽然有第三方库(如https://github.com/dmsurti/AssimpKit)可以读取和转换许多3d模型格式,但这不会改变IOS Scenekit不正确支持dae的事实。

    也就是说,可以使用以下步骤在 SceneKit 中将 OBJ 转换为 DAE(在 IOS 11.2 及更高版本中)

    1. 将 obj 文件加载到 SCNScene 中。

    2. 使用 SCNScene 的 writeToURL 方法将场景写入扩展名为 .dae 的文件。

    这将创建一个 SceneKit 可以支持的 .dae 文件(但不是直接支持,即需要包含在 xcode 中或首先转换),该文件以以下内容开头:

    <?xml version="1.0" encoding="UTF-8"?>
    <COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
     <asset>
      <contributor>
       <authoring_tool>SceneKit Collada Exporter v1.0</authoring_tool>
      </contributor>
    

    【讨论】:

      【解决方案2】:

      我会支持使用 Assimp 或 AssimpKit 的建议(我只使用过前者,但后者可能是一个更容易的起点)。

      我相信 iOS 上的 DAE 根本不是 DAE,它们只是保留了相同的后缀,而实际文件是 SceneKit 档案。我不确定编写它们的 API 是否已经公开,但我认为现在可能是因为 Xcode 现在愿意加载 DAE 并写出 SceneKit 档案(但它添加了“.scn”后缀,而不是“.dae ”)。

      iOS SceneKit 可能只加载“.scn”文件——它不会加载真正的 DAE,因为 DEA 读/写框架是从索尼获得许可的,而且规模庞大,iOS 团队只是不想要那个巨人其系统上的丑陋框架。

      另一种选择是将 iOS 应用程序与 Assimp 链接起来——它可以本地加载大量格式,因此您可以跳过所有中间内容。它不像 Sony 的 DAE 库那么大,因此可以将其与您的应用一起提供。

      【讨论】:

        猜你喜欢
        • 2018-03-25
        • 2022-01-23
        • 2017-03-01
        • 2016-03-11
        • 2020-01-12
        • 2018-09-18
        • 2015-10-16
        • 2015-10-12
        相关资源
        最近更新 更多