ARKit / ARCore 开发中的 3D 模型格式
Posted
技术标签:
【中文标题】ARKit / ARCore 开发中的 3D 模型格式【英文标题】:3D model formats in ARKit / ARCore development 【发布时间】:2018-03-15 08:31:20 【问题描述】:我是 ios 和 android 的 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 中已弃用)
SceneKit、RealityKit、Sceneform 和 Reality 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 处理更多格式(请参阅 MDLAsset
和 SCNScene.
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 模型格式的主要内容,如果未能解决你的问题,请参考以下文章
50%的消费者期待AR应用,Sketchfab更新ARKit支持,新款Daydream售价99美金,苹果新品出传言 | 大新闻
3D - 模型未在 iOS 的 ARCore Augmented Faces 中呈现