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

use*_*261 8 xcode augmented-reality scenekit swift arkit

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

lea*_*rco 8

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

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

支持的格式集包括Alembic(.abc),Wavefront Object(.obj),Polygon(.ply)和Standard Tessellation Language(.stl).也可以支持其他格式.

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

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


ARG*_*Geo 5

ARKit 5.0

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

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

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

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

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

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

  • Reality Composer 格式.rcproject(RealityKit)

  • Reality Composer 格式.reality(RealityKit)

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

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

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

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

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

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

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

使用这些格式的最佳方法是SCNScene像这样从 MDLAssset初始化:

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)
Run Code Online (Sandbox Code Playgroud)