wm.*_*1us 5 augmented-reality ios scenekit swift
我读了几个教程,如何在SceneKit/ARKit应用程序中放置3d对象,所有这些教程都使用.scn格式文件作为对象.
但是我发现如果我使用原始.dae格式并且不将其转换为.scn格式则没有任何问题.
我真的看不到.dae和.scn格式之间的任何区别.
实际上结果在我看来是一样的,但你能解释一下它们之间的差异以及在什么情况下我应该使用什么?
谢谢!
DAE(Digital Asset Exchange,又名Collada)是一种供应商中立的3D资产格式.它支持多种3D创作和演示工具中存在的各种功能,但不支持SceneKit中的所有可能功能.从历史上看,它是SceneKit早期版本的唯一资产格式.
SCN格式是SceneKit对象图的序列化.(有读取/写入它的方便方法SCNScene
,但实际上它通过传递SCNScene
到NSKeyedArchiver
/ 来获得同样的东西NSKeyedUnarchiver
.)因此,它根据定义支持SceneKit的所有功能,包括物理,约束,动作,基于物理的相机,以及着色器修饰符.
如果您正在使用DAE资产,部署到iOS(或tvOS或watchOS),并且与使用SCN资产没有任何区别,则有两个可能的原因:
部署到iOS/tvOS/watchOS时,Xcode(via scntool
)会自动将所有3D资源资源转换为SCN格式.(并应用其他转换,如交错几何缓冲区,以获得iOS/tvOS/watchOS设备上的最佳渲染性能.)构建应用程序的Resources目录中的文件名仍具有.dae
扩展名,但文件内容与SCN格式相同.
(在iOS/tvOS/watchOS中运行的SceneKit实际上无法读取DAE,因此它依赖于Xcode的这种预处理.)
您可以在SceneKit
/ 中使用的最有效的 3D 格式ARKit
是USDZ格式。
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
归档时间: |
|
查看次数: |
3868 次 |
最近记录: |