ARKIT / ARCORE开发中的3D模型格式



我是iOS和Android的AR游戏开发的初学者。我有以下问题:

  1. 分别为iOS和Arcore支持Android的ARKIT支持哪些类型的3D模型格式?(我尝试了 .dae.obj由阿尔基特(Arkit)支持,尚未测试arcore。)

  2. 我们的3D模型供应商只能为我们提供FBX格式。如何将其转换为Arkit和Arcore支持的格式?我尝试使用3D模型转换器,但是转换后的模型没有纹理。

更新:2023年8月19日。

场景

Apple SceneKit框架为ARKit和VR应用程序加载3D型号。SceneKit支持以下3D格式,并具有相应的材料文件:

  • .dae(支持动画)
  • .obj(单帧)及其纹理和.mtl文件
  • .abc(仅支持单帧)
  • .usdz(支持动画)
  • .scn(本机场景的格式,支持动画)

REALEKIT

Apple RealityKit框架为AR和VR应用程序加载3D型号。您可以在名为Reality Composer Pro的独立应用程序中创建RealityKit的内容。RealityKit支持以下3D格式:

  • .usdz(支持动画和动态)
  • .reality(支持动画和动力学,为更快的加载而优化)
  • .rcproject xcode 14 - (支持动画和动态)
  • .realitycomposerpro xcode 15

此外,您可以使用终端的USDZConvert命令从以下格式生成.usdz

  • .obj
  • .glTF
  • .fbx
  • .abc
  • .usda
  • .usdc
  • .usd

当然,您可以使用其简单的GUI使用现实转换器应用程序。


场景形式

可惜,但自2020年6月以来,Sceneform已存档,不再由Google维护。

Google场景形式处理ARCore SDK 的3D型号。场景形式支持以下3D资产及其物质依赖性:

  • .obj(具有.mtl依赖关系)
  • .glTF(不支持动画)
  • .fbx(有或没有动画)
  • .sfa(ASCII资产定义,在场景Form 1.16中弃用)
  • .sfb(二进制资产定义,在场景形式1.16中弃用)

scenekit eallekit sceneform 现实作曲家pro 支持基于物理的渲染。


arkit和arcore

但是Arkit和Arcore的作用是什么,然后

这两个AR模块不在乎进口和渲染3D几何。他们只负责跟踪(世界,图像,面部,geo等)和场景理解(即平面检测,命中测试&射线播,深度感知,光估计和几何重建)。

arkit不在乎模型格式,因为Arkit不会显示3D模型(或其他任何)本身。

ARKIT提供了较高级别渲染引擎的信息 - Apple的Scenekit或SpriteKit,第三方虚幻或Unity Plugins,或使用Metal或OpenGL构建的引擎。渲染引擎负责绘制摄像机供稿和覆盖3D内容以创建AR幻觉,并且它使用Arkit提供的信息来令人信服地进行。

我对Arcore了解不多,但是从所有外观上看,它在Android生态系统中都具有相同的作用 - 它是统一,虚幻或其他在此处处理3D模型的引擎。

因此,这样的问题是特定于使用使用 arkit/arcore的任何3D引擎。SceneKit可以直接处理DAE和OBJ,并通过模型I/O进行更多格式(请参阅MDLAssetSCNScene. init(mdlAsset:))。对于虚幻,统一以及与Arcore句柄一起使用的其他内容...请参阅这些技术的文档。

arcore本身目前尚未随附任何3D模型处理逻辑。要渲染任何格式的3D模型,您需要解析数据并使用OpenGL绘制数据。软件包中的示例应用程序演示了如何为简单的3D模型即可(即1个OBJ和1个纹理文件)完成此操作。

我不确定您是否正确检查了Arcore。Google提供的基本示例正在使用.OBJ格式。Arcore仅与AR相关的工具集。只要您能够在Android上使用它,就可以使用3D格式。它与Arcore无关问题2与Arcore和/或Android甚至Arkit

无关

最新更新