哪种格式文件适用于3D模型SceneKit/ARKit更好用

wm.*_*1us 5 augmented-reality ios scenekit swift

我读了几个教程,如何在SceneKit/ARKit应用程序中放置3d对象,所有这些教程都使用.scn格式文件作为对象.

但是我发现如果我使用原始.dae格式并且不将其转换为.scn格式则没有任何问题.

我真的看不到.dae和.scn格式之间的任何区别.

实际上结果在我看来是一样的,但你能解释一下它们之间的差异以及在什么情况下我应该使用什么?

谢谢!

ric*_*ter 9

DAE(Digital Asset Exchange,又名Collada)是一种供应商中立的3D资产格式.它支持多种3D创作和演示工具中存在的各种功能,但不支持SceneKit中的所有可能功能.从历史上看,它是SceneKit早期版本的唯一资产格式.

SCN格式是SceneKit对象图的序列化.(有读取/写入它的方便方法SCNScene,但实际上它通过传递SCNSceneNSKeyedArchiver/ 来获得同样的东西NSKeyedUnarchiver.)因此,它根据定义支持SceneKit的所有功能,包括物理,约束,动作,基于物理的相机,以及着色器修饰符.

如果您正在使用DAE资产,部署到iOS(或tvOS或watchOS),并且与使用SCN资产没有任何区别,则有两个可能的原因:

  • 您的资产仅使用DAE格式的SceneKit功能.
  • 部署到iOS/tvOS/watchOS时,Xcode(via scntool)会自动将所有3D资源资源转换为SCN格式.(并应用其他转换,如交错几何缓冲区,以获得iOS/tvOS/watchOS设备上的最佳渲染性能.)构建应用程序的Resources目录中的文件名仍具有.dae扩展名,但文件内容与SCN格式相同.

    (在iOS/tvOS/watchOS中运行的SceneKit实际上无法读取DAE,因此它依赖于Xcode的这种预处理.)


ARG*_*Geo 8

您可以在SceneKit/ 中使用的最有效的 3D 格式ARKitUSDZ格式。

USD ?–?Universal Scene Description,由皮克斯开发。该文件能够通过将许多源文件组合成连续更大的聚合来创建 3D 场景。这很好,但这可能是使用美元以已建立的形式交付资产的问题。没有将图像/纹理表示为可在 USD 文件中编码的场景描述的机制。此外,如果这些资产是单个对象,则可以在各种系统和平台上交付,无需解压到文件系统即可流式传输和使用。

SceneKit 框架目前支持几种流行的 3D 文件格式(以这些格式保存的几何图形在 ARSCNView 中可见):

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

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

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

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

  • 波前对象.obj和材料.mtl

  • Alembic 交换文件格式 .abc

  • 多边形文件格式 .ply

  • 立体光刻文件格式 .stl

  • SceneKit 场景 .scn

  • 你也可以转换.fbx.glTF使用文件的命令行

关于Reality Composer格式.rcproject在此处阅读.reality