终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

2021年11月29日17:49:05 发表评论 9,054 次浏览

每年我们都会收到越来越多的迹象,表明未来几年增强现实(AR) 市场会有多大。无论这些迹象是 Apple 的 AR 招聘热潮、维护场景中不断增加的需求,还是 Facebook 创始人的模糊暗示,我们都在关注它们。

根据最受欢迎的交互式开发平台之一 Unity3D 等主要参与者的说法,AR 收入有望超过 VR 收入。鉴于每个现代智能手机默认都是 AR 设备,这些主要参与者可能是对的。

2017 年AR 市场价值约35 亿美元,预计到 2025 年将达到 1980 亿美元。构建和虚拟内容以及设计未来的新 AR 体验听起来像是一个安全的赌注!

问题是:“你什么时候开始自己开发 AR 应用程序?”

如果答案是“现在”,它应该是“现在”,那么下一个问题是“我们应该使用什么工具?” 或者在此之前“什么软件用于增强现实”?

嗯,这正是本AR框架比较指南要回答的问题。

AR 开发行业竞争激烈,主要科技公司大量投资于自己的 AR 软件开发工具包 (SDK)。苹果在 2017 年发布了他们的 ARKit,仅仅一年后谷歌发布了 ARCore。目前有四种主要的 AR SDK:ARKitARCoreVuforiaAR Foundation。所有 SDK 都集成在 Unity 游戏引擎(确保你拥有最新版本的 Unity)和 Unreal Engine 4 中。

两种游戏引擎(Unity 和 Unreal)都是 XR 开发中最受欢迎的选择,因为它们具有免费增值性质和强大的功能。使用这里提到的 SDK - 你正在决定要开发下一个项目的用途和现实平台。在本指南中,我们仅讨论 AR 开发选项。你还可以将 SDK 视为一个插件,你可以使用它来扩展基础软件的功能(或用于你最喜欢的游戏的 DLC,你可以在其中获得新的关卡和角色)。 

增强现实的开发原则在大多数用例中类似于虚拟现实开发。大多数原则保持不变,但是,对于 AR,你必须考虑用户看到真实世界以及叠加的视觉数据的等式。 

AR 应用程序是为移动设备开发的,这些移动设备可以是你的 iOS 或 Android 设备,也可以是企业/商业解决方案中使用的更复杂的 AR 耳机。在这种情况下,你将为HoloLens 2、Magic Leap 或即将推出的 AR 耳机开发应用程序。 

在本文中,我们将详细讨论这些强大的工具、Unity 不断发展的 AR Foundation 平台以及市场上最古老的 AR 开发套件之一 PTC 的 Vuforia。你将了解每个开发套件的核心功能及其优点和缺点,包括ARKit、ARCore、Vuforia、AR Foundation差异比较。

我们希望本AR框架指南能够帮助你尽快进入 AR 开发,并就哪种工具最适合你做出明智的决定。

ARKit 3

什么是 ARKit?

ARKit是 Apple 创建的一组工具,用于帮助开发人员为 iOS 设备创建增强现实应用程序。 

哪个AR框架最好?让我们首先解决房间里的大象问题:使用 ARKit,你只能为 iPhone 和 iPad 开发 AR 应用程序。更具体地说,从 iPhone 6s 开始的 iPhone 和从 iPad Pro 开始的 iPad。 

虽然这似乎令人失望,但至少有以下三个原因:

  • 原因#1:你仍然可以在使用 Unity 的 AR Foundation 框架为其他平台进行开发时使用 ARKit。我们将在本文后面讨论这一点。
  • 原因#2:AppStore 更加商业化。尽管世界上有更多的 Android 小工具,但 Apple 用户在 AppStore 上的花费是 Google Play Store Market 上的1.9 倍。 
  • 原因 #3:鉴于 Apple 软件与 Apple 硬件密切相关,当你使用 ARKit 为 iOS 设备进行开发时,可能会遇到较少的摩擦。 

ARKit 于 2017 年与 IOS 11 一起发布。 当时,在开发 AR 应用程序时,你应该使用 Apple 的 SceneKit 开发框架,该框架构建了 ARKit 的第一个版本。 

鉴于 SceneKit 于 2012 年发布,早在 AR 兴起之前很久,它对于严格的 AR 应用程序和更高级的游戏引擎(如 Unity)来说效率较低。然而,它完成了一段时间的工作,大多数开发人员使用它来将 AR 体验添加到他们的 3D iOS 应用程序中。

AR框架比较指南:最近,发生了很多变化。虽然 SceneKit 在去年几乎为零更新,但就在几个月前,Apple 发布了第三版 ARKit,其中包含一个新的仅限 AR 的框架 RealityKit。

ARKit 3 具有多项新功能,例如:

  • 人物遮挡:3D AR 内容真实地穿过现实世界中的人的身后和身前
终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

来自developer.apple.com 的图片 

  • 一次最多追踪三张脸
  • 动作捕捉:使用姿势和手势作为 AR 应用程序的输入,创建直接与人体动作交互的内容


ARKit 3 的另一个突出特点是Reality Composer。简而言之,Reality Composer 是一种可视化工具,可让你快速将 3D 对象添加到场景中,而无需过多的编码或建模。 

使用 Reality Composer,你可以通过将 AR 内容添加到你的应用程序中来创建快速的 AR 原型。

如何使用 RealityKit 和 Reality Composer

值得注意的是,SceneKit 和 RealityKit 框架之间没有向后兼容性。因此,如果你已经使用 SceneKit 开发 AR 应用程序,则必须从头开始在 RealityKit 中重新创建你的项目。 

值得庆幸的是,RealityKit 和 Reality Composer 都是由 Apple 开发的,旨在简化 AR 开发而不是让它变得更难。 

如果你需要 3D 模型来测试你的 ARKit 项目,请从 Apple 的AR Quick Look 库下载它们。

AR Quick Look 是 ARKit 的一项功能,它允许你使用原生 Apple 应用程序打开 3D 模型,例如 Safari、Messages、Mail、News 和 Note。Quick Look 然后将这些 3D 模型作为 AR 对象放入物理环境的实时视图中。

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

来源链接

这些 3D 模型应该具有 .usdz 文件格式,但你可以使用 XCode 转换器命令转换任何 .obj 3D 模型 xcrun usdz_converter

你还可以使用 Apple 最近发布的Reality Converter。该软件允许你在 macOS 上将 .obj、.gltf 和 .usd 文件转换、查看和自定义为 USDZ 3D 对象。

你可以按照以下教程使用 Reality Composer、RealityKit 和 AR Quick Look 库创建基本的 AR 应用程序。

正在使用的 ARKit 应用程序示例

目前在 AppStore 上有数以千计的应用程序是使用 ARKit 开发的。虽然其中几乎一半是游戏,但一些广受欢迎的项目使用 ARKit 可以改善学校的教育流程,增强流行杂志中的故事,甚至可以帮助你选择家具。 

以下是一些使用 ARKit 开发的最流行的 AR 应用程序。

购物

瑞典家具巨头宜家创造了 AR 最常被引用和流行的应用之一。 

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation
ARKit、ARCore、Vuforia、AR Foundation差异比较

IKEA Place允许你将家具物品的 3D 模型直接放置在你想要放置的房间中。该模型可帮助客户在决定是否购买之前查看该产品是否适合并匹配他们的公寓或房屋。

宜家不仅使用 AR 来改善购物体验,亚马逊和 Target 还开发了自己的 iOS 应用程序。

互动讲故事

交互式讲故事是 AR 最常见的用途之一,包括《纽约时报》和《华盛顿邮报》在内的几家主要出版物都采用了这种方法,将交互式 AR 内容直接放入故事中。

为此,纽约时报在 2018 年开发的 iOS 应用程序中使用了 ARKit,此后该应用程序收到了一轮更新和影响。 

起初,该应用程序主要是关于在读者的直接环境中生成 3D 模型。例如,如果你要阅读有关滑冰的体育故事,你可以使用手机将一个滑冰者的 3D 模型放入你的房间:

但随后,AR 项目获得了关注,如今的出版物似乎一直在寻找新的方法来通过增强现实推进讲故事。 

以下是其中一个项目的演示:以历史指南的形式将 AR 内容添加到真实的物理位置。

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

概括

ARKit、ARCore、Vuforia、AR Foundation差异比较:ARKit 是一个强大的 AR 开发工具包,有一点历史。它有它的优点和缺点。但是,更重要的是,ARkit 变化如此之快,以至于开发人员应该特别注意所有更新,以保持领先地位。

优点:

  • 由于最近的 RealityKit 版本,比以前更容易进入
  • 成熟的苹果生态系统
  • Reality Composer 作为快速 AR 原型制作工具
  • 不断扩展支持应用的基础设施
  • 低价:AppStore 分发 99 美元/年

缺点:

  • 仅适用于现代 iOS 设备(iPhone 6s+、iPad Pro+)
  • 与使用 SceneKit 的先前版本没有向后兼容性

ARCore SDK

什么是 ARCore?

简而言之,ARCore是谷歌对苹果 ARKit 的回应。它是一个用于创建增强现实应用程序的开发平台,于 2018 年初发布。 SDK 在 Google Play Services for AR 上运行,在下载开发工具之前,你必须同意其条款和条件。 

ARCore 是 Google 第一个增强现实计算平台 Tango(或也称为 Project Tango)的继承者。该平台支持 4 年,直到谷歌于 2018 年 3 月 1 日关闭支持以支持 ARCore 平台。 

哪个AR框架最好?起初,ARCore 主要关注 Android 作为创建 AR 体验的主要平台。鉴于两者都是由谷歌开发的,这个目标是很自然的。

然而,在过去两年中,ARCore 的影响范围扩大了。如今,ARCore 具有多个 API,可让你为 iOS 和 Android 创建 AR 功能体验。

该平台还可以与流行的游戏引擎Unity3D 和 Unreal Engine 一起使用。

AR框架比较指南:ARCore 提供了三个主要功能,可让你构建强大而丰富的 AR 项目:

  • 运动跟踪:不仅要将虚拟对象放入现实世界,还要确保它们从各个角度看起来都逼真,这一点至关重要。ARCore 通过将渲染 3D 内容的虚拟 3D 摄像头与设备的摄像头对齐来确保这一点(第一次会要求你在手机上打开摄像头权限)。
  • 环境理解:ARCore 检测平面和特征点,因此你可以将虚拟对象正确地放置在真实的平面上。例如,桌子或墙壁上的物体。
  • 光线估计:使用手机的摄像头,ARCore 可以检测物理世界中当前的光照位置。然后 ARCore 以与真实物体相同的方式照亮虚拟物体,增加了真实感。
终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

developer.google.com

如何使用 ARCore

由于 ARCore 在 Android、iOS 和游戏引擎环境中具有多个 API,因此确切的 ARCore 工作流程将取决于你的目标平台。 

例如,要将 ARCore 与 Unity3D 一起使用,你需要安装ARCore Unity SDK。对于 Unreal Engine 4,你必须将 Google 的存储库克隆或添加到你当前的 UE 项目中。

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

幸运的是,developers.google提供了关于如何在所有支持的平台中使用 ARCore 的大量文档。Google 会不断更新其网站上支持的设备列表,因此请务必检查你的目标设备是否支持 ARCore。

你可以按照以下教程在 Unity 中构建简单的 ARCore 应用程序。该视频演示了一种交互式报纸,其体验类似于《纽约时报》AR 应用程序中的体验:

使用 ARCore 开发的项目

几乎所有使用 ARKit 开发的 AR 应用程序都有使用 ARCore 开发的对应应用程序。然而,谷歌正在积极地用 AR 功能丰富他们的原生应用程序,从而在他们的生态系统中激发新一代的 AR 项目。

下面是其中的一些例子。

导航系统

自 2018 年以来,谷歌一直在谷歌地图中展示增强现实体验。

它就像一个魅力——只需打开谷歌地图实时视图,当你的相机指向一个物理位置时,方向就会出现。

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

该应用程序仍处于测试阶段,但已经有几个类似的用于室内导航的 AR 应用程序

远程服务

Streem是基于 ARCore 的 AR 应用程序,可将客户与专业人员联系起来,以解决维护问题并远程指导客户。

根据创作者的说法,Streem 提供远程帮助,允许更快的报价,并为忙碌的专业人士节省路上的时间。只需将 AR 指令添加到手机摄像头馈送即可。

ARKit、ARCore、Vuforia、AR Foundation差异比较:概括

优点:

  • 适用于多种环境:Android、iOS、Unity3D 和 Unreal Engine 4
  • 虚拟物体的自然光
  • 自由

缺点:

  • 并非所有设备都得到完全支持,你可能需要使用 Android Emulator 来测试你的项目
  • 与 Apple 的 ARKit 相比,缺少一些 iOS 功能

Vuforia

什么是 Vuforia?

Vuforia 是市场上历史最悠久的 AR 公司之一。在 2015 年被 PTC Inc. 收购后,Vuforia 扩展了其面向 AR 的工具系列。这些工具现在包括Vuforia EngineVuforia Studio 等产品,它们都用于 AR 应用程序的开发。

当前的第 8 版 Vuforia Engine 展示了无标记 AR 的进步。这意味着与 Vuforia Engine 的先前版本相比,你放置在物理环境中的虚拟对象更加稳定。

它还提供模型目标,这是一项允许从多个视图识别多个模型的功能。即刻。

观看这段12 秒的视频,了解它是如何工作的。

以下是可用于运行 Vuforia Engine 项目的设备列表

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

自 2017 年以来,Vuforia Engine 已直接与 Unity3D 集成,可以更轻松地直接在游戏引擎内创建 AR 项目。

你还可以通过XCode将 Vuforia Engine 与 iOS 、通过Vuforia Android SDK 的Android Studio和 Visual Studio 一起使用。

另一方面,Vuforia Studio是一个独立的拖放应用程序,用于构建 AR 体验,无需大量编程或设计技能。

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

为了节省时间,你可以使用以前创建的 3D CAD 和动画序列。然后,你可以将它们与 2D 内容结合起来,以创建诸如 AR 演示之类的内容,并在你的设备屏幕上弹出说明。

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

如何使用 Vuforia

Vuforia Engine 主要用于 Unity3D 游戏引擎,因此你可以在 Unity3D 官方论坛和 Vuforia网站上找到大量的开发文档。 

下面是一个基本教程,将教你如何使用 Vuforia Engine 8 和 Unity3D 的游戏引擎在房间的地板上放置一个虚拟盒子:

使用 Vuforia 开发的项目

以下是使用 Vuforia Engine 开发的一些最有趣的 AR 应用程序。 

医疗诊断

Vuforia 开发人员能够创建一个医疗 AR 应用程序,该应用程序将患者的 3D 打印心脏作为标记模型,并在其上构建多层解剖结构。检查心脏的医生然后能够观察心脏的特定点,从而详细研究该患者的主动脉夹层。

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

AR 应用程序允许医生只 3D 打印心脏的特定部分,而不必花时间 3D 打印完整的病理。通过只打印他们需要的东西,医生可以只关注最重要的领域。 

该应用程序的未来版本可能包括完全动画和跳动的心脏,以便临床医生可以在 3D 打印模型上以数字方式练习他们的超声心动图技能。

Mercedes

AR框架比较指南:Mercedes开发了一款移动 AR 应用程序,用作E 级和 S 级车主的交互式教程。他们使用此应用程序让所有者了解所有最新功能和技术。 

该应用程序识别梅赛德斯仪表板的形状,然后提供动态提示,解释仪表板的关键部分以及如何使用它们。

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

ARKit、ARCore、Vuforia、AR Foundation差异比较:AR 应用程序通常用作教育辅助工具。在这种情况下,Mercedes还能够跟踪仪表盘的哪些部分被更频繁地使用,从而提高客户满意度和整体入职工作流程。

优点:

  • 图像和形状都可以作为 AR 体验的标记,让你可以基于深度学习和先进的形状识别技术创建无处不在的 AR 交互
  • 与 Unity3D 的平滑集成
  • 支持多种编程语言:C++、Java、Objective-C 和 .NET 通过 Unity3D 扩展

缺点:

  • 与其他 AR 工具相比,定价更高。订阅起价为 42 美元/月。但是,在部署应用程序之前,你可以免费开发。
  • 不支持虚幻引擎 4

AR Foundation

什么是 AR Foundation?

AR Foundation 是一个软件包,可让你在 Unity3D 中构建跨平台 AR 应用程序。 

该工具包括 ARKit 和 ARCore XR 包,这意味着你可以在 Unity3D 中开发你的 AR 应用程序,然后为 Android 或 iOS 构建它。如果你想为 Android 和 iOS 设备实现 AR 应用程序,你将不得不与 AR Foundation 打交道。 

了解如何通过按需免费 AR 研讨会制作流行的 Pokemon Go 游戏。 

更好的是,AR Foundation 可以在同一项目中同时使用 ARCore 和 ARKit 框架的功能。 

哪个AR框架最好?假设你正在构建一个使用 3D 对象跟踪功能的 iOS AR 应用程序。你希望你的应用能够识别特定形状的物理对象并与之交互。 

问题是,3D 对象跟踪功能目前在 ARKit 中可用,但在 ARCore 中尚不可用。AR Foundation 会在物体上添加特殊的钩子。多亏了这些钩子,当你为 Android 构建应用程序时,它仍然可以工作,即使该功能尚未在 Android 上运行。

一旦 ARcore 提供 3D 对象跟踪功能,你所要做的就是更新你的 AR Foundation 应用程序包,而无需从头开始重建你的应用程序。

借助 AR Foundation,你还可以使用独特的 Unity3D 功能来丰富你的应用程序。例如,你可以使用 Unity 的着色器图直接在视觉笔记编辑器中创建有趣的视觉效果:

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

这是结果:

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

如何使用 AR Foundation

要使用AR基金会,你必须至少安装一个特定于平台的包-无论是ARKit XR或ARCORE XR。

AR Foundation 在Unity 文档网站上有大量文档。因此,你应该不会在安装和使用它时遇到问题。还有一个庞大的 Unity 开发人员全球社区,他们可以随时通过官方论坛为你提供帮助。

例如,下面是一个有用的代码片段,它允许你在运行时检查当前设备是否支持 AR,如果不支持,则为不支持的设备提供后备体验。 

public class MyComponent {
[SerializeField] ARSession m_Session;
IEnumerator Start() {
if ((ARSession.state == ARSessionState.None ||)
(ARSession.state == ARSessionState.CheckingAvailability))
{
yield return ARSession.CheckAvailability();
}
if (ARSession.state == ARSessionState.Unsupported)
{
// Start some fallback experience for unsupported devices
}
else
{
// Start the AR session
m_Session.enabled = true;
}
}
}

AR Foundation 的另一个优势是其庞大的 Unity3D 社区。有数百个与该平台相关的视频和教程,这使得学习曲线平滑。

下面的教程将教你如何为 iOS 和 Android 平台构建增强现实体验:

使用 AR Foundation 开发的项目

AR Foundation 可让你为任何现代平台构建 AR 体验,包括本文前面提到的所有示例。 

你可以使用以下包含 20 多个存储库的Unity AR Foundation Essentials 库作为你自己的 AR 项目的起点:

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

ARKit、ARCore、Vuforia、AR Foundation差异比较概括

优点:

  • 广泛的社区支持,轻松访问 Unity3D 代码库和资产商店
  • 其他 Unity 功能
  • 同时为多个平台开发一个应用程序的能力

缺点:

  • 适用标准 Unity 定价系统——如果你的项目年收入超过 10 万美元,Unity3D Pro 许可证将花费你每月 40 至 150 美元。

构建你自己的 AR 应用程序

既然你已经了解了不同类型的增强现实 SDK,为什么不自己构建一个简单的应用程序呢?

我们的讲师准备了一个简单的项目,你将利用 Vufori 和 AR Foundation 的平面跟踪在智能手机上的图像目标上叠加一个 Unity 对象。 

包括所有项目资源,例如材质资产和构建设置。

观看点播 AR 研讨会教程

终极AR框架比较指南:ARKit、ARCore、Vuforia、AR Foundation

结论

在本AR框架比较指南中,我们审查了来自行业领导者的四个不同平台。唉,没有明确的赢家。所有四个平台都完全有能力为你提供 AR 开发所需的工具。如果你希望开始为你的设备进行开发,请查看我们的博客,了解如何通过包管理器设置我们的 Unity 构建以立即开始开发。 

最终,你的决定都取决于你的特定需求和情况——某些平台更适合某些项目。用户体验应该始终是你的首要任务——工具只是为了帮助实现最终目标。 

如果你倾向于使用 Apple 先进的应用程序生态系统并创建最大限度地使用 Apple 硬件和软件的 AR 项目,那么一定要使用 ARKit。 

但是,如果你计划在你的 AR 应用程序中利用 Google 的众多服务,并且需要在目标设备方面具有更大的灵活性,请考虑使用 ARCore。

PTC 的 Vuforia 是一个出色的面向业务项目的开发系统,尤其是制造 AR 解决方案。该程序的灵活开发引擎已被用于在多个行业中创建创新的工作流程。此外,Vuforia Expert CaptureVuforia Chalk等工具将帮助你轻松创建 AR 说明和协作会话,以进一步提高员工效率。

目前,Unity3D 拥有世界上最大的 XR 开发社区之一,这只会增加其吸引力。

哪个AR框架最好?最后,对于 AR 游戏和交互式跨平台应用,Unity3D 的 AR Foundation 可能是最佳选择。他们的平台为你提供了使用 ARKit 和 ARCore 框架的好处,以及 Unity3D 自身广泛的功能和庞大的资产市场。

越来越多的公司正在跳上 AR 列车,试图找到新的和革命性的方式来销售产品、教授学生甚至治愈患者。 

未来五年预计增长将超过数千亿美元,可以肯定地说,AR 不是一种季节性趋势,而是一项将改变我们生活方方面面的技术。 

同时,AR 领域的变化如此之快,以至于本指南可能会在一年内更新。 

鉴于科技公司更新其软件和硬件解决方案的频率,我们希望本指南能帮助你在这个令人兴奋且不断发展的行业中保持相关性和竞争力。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: