ARFoundation之路-概述

版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。

(一)、什么是ARFoundation

  2017年,Apple公司与Google公司相继推出了各自的AR开发SDK工具包ARKit和ARCore,分别对应iOS平台与Android平台AR开发。ARKit和ARCore推出后,极大的促进了AR在移动端的普及发展,将AR从实验室带入到普通消费场景中。由于当前的移动手机操作系统主要由iOS与Android两大系统统治,ARKit和ARCore分别服务于各自己的系统平台,这意味着软件产商要开发一套移动AR应用就必须使用ARKit开发一个iOS版本、使用ARCore开发一个Android版本,这无疑增加了开发时间与成本。
  ARCore提供了Android、Android NDK、Unity、Unreal开发包,ARKit官方只提供了Xcode开发包,这也提高了利用其他工具进行开发的开发者学习成本。在这种情况下,Unity构建了一个AR开发平台,这就是ARFoundation,这个平台架构于ARKit和ARCore之上,其目的就是利用Unity的跨平台能力构建一种与平台无关的AR开发环境,换句话说,ARFoundation对ARKit与ARCore进行了再次封装,并按照用户的发布平台自动选择合适的底层SDK版本。

  因此,ARFoundation是ARKit XR插件(com.unity.xr.arkit)和ARCore XR插件(com.unity.xr.arcore)的集合,虽然最终都使用ARKit SDK和ARCore SDK,但因为Unity再次封装的缘故,与专业平台(如ARKit插件和ARCore SDK for Unity)相比,C#调用的API略有不同。
  ARFoundation的目标并不局限于ARKit与ARCore,它的目标是建成一个统一、开放的AR开发平台,因此,ARFoundation极有可能在下步发展中纳入其他AR SDK,进一步丰富AR开发环境。在进一步的发展中,ARFoundation不仅支持移动端AR设备,还会支持穿戴式AR设备开发。
  从上面的描述我们也可以看出,ARFoundation它并不提供AR的底层开发API,这些与平台相关的API均由第三方如ARKit与ARCore提供,因此ARFoundation对某特定第三方功能的实现要比原生的晚(ARFoundation将某第三方SDK的特定功能集成需要时间)。

在这里插入图片描述

(二)、ARFoundation与ARCore、ARKit的关系

  ARFoundation提供了一个独立于平台的脚本API和MonoBehaviour,因此,开发者可以通过ARFoundation使用ARCore和ARKit共有的核心功能构建同时适用于iOS和Android两个平台的AR应用程序。换句话说,这可以让开发者只需开发一次应用,就可以部署到两个平台的设备上,不必做任何改动。
  如前所述,ARFoundation实现实现某底层SDK的功能会比原生的晚,因此,如果我们要开发ARFoundation尚不支持的功能,可以单独使用对应的原生SDK。目前,如果我们只面向ARCore进行开发并希望获取完整的功能集,Google为Unity开发提供了ARCore SDK for Unity;如果只面向ARKit进行开发并希望获取完整的功能集,Unity提供了适用于Unity开发的ARKit插件(Apple并未提供Unity的ARKit SDK开发插件,在ARFoundation发展起来以后,Unity肯定不会再继续维护ARKit插件)。
  ARFoundation与ARCore、ARKit的关系如下图所示:
在这里插入图片描述
  ARFoundation与ARCore、ARKit的区别如下表如示:

SDK简介描述
ARFoundationAR Foundation将ARKit和ARCore的底层API封装整合到一个统一、开入的框架中,并提供 一些额外的实用功能,如Session生命周期管理,以及用于展示环境中已检测功能的MonoBehaviour。
Google ARCore SDK for Unity该SDK为ARCore支持的重要AR功能提供原生API,并在Unity中向Android平台公开这些API,以方便开发者调用。
Unity ARKit Plugin该插件是Unity公司开发的ARKit Unity插件,用于在Unity中构建ARKit应用,它在Unity中公开了C#语言的ARKit Objective-C API,以便开发者调用,该插件还提供一些辅助功能,可以利用兼容iOS设备的前置和后置摄像机。

(三)、ARFoundation支持的功能

  ARFoundation与ARCore、ARKit都正处于快速发展中,ARCore基本保持每两个月进行一次更新频率,ARKit也已经迭代到了ARKit3.0,作为ARKit与ARCore上层的ARFoundaion也已经到了v2.2版。
  但如前文所说,ARFoundation功能的实现要比底层的原生API稍晚一些,下表展示了ARFoundation,ARCore和ARKit功能对比和开发路线图。

支持功能AR FoundationARCoreARkit
垂直平面检测
水平平面检测
特征点检测√ +支持特征点姿态
光照估计√ +Color Correction√ + Color Temperature
射线测试(Hit Testing,对特征点与平面的射线碰撞测试)
图像跟踪
3D物体检测与跟踪-
环境光探头(Environment Probes)-
世界地图(World maps)-
人脸跟踪(识别、姿态、网格和形状混合)√(iPhoneX 及更高型号)
云锚点(Cloud Anchors)-
远程调试(Editor Remoting)开发中√-Instant Preview√ -ARKit Remote
模拟器(Editor Simulation)--
LWRP支持(支持使用ShaderGraph)开发中开发中
摄像机图像API-
人体动作捕捉(Motion capture)-√(iPhoneX 及更高型号)
人形遮挡(People occlusion)-√(iPhoneX 及更高型号)
多人脸检测-√ (iPhoneX 及更高型号)
多人协作(Collaborative session)-√ (iPhoneX 及更高型号)
多图像识别√(iPhoneX 及更高型号)

  AR应用是计算密集型应用,对计算硬件要求较高,就算在应用中什么虚拟对象都不渲染,AR也在对环境、特征点跟踪进行实时解算。由于移动端硬件设备资源限制,一些高级AR应用只能在最新的处理器(包括CPU和GPU)上才能运行。同时得益于Apple强大的独立生态与软硬件整合能力,在ARKit3中推出了很多新功能,但由于Android系统碎片化严重,ARCore预计要等到新版Android发布后才能提供类似的功能。

参考文献

1、Unity’s Handheld AR Ecosystem Unity’s Handheld AR Ecosystem

  • 30
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
ARFoundation是一个用于在移动设备上创建现实增强应用程序的开发框架。人脸跟踪编程是ARFoundation系列教程中的一部分。 人脸跟踪是通过相机捕捉实时视频流并使用AR技术来检测和跟踪人脸的过程。这个过程涉及到计算机视觉和人工智能的技术,可以在移动设备上实时地识别人脸,进而应用各种效果和交互。 在ARFoundation系列教程中学习人脸跟踪编程,你将学习如何使用ARFoundation和Unity引擎来构建具有人脸追踪功能的应用程序。教程会向你介绍如何在Unity中创建一个AR项目,并使用ARFoundation的API来实现人脸追踪功能。 首先,你需要在Unity中导入ARFoundation库并设置相机权限。然后,你可以创建一个3D模型来代表人脸,并将其与人脸跟踪的数据进行关联。在跟踪开始后,你可以通过获取人脸的特征点信息和姿势来实时地更新模型的位置和角度。 此外,你还可以根据人脸的表情特征,例如眨眼、微笑等,来触发应用程序中的效果或交互。例如,你可以通过检测到用户眨眼的动作来实现快门的触发,拍摄照片或录制视频。 通过学习ARFoundation系列教程中的人脸跟踪编程,你将能够掌握如何使用AR技术在移动设备上实现实时人脸跟踪功能。这将为你开发创新的增强现实应用程序提供基础,并且能够为用户提供更加沉浸式和交互性的体验。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_DavidWang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值