哪种格式的 3d 模型文件 SceneKit/ARKit 更好用
Which format file for 3d model SceneKit/ARKit better to use
我阅读了一些教程,了解如何在 SceneKit/ARKit 应用程序中放置 3d 对象,并且所有这些教程都使用 .scn 格式的对象文件。
但是我发现如果我使用原始的.dae格式并且不将其转换为.scn格式则没有任何问题。
我真的看不出 .dae 和 .scn 格式之间有什么区别。
实际上结果在我看来是一样的,但是你能解释一下它们之间的区别以及我应该在什么情况下使用什么吗?
谢谢!
DAE(数字资产交换,又名 Collada)是一种供应商中立的 3D 资产格式。它支持多种 3D 创作和演示工具中存在的广泛功能,但不是 SceneKit 中的所有可能功能。从历史上看,它是 SceneKit 早期版本的唯一资产格式。
SCN 格式是 SceneKit 对象图的序列化。 (在 SCNScene
上有 reading/writing 的便捷方法,但实际上这与将 SCNScene
传递给 NSKeyedArchiver
/NSKeyedUnarchiver
得到的结果相同。)因此,根据定义,它支持 SceneKit 的 所有 功能,包括物理、约束、动作、基于物理的相机和着色器修改器。
如果您正在使用 DAE 资产,部署到 iOS(或 tvOS 或 watchOS),并且与使用 SCN 资产相比没有发现任何差异,可能有两个原因:
- 您的资产仅使用 DAE 格式中可用的那些 SceneKit 功能。
部署到 iOS/tvOS/watchOS 时,Xcode(通过 scntool
)自动将所有 3D 资产资源转换为 SCN 格式。 (并应用其他转换,如交错几何缓冲区,以在 iOS/tvOS/watchOS 设备上实现最佳渲染性能。)构建应用程序的 Resources 目录中的文件名仍然具有 .dae
扩展名,但文件内容与SCN 格式。
(iOS/tvOS/watchOS中的SceneKit 运行其实是无法读取DAE的,所以依赖Xcode的这个预处理。)
.dae
和 .scn
格式之间的区别很明显。 Collada .dae
(代表 data asset exchange
)是跨平台的 XML-based schema 文件用于 3D 创作应用程序(如 Maya 或 Blender)中的图形和视觉效果的格式。 SceneKit 的 .scn
是 Xcode 的原生文件格式,适用于 iOS 和 macOS 应用程序。不幸的是,场景的 space、速度和层次结构并不是 .dae
和 .scn
格式的强项。因此,您可以在 SceneKit
/ARKit
和 RealityKit
中使用的当今最强大和最有效的 3D 文件格式是 USDZ 格式。
USD family – 通用场景描述,皮克斯开发。它是一种基于Python的跨平台架构文件格式,能够通过将多个源文件组合在一起来创建3D场景成连续更大的聚合体。
SceneKit 格式
SceneKit
支持许多流行的 3D 格式。通过 ARSCNView 可以看到以这些格式保存的几何图形。
Collada 的数字资产交易所 .dae
皮克斯的压缩通用场景描述.usdz
皮克斯的ASCII通用场景描述.usda
Pixar的二进制通用场景描述.usd
,.usdc
Wavefront 对象 .obj
及其 material 描述 .mtl
Alembic 交换文件格式 .abc
多边形文件格式.ply
立体光刻文件格式.stl
苹果专有SceneKit Scene格式.scn
将.fbx
和.glTF
文件转换成 .usdz
使用 command line.
RealityKit 格式
自 2019 年以来,RealityKit 框架越来越受欢迎。它适用于以下三种文件格式:
皮克斯的压缩通用场景描述.usdz
Apple Reality Composer 多场景层次结构.rcproject
Apple 专有格式(上传速度更快).reality
Read about Reality Composer formats .rcproject
and .reality
here.
我阅读了一些教程,了解如何在 SceneKit/ARKit 应用程序中放置 3d 对象,并且所有这些教程都使用 .scn 格式的对象文件。
但是我发现如果我使用原始的.dae格式并且不将其转换为.scn格式则没有任何问题。
我真的看不出 .dae 和 .scn 格式之间有什么区别。
实际上结果在我看来是一样的,但是你能解释一下它们之间的区别以及我应该在什么情况下使用什么吗?
谢谢!
DAE(数字资产交换,又名 Collada)是一种供应商中立的 3D 资产格式。它支持多种 3D 创作和演示工具中存在的广泛功能,但不是 SceneKit 中的所有可能功能。从历史上看,它是 SceneKit 早期版本的唯一资产格式。
SCN 格式是 SceneKit 对象图的序列化。 (在 SCNScene
上有 reading/writing 的便捷方法,但实际上这与将 SCNScene
传递给 NSKeyedArchiver
/NSKeyedUnarchiver
得到的结果相同。)因此,根据定义,它支持 SceneKit 的 所有 功能,包括物理、约束、动作、基于物理的相机和着色器修改器。
如果您正在使用 DAE 资产,部署到 iOS(或 tvOS 或 watchOS),并且与使用 SCN 资产相比没有发现任何差异,可能有两个原因:
- 您的资产仅使用 DAE 格式中可用的那些 SceneKit 功能。
部署到 iOS/tvOS/watchOS 时,Xcode(通过
scntool
)自动将所有 3D 资产资源转换为 SCN 格式。 (并应用其他转换,如交错几何缓冲区,以在 iOS/tvOS/watchOS 设备上实现最佳渲染性能。)构建应用程序的 Resources 目录中的文件名仍然具有.dae
扩展名,但文件内容与SCN 格式。(iOS/tvOS/watchOS中的SceneKit 运行其实是无法读取DAE的,所以依赖Xcode的这个预处理。)
.dae
和 .scn
格式之间的区别很明显。 Collada .dae
(代表 data asset exchange
)是跨平台的 XML-based schema 文件用于 3D 创作应用程序(如 Maya 或 Blender)中的图形和视觉效果的格式。 SceneKit 的 .scn
是 Xcode 的原生文件格式,适用于 iOS 和 macOS 应用程序。不幸的是,场景的 space、速度和层次结构并不是 .dae
和 .scn
格式的强项。因此,您可以在 SceneKit
/ARKit
和 RealityKit
中使用的当今最强大和最有效的 3D 文件格式是 USDZ 格式。
USD family – 通用场景描述,皮克斯开发。它是一种基于Python的跨平台架构文件格式,能够通过将多个源文件组合在一起来创建3D场景成连续更大的聚合体。
SceneKit 格式
SceneKit
支持许多流行的 3D 格式。通过 ARSCNView 可以看到以这些格式保存的几何图形。
Collada 的数字资产交易所
.dae
皮克斯的压缩通用场景描述
.usdz
皮克斯的ASCII通用场景描述
.usda
Pixar的二进制通用场景描述
.usd
,.usdc
Wavefront 对象
.obj
及其 material 描述.mtl
Alembic 交换文件格式
.abc
多边形文件格式
.ply
立体光刻文件格式
.stl
苹果专有SceneKit Scene格式
.scn
将
.fbx
和.glTF
文件转换成.usdz
使用 command line.
RealityKit 格式
自 2019 年以来,RealityKit 框架越来越受欢迎。它适用于以下三种文件格式:
皮克斯的压缩通用场景描述
.usdz
Apple Reality Composer 多场景层次结构
.rcproject
Apple 专有格式(上传速度更快)
.reality
Read about Reality Composer formats
.rcproject
and.reality
here.