【问题标题】:What 3D model formats are supported by ARKit?ARKit 支持哪些 3D 模型格式?
【发布时间】:2018-06-19 19:52:32
【问题描述】:

ARKit 支持哪些 3D 模型格式? 有人知道在 ARKit 中使用的所有支持格式,以及 Xcode 可以导出哪些格式以在应用程序中使用?

【问题讨论】:

    标签: swift augmented-reality scenekit arkit realitykit


    【解决方案1】:

    DAE 和 OBJ/MTL 是自动支持的,因为您只需将文件放到 .scnassets 文件夹中,它就会为您处理它们。就个人而言,我在 OBJ/MTL 方面遇到的问题较少,但我并不精通 3D。

    Model I/O 的文档指出您可以从以下文件导入 3D 资产

    支持的格式集包括 Alembic (.abc)、Wavefront Object (.obj)、多边形 (.ply) 和标准镶嵌语言 (.stl)。 也可能支持其他格式。

    虽然我没有使用过这个框架,所以无法告诉你它与 ARKit 的工作情况如何。

    您可能想看看AssimpKit,它允许将多种格式导出到 .scn SceneKit 场景

    【讨论】:

    • 您错过了 (.scn) 文件格式,一个问题是 .fbx 文件格式如何?这在 ARKit 中是否支持?
    • 好吧,我在回答的最后一句话中确实提到了 scn 。我曾假设 OP 知道它,因为它是 XCode 管理的默认格式(尽管它可能是一个错误的假设)。关于 FBX,大约一年前我尝试过它时,并没有直接支持它。我尝试使用 AssimpKit 将其导出到 scn,但效果不佳。
    【解决方案2】:

    ARKit 5.0

    ARKit 本身不读取任何 3D 格式。只有渲染引擎才能做到。

    SceneKitRealityKit 框架是 ARKit 的卫星,因此它们可以读取支持目前几种流行 3D 文件格式的多边形几何体。如果 SceneKit 或 RealityKit 无法读取文件,您可以使用 usdzconvert 终端命令将其转换为 USDZ。

    • Collada 的数字资产交易所.dae(SceneKit)

    • 皮克斯的压缩通用场景描述.usdz(SceneKit 和 RealityKit)

    • 皮克斯的 ASCII 通用场景描述 .usda(需要转换)

    • 皮克斯的二进制通用场景描述.usd.usdc(需要转换)

    • Reality Composer 格式 .rcproject (RealityKit)

    • Reality Composer 格式 .reality (RealityKit)

    • 波前对象 .obj 以及材料 .mtl(需要转换)

    • Alembic 交换文件格式.abc(需要转换)

    • 多边形文件格式.ply(需要转换)

    • Autodesk Filmbox 格式 .fbx(需要转换)

    • 图形库传输格式.glTF(需要转换)

    • 立体光刻文件格式.stl(需要转换)

    • 原生场景格式.scn(SceneKit)

    使用这些格式的最佳方法是从 MDLAssset 初始化 SCNScene,如下所示:

    import SceneKit.ModelIO
    
    guard let url = Bundle.main.url(forResource: file, withExtension: "usdz") 
    else { 
        fatalError() 
    }
    let mdlAsset = MDLAsset(url: url)
    let scene = SCNScene(mdlAsset: mdlAsset)
    

    【讨论】:

      【解决方案3】:

      可在此处找到模型 I/O 框架支持的完整文件类型集:

      https://developer.apple.com/documentation/modelio/mdlasset/1391813-canimportfileextension

      支持的扩展和格式集包括:

      • .abc Alembic
      • .usd、.usda、.usdc 通用场景描述
      • .usdz 通用场景描述(移动)
      • .ply 多边形
      • .obj 波前对象
      • .stl 标准细分语言

      也可能支持其他格式。

      看起来 Apple 在 iOS(从 iOS 12 开始)上新的 ARKit 首选文件类型是他们自己的 usdz:

      https://developer.apple.com/augmented-reality/quick-look/

      【讨论】:

        猜你喜欢
        • 2012-05-18
        • 2018-06-15
        • 1970-01-01
        • 2018-03-15
        • 1970-01-01
        • 2020-12-08
        • 2014-03-10
        • 2012-12-14
        • 2015-08-05
        相关资源
        最近更新 更多