3d 模型 SceneKit/ARKit 的哪种格式文件更好用
Posted
技术标签:
【中文标题】3d 模型 SceneKit/ARKit 的哪种格式文件更好用【英文标题】:Which format file for 3d model SceneKit/ARKit better to use 【发布时间】:2018-06-15 14:33:56 【问题描述】:我阅读了几篇关于如何在 SceneKit/ARKit 应用程序中放置 3d 对象的教程,它们都使用 .scn 格式的文件来存储对象。
但我发现如果我使用原始 .dae 格式并且不将其转换为 .scn 格式,则没有任何问题。
我真的看不出 .dae 和 .scn 格式之间有什么区别。
实际上结果在我看来是一样的,但你能解释一下它们之间的区别以及在什么情况下我应该使用什么?
谢谢!
【问题讨论】:
【参考方案1】:DAE(数字资产交换,又名 Collada)是一种供应商中立的 3D 资产格式。它支持多种 3D 创作和演示工具中存在的广泛功能,但并非 SceneKit 中的所有可能功能。从历史上看,它是 SceneKit 早期版本的唯一资产格式。
SCN 格式是 SceneKit 对象图的序列化。 (有在SCNScene
上读取/写入它的便捷方法,但实际上它与将SCNScene
传递给NSKeyedArchiver
/NSKeyedUnarchiver
得到的结果相同。)因此,它根据定义支持all 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的这种预处理。)
【讨论】:
【参考方案2】:您可以在SceneKit
/ARKit
中使用的最有效的 3D 格式是USDZ 格式。
USD – Universal Scene Description,由 Pixar 开发。该文件能够通过将许多源文件组合成连续更大的聚合来创建 3D 场景。这很好,但这可能是使用美元以它们已经建立的形式交付资产的问题。没有将图像/纹理表示为可在 USD 文件中编码的场景描述的机制。此外,如果这些资产是单个对象,则可以在各种系统和平台上交付,无需解压到文件系统即可流式传输和使用。
SceneKit
框架目前支持几种流行的 3D 文件格式(以这些格式保存的几何图形在 ARSCNView 中可见):
Collada 的数字资产交易所.dae
皮克斯的压缩通用场景描述.usdz
皮克斯的 ASCII 通用场景描述 .usda
皮克斯的二进制通用场景描述.usd
、.usdc
波前对象.obj
以及材料.mtl
Alembic 交换文件格式.abc
多边形文件格式.ply
立体光刻文件格式.stl
SceneKit Scene .scn
您还可以使用 command line 转换 .fbx
和 .glTF
文件。
关于 Reality Composer 格式
.rcproject
和.reality
read here。
【讨论】:
谢谢安迪。您是如何获得 .usd_ Pixar 导入信息的?我没有在 Xcode 12 的 SCNSceneSource 文档中看到这一点。有一天我会尝试使用 Blender 导出。 嗨@axello!您在导出usd
或转换usdz
时有任何问题吗?或者您只需要参考信息。
嗨,安迪,感谢您提供的帮助。我来自“另一边”; Xcode。刚学习 Fusion360,现在学习 Blender。我在 Blender 中找到了导出到 usdc 的功能,并且看到 Xcode 显示它很好。只是想知道为什么 Apple 不费心更新他们的 SceneKit 文档。不能缺资金 :-) 我确实仍在努力弄清楚如何从 swift 访问这个立方体中导出的动画节点...sketchfab.com/3d-models/…
嗨@axello。我认为 Apple 不会为更新 SceneKit 文档而烦恼,因为有一个新宠——RealityKit。看来它可以是 SceneKit 的替代品。
再次感谢安迪!我应该看一些更新的 AR-VR-Scene-Reality-Kit wwdc 视频!我一直被困在过去。我会研究 RealityKit。以上是关于3d 模型 SceneKit/ARKit 的哪种格式文件更好用的主要内容,如果未能解决你的问题,请参考以下文章