ARKit支持哪些3D模型格式?

时间:2018-01-10 15:32:37

标签: swift xcode scenekit augmented-reality arkit

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

3 个答案:

答案 0 :(得分:6)

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

Model I/O的文档说明您可以从以下文件中导入3D资源

  

支持的格式集包括Alembic(.abc),Wavefront Object   (.obj),多边形(.ply)和标准曲面细分语言(.stl)。   也可以支持其他格式。

我没有使用过这个框架,所以不能告诉你ARKit的效果如何。

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

答案 1 :(得分:0)

ARKit 2.0框架以及SceneKit框架目前支持几种流行的3D文件格式:

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

  • 皮克斯压缩的通用场景描述 .usdz

  • 皮克斯的ASCII通用场景描述 .usda

  • 皮克斯的二进制通用场景描述 .usd .usdc

  • Wavefront对象 .obj 以及材料 .mtl

  • Alembic交换文件格式 .abc

  • 多边形文件格式 .ply

  • 立体光刻文件格式 .stl

  • SceneKit场景 .scn

使用这些格式的最佳方法是像这样从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)

希望这会有所帮助。

答案 2 :(得分:0)

可以在以下位置找到Model I / O框架支持的完整文件类型集:

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

  

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

     
      
  • .abc Alembic
  •   
  • .usd,.usda,.usdc通用场景描述
  •   
  • .usdz通用场景描述(移动)
  •   
  • .ply多边形
  •   
  • .obj Wavefront对象
  •   
  • .stl标准镶嵌语言
  •   
     

可能还支持其他格式。

看来,Apple的iOS(自iOS 12起)针对ARKit的新首选文件类型是他们自己的usdz:

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