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

时间:2018-01-05 18:34:38

标签: ios swift scenekit

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

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:7)

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

SCN格式是SceneKit对象图的序列化。 (在SCNScene上有阅读/写作方便的方法,但实际上,将SCNScene传递给NSKeyedArchiver / NSKeyedUnarchiver也是一样的。 )因此,它定义支持SceneKit的所有功能,包括物理,约束,动作,基于物理的相机和着色器修改器。

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

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

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

答案 1 :(得分:0)

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

  

USD – Universal Scene Description,由皮克斯(Pixar)开发。该文件具有通过将许多源文件组合成依次更大的聚合来创建3D场景的能力。很好,但是使用美元以已建立的资产形式交付资产可能会遇到问题。没有机制可以将图像/纹理表示为可在USD文件中编码的场景描述。同样,如果这些资产是单个对象,则可以在各种系统和平台上交付这些资产,可以在不解压缩到文件系统的情况下进行流传输和使用。

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

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

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

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

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

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

  • Alembic交换文件格式 .abc

  • 多边形文件格式 .ply

  • 立体光刻文件格式 .stl

  • SceneKit场景 .scn