ARKit / ARCore 开发中的 3D 模型格式

Posted

技术标签:

【中文标题】ARKit / ARCore 开发中的 3D 模型格式【英文标题】:3D model formats in ARKit / ARCore development 【发布时间】:2018-03-15 08:31:20 【问题描述】:

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

    ARKit for iOS 和 ARCore for Android 分别支持哪些类型的 3D 模型格式? (我试过.dae.obj都支持ARkit,还没有测试ARCore。)

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

【问题讨论】:

【参考方案1】:

更新日期:2021 年 11 月 20 日。

场景工具包

Apple SceneKit 框架处理 ARKit 和 3D 应用程序的 3D 模型。 SceneKit 支持以下具有相应材质文件的 3D 资产:

.dae(带或不带动画) .obj(单帧)及其.mtl 纹理 .abc(仅支持单帧) .usdz(有或没有动画) .scn(原生 SceneKit 的场景格式)

RealityKit

Apple 的 RealityKit 框架还可以处理 ARKit 的 3D 模型。您可以在名为 Reality Composer 的独立应用程序中为 RealityKit 制作内容原型。 RealityKit 支持以下 3D 资产:

.usdz(有或没有动画) .reality(有或没有动画和动态) - 为更快的加载时间而设计 .rcproject(有或没有动画和动态)

此外,您可以使用终端的usdzconvert 命令从以下格式获取.usdz

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

当然,您可以使用带有简单 UI 的 Reality Converter 应用程序(2020 年发布)。

场景

很遗憾,但自 2020 年 6 月起,Sceneform 已存档,不再由 Google 维护。

Google Sceneform 处理 ARCore SDK 的 3D 模型。 Sceneform 支持以下 3D 资产及其材质依赖项:

.obj(及其 .mtl 依赖项) .glTF(不支持动画) .fbx(带或不带动画) .sfa(ascii 资产定义,在 Sceneform 1.16 中已弃用) .sfb(二进制资产定义,在 Sceneform 1.16 中已弃用)

SceneKitRealityKitSceneformReality Composer 支持基于物理的渲染。

ARKit 和 ARCore

那么 ARKit 和 ARCore 的作用是什么

这两个 AR 模块不关心 3D 几何图形的导入和渲染。他们只关心跟踪场景理解(即平面检测、命中测试和光线投射、深度感知、光估计和几何重建)。

【讨论】:

【参考方案2】:

ARKit 不关心模型格式,因为 ARKit 本身不显示 3D 模型(或其他任何东西)。

ARKit 提供了供更高级别渲染引擎使用的信息——Apple 的 SceneKit 或 SpriteKit、第三方 Unreal 或 Unity 插件,或者您自己使用 Metal 或 OpenGL 构建的引擎。渲染引擎负责绘制相机画面并叠加 3D 内容以创建 AR 错觉,它使用 ARKit 提供的信息来令人信服地做到这一点。

我对 ARCore 了解不多,但从各方面来看,它在 Android 生态系统中扮演着相同的角色——它也是 Unity、Unreal 或其他处理 3D 模型的引擎。

所以,像这样的问题是特定于您使用 ARKit/ARCore 的任何 3D 引擎。 SceneKit 可以直接处理 DAE 和 OBJ,并通过模型 I/O 处理更多格式(请参阅 MDLAssetSCNScene.init(mdlAsset:))。对于 Unreal、Unity 以及您与 ARCore 句柄一起使用的任何其他内容...请参阅这些技术的文档。

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

我不确定您是否正确检查了 ARCore。 Google 提供的基本示例正在处理 .obj 格式。 ARCore 是一组仅与 AR 相关的工具。只要您能够在 Android 上使用,您就可以使用任何您想要的 3D 格式。它与 ARCore 无关 问题 2 与 ARCore 和/或 android 甚至 arkit 无关

【讨论】:

以上是关于ARKit / ARCore 开发中的 3D 模型格式的主要内容,如果未能解决你的问题,请参考以下文章

为 ARKit 请求 3D 模型的指南

ios - ARKit 3D模型素材

50%的消费者期待AR应用,Sketchfab更新ARKit支持,新款Daydream售价99美金,苹果新品出传言 | 大新闻

3D - 模型未在 iOS 的 ARCore Augmented Faces 中呈现

地球上最大的AR资源库!Sketchfab现已支持ARKit

ARKit – 3D 模型的轴心点错误