但是我发现,如果我使用原始的.dae格式而不转换为.scn格式,也没有任何问题。
我真的看不出.dae和.scn格式之间有什么区别。
实际上,结果对我来说似乎是一样的,但是你能解释一下它们之间的区别以及在什么情况下我应该使用哪种格式吗?
谢谢!
.dae
和.scn
格式之间的差异是显著的。Collada .dae
文件(代表数字资产交换
)是一种跨平台的基于XML的模式格式,用于3D制作应用程序(如Maya或Blender)中的图形和视觉效果。SceneKit的.scn
是Xcode的本地文件格式,适用于iOS、macOS和visionOS应用程序。不幸的是,场景的复杂性和层次结构并不是.dae
和.scn
格式的优势。因此,您可以在SceneKit
和RealityKit
中使用的最强大和有效的最新3D文件格式是USDZ格式。
USD系列是由Pixar开发的通用场景描述格式。它们是一种跨平台的基于Python的模式文件,可以通过将许多源文件组合成逐渐变大的聚合物来创建3D场景。
.dae
Pixar的压缩通用场景描述.usdz
Pixar的ASCII通用场景描述.usda
Pixar的二进制通用场景描述.usd
,.usdc
Wavefront对象.obj
及其材质描述.mtl
Alembic交换文件格式.abc
多边形文件格式.ply
立体光刻文件格式.stl
苹果专有的SceneKit场景格式.scn
要将.fbx
和.glTF
文件转换为.usdz
,请使用命令行。
自2019年以来,RealityKit
框架在iOS、macOS和visionOS开发中越来越受欢迎。它与以下3D文件格式配合使用,支持逼真的材质、物理、动画和空间音效。这些格式中的几何图形可以通过ARView、RealityView和Model3D视图进行可视化。
DAE(数字资产交换,又称Collada)是一种供三维资产使用的厂商中立格式。它支持多个三维创作和展示工具中存在的广泛功能,但不包括SceneKit中的所有可能功能版本。历史上,它是早期场景工具包版本中唯一的资产格式。
SCN格式是SceneKit对象图的序列化表示形式。(有便捷方法在SCNScene
上进行读写,但实际上通过将SCNScene
传递给NSKeyedArchiver
/NSKeyedUnarchiver
获取的内容相同。)因此,它在定义上支持 SceneKit 的所有功能,包括物理、约束、动作、基于物理的摄像机和着色器修改器。
如果您正在使用 DAE 资产、部署到 iOS(或 tvOS 或 watchOS),并且与使用 SCN 资产没有任何区别,则有两个可能的原因:
在部署到 iOS/tvOS/watchOS 时,Xcode (通过 scntool
)会自动将所有 3D 资产资源转换为 SCN 格式。(并应用其他转换,如交错几何缓冲区,以在 iOS/tvOS/watchOS 设备上获得最佳渲染性能。)内置应用的资源目录中的文件名仍带有 .dae
扩展名,但文件内容与 SCN 格式相同。
(iOS/tvOS/watchOS 上运行的 SceneKit 实际上无法读取 DAE,因此它依赖 Xcode 进行预处理。)
usd
或转换usdz
时,你是否遇到了任何问题?还是你只需要参考一下信息。 - Andy Jazz