Unity-AR 简介

Unity-AR 简介

现有Unity AR Sdk

  1. ARKit : 苹果推出的AR开发平台

  2. ARCore : Google 推出的增强现实 SDK

  3. ARFoundation : ARFoundation是ARKit XR插件和ARCore XR插件 的集合

  4. vuforia : 高通推出的针对移动设备扩增实境应用的软件开发工具包

  5. EasyAR : 国内 上海视辰信息 增强现实(AR)互动营销技术和解决方案

ARFoundation

1. 简介

​ 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的特定功能集成需要时间)。

2. 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的关系如下图所示:
Unity-AR 简介_第1张图片

3. AR Foundation历史事件

​ 2018年10月Unity发布AR Foundation 1.0版本,支持平面追踪、特征点云检测、参考点/锚点、设备追踪、光照估计、射线碰撞。

​ 2019年5月,AR Foundation 2.1 支持图像追踪、物体追踪、面部追踪、环境探针。

​ 2019年6月,AR Foundation 3.0 支持 ARKit 3.0,新增动作捕捉、人物遮挡、多人协作等功能。

​ 2019年9月[MOU1] ,AR Foundation 支持 Magic Leap 以及 HoloLens 1 和 2 。

​ 2019年11月,SenseAR正式集成进了Unity中国增强版2018.4.11C版本中。

4. 专业术语

​ 设备跟踪:跟踪设备在物理空间中的位置和方向。

​ 平面检测:检测水平和垂直表面。

​ 点云:世界坐标空间中的点的集合。Unity-AR 简介_第2张图片

​ 锚点:设备跟踪的任意位置和方向。

​ 光线估算:估算物理空间中的平均色温和亮度。Unity-AR 简介_第3张图片

​ 环境探针:一种用于生成表示物理环境特定区域的立方体贴图的方法。视频链接: https://live.csdn.net/v/embed/163218

​ 人脸跟踪:检测和跟踪人脸。

​ 2D图像跟踪:检测和跟踪2D图像。

​ 3D对象跟踪:检测3D对象。Unity-AR 简介_第4张图片

​ 网格划分:生成与物理空间相对应的三角形网格划分。

​ 身体追踪:在物理空间中识别出的人类的2D和3D表示。Unity-AR 简介_第5张图片

​ 多人协作:在共享的AR体验中跟踪其他设备的位置和方向。

​ 人体分割和遮挡:将距离现实世界中的对象的距离应用于渲染的3D内容,从而实现物理对象与虚拟对象的逼真的融合。https://www.bilibili.com/video/av455309216/

​ 射线广播:查询物理环境中检测到的平面和特征点。

​ 直通视频:优化了将移动摄像机图像渲染到触摸屏上作为AR内容的背景。

​ 会话管理:启用或禁用AR功能时自动对平台级配置进行操作。

​ 遮挡:在真实场景中的位置实现虚拟物体遮挡 视频资源: https://v.qq.com/x/page/g3104nljtqb.html

Unity-AR 简介_第6张图片

5.ARKit 设备支持情况

5.1 ARKit版本历史

​ 2017年9月 ARKit 1.0:支持环境光照估测、用户设置锚点、追踪状态更改、AR会话中断和恢复的事件通知等。

​ 2018年3月 ARKit 1.5: 新增垂直平面识别、图像识别、图像分辨率提升50%等。

​ 2018年9月 ARKit 2.0:新增多个玩家联机、图像跟踪、3D对象识别、usdz格式文件和测距仪APP等。

​ 2019年9月 ARKit 3.0:新增人体轮廓抠图、人体四肢识别、原型化和制作AR内容的Reality Composer工具软件等。

​ 2020年3月 ARKit 3.5:新增场景几何体、即时增强现实、定位跟踪配置等。

​ 2020年9月 ARKit 4.0:新增深度API、定位锚、增加面部跟踪支持的设备。

5.2 ARKit对芯片的要求和系统版本

​ **ARKit 4.0:**运行iOS 14,配置了A12芯片的设备

​ **ARKit 3.5:**运行iPadOS 13.4,配置了激光雷达扫描仪的第四代iPad Pro

​ **ARKit 3.0:**运行iOS 13,人体抠图和人体识别需要A12芯片

​ **ARKit 2.0:**运行iOS 12,芯片要求A9以上

​ **ARKit 1.5:**运行iOS 11.3,芯片要求A9以上

​ **ARKit 1.0:**运行 iOS 11,芯片要求A9以上

​ 芯片数据:https://www.apple.com.cn/ipad/compare/

5.3 ARKit支持iPad

​ ARKit 1和ARKit 2需要设备是A9、A10、A11芯片,ARKit 3的人体抠图和人体识别需要A12芯片。

1、12.9英寸iPad Pro

​ 第三代 A12X

​ 第二代 A10X

​ 第一代 A9X

2、11英寸iPad Pro

​ A12X

3、9.7英寸iPad Pro

​ 只销售了3个月,Apple官网未显示该款产品。

4、iPad Air

​ 第三代 10.5英寸 A12

​ 第二代 9.7英寸 A8X 不支持ARKit

​ 第一代 9.7英寸 A7 不支持ARKit

5、9.7英寸 iPad

​ 第六代 A10

​ 第五代 A9

6、7.9英寸 iPad mini

​ 第五代 A12

​ 第四代 A8 不支持ARKit

​ 第三代 A7 不支持ARKit

​ 第二代 A7 不支持ARKit

5.4 ARKit对摄像头类型的要求

ARWorldTrackingConfiguration

​ 世界跟踪配置(6DOF),只能使用后置摄像头,需要iOS 11以上。图像识别和垂直平面识别,需要iOS 11.3以上。

ARFaceTrackingConfiguration

​ 人脸跟踪配置,只能使用前置的TrueDepth摄像头,需要iOS 11以上。

AROrientationTrackingConfiguration

​ 方向跟踪配置(3DOF),只能使用后置摄像头,需要iOS 11以上。

ARImageTrackingConfiguration

​ 图像跟踪配置,只能使用后置摄像头,需要iOS 12以上。

ARImageTrackingConfiguration与ARWorldTrackingConfiguration的区别如下:

​ 1、ARImageTrackingConfiguration当图像快速移动时,也能跟踪上,而ARWorldTrackingConfiguration当图像缓慢的移动,才能跟踪上。

​ 2、ARWorldTrackingConfiguration依赖IMU(惯性测量单元),当周围环境发生运动时,无法正常工作。比如用户在交通工具上,AR显示的虚拟物体会飘走。

​ 3、当使用ARImageTrackingConfiguration时,无法使用ARWorldTrackingConfiguration,也就无法使用ARWorldTrackingConfiguration的水平面识别。

ARObjectScanningConfiguration

​ 对象扫描配置,只能使用后置摄像头,需要iOS 12以上。

ARBodyTrackingConfiguration

​ 人体跟踪配置,只能使用后置摄像头,需要iOS 13以上和A12芯片。

配置要求: https://developer.apple.com/documentation/arkit/arconfiguration

6. ARCore设备支持列表

6.1 Android支持使用ARCore设备列表

ARCore 要求:

​ 运行在搭载 Google Play 应用商店的设备上

​ Android 7.0 或更高版本 (如下所示,个别型号需要更高的版本)

​ 若你的应用为AR可选应用, 请修改 minSdkVersion 声明: ‘minSdkVersion14` (API Level 14, Ice Cream Sandwich, version 4.0.1 - 4.0.2)

​ 若你的应用为AR必备应用, 请修改 minSdkVersion 声明: minSdkVersion24(API Level 24, Nougat, version 7.0)

Android(中国)

​ 在中国,设备不搭载 Google 应用商店。 您可以从以下应用商店中选择其一来安装 ARCore:

​ Xiaomi app store (小米应用商店)
​ Huawei Apps Gallery (华为应用商店)
​ OPPO APP Market (OPPO 软件商店)
​ Samsung Galaxy Apps (三星应用市场)
​ V-Appstore (vivo应用商店)

​ 在中国区域,ARCore 支持以下设备:

​ 谷歌官方查看支持ARCore设备地址:https://developers.google.cn/ar/devices Unity-AR 简介_第7张图片

7. 检查设备支持AR功能

​ 配置相关 : https://zhuanlan.zhihu.com/p/330235815

​ 返回状态:

namespace UnityEngine.XR.ARFoundation
{
    /// 
    /// Represents the current state of the AR system.
    /// 
    public enum ARSessionState
    {
        /// 
        /// The AR system has not been initialized. Availability is unknown.
        /// .
        /// 		AR系统尚未初始化,可用性未知。
        None,

        /// 
        /// AR is not supported on the current device.
        /// 		当前设备不支持AR。
        Unsupported,

        /// 
        /// The system is checking for the availability of AR.
        /// .
        /// 		系统正在检查当前设备上AR的可用性。
        CheckingAvailability,

        /// 
        /// AR is supported, but requires an additional install.
        /// .
        /// 		当前设备支持AR,但是AR支持需要安装其他软件。
        NeedsInstall,		

        /// 
        /// AR software is being installed. .
        /// 		正在安装AR软件。
        Installing,

        /// 
        /// AR is supported and ready.
        /// 		AR已支持并准备就绪。
        Ready,

        /// 
        /// An AR session is initializing (i.e., starting up). This usually means AR is working
        /// but has not yet gathered enough information about the environment.
        /// 		AR会话正在初始化(即正在启动)。这通常意味着AR正在运行,但尚未收集到足够的有关环境的信,
        SessionInitializing,

        /// 
        /// An AR session is running and is tracking (i.e., the device is able to determine its
        /// position and orientation in the world).
        /// 		AR会话正在运行并且正在跟踪(也就是说,设备能够确定其在世界上的位置和方向)。
        SessionTracking
    }
}

远程调试

​ 三方插件: https://zhuanlan.zhihu.com/p/335236675

vuforia

1. 官网链接 :

https://developer.vuforia.com/

2. 简介

​ 目前世界上主流的AR SDK提供厂商,国外的主要是Vuforia、Metaio,国内的主要是EasyAR。其中Metaio在2015年5月已被Apple重金收购,之后就没有再对外公开过SDK,经过两年的封闭开发,Apple已经打造出了强大的ARKit,能够基于庞大的iOS和iPad设备生产出各种惊艳的AR产品。Vuforia也在2015年11月被PTC公司重金收购,但是后续一直在更新并提供SDK,因此在ARKit普及之前,Vuforia一直是开发者最青睐的AR SDK,众多的功能以及高质量的识别技术,良好的跨平台性和兼容性,兼容目前主流的PC,Android,IOS平台.使得Vuforia早已深入人心,是学习AR应用开发的必备技能。

3. Vuforia主要由三大部分组成:

1. Vuforia引擎

​ 这个引擎是一个静态链接库,作为客户端封装进最终的App中,用来进行最主要的识别功能,支持iOS、Android和UWP,并且根据不同的平台开放出了不同的SDK,可以根据需要从Android Studio、Xcode、Visual Studio以及Unity中任选一种作为开发工具。本系列是以Unity为开发工具,因为Unity本来就是个游戏引擎,对3D模型的导入以及控制非常方便,非常适合开发AR程序;

2. 一系列工具。

​ Vuforia提供了一系列的工具,用来创建对象、管理对象数据库以及管理程序licenses。Target Manager是一个网页程序,开发者在里面创建和管理对象数据库,并且可以生成一系列的识别图像,用在AR设备以及云端上。Licenses Manager用来创建和管理程序licenses,因为每一个AR程序都有一个唯一的licenses。Vuforia Object Scanner是Vuforia近段时间新出的工具,用来进行十分黑科技的功能–实物扫描,但是很遗憾目前只支持某些Android设备。

3. 云识别服务。

​ 当你的AR程序需要识别数量很庞大的图片对象,或者你的对象数据库需要经常更新,可以选择Vuforia的云识别服务。Vuforia Web Services可以让你很轻松的管理数量庞大的对象数据库,并且可以建立自动的工作流。

4. 主要支持类型

​ 4.1 Image Targets(图像目标)

​ 4.2 Cylinder Targets(圆柱体目标)

​ 识别形状类似于圆柱形的图片,可以将这些图片贴到一些圆柱形物体上比如瓶子、杯子等等,进行识别。

​ 4.3 Multi Targets(多目标)

​ 多对象识别,可以同时识别多张Image Targets,并且可以把它们和几何立体物体结合起来,比如一个纸盒子,或者任意形状的平面。

​ 4.4 Model Targets(模型目标)

​ 通俗点说就是3D物体的识别,也就是形状的识别。这个技术相对于传统的印刷媒体、产品包装的Image Targets识别来说,它能够更详细直观地展示产品的功能和设计。展示的内容可以准确地被附加到物体上,例如汽车、家电以及工业设备和机械设备。这个技术有望取代传统的用户手册和技术服务指导。

​ 4.5 VuMark

​ 这是Vuforia自己研发的一种新型条形码,并且被称为下一代条形码,你能够自己随意设计这种条形码的样式,并且在其中融入相关的数据信息。

​ 4.6 Cloud Rec(云识别)

​ 当你的AR程序需要识别数量很庞大的图片对象,或者你的对象数据库需要经常更新,可以选择Vuforia的云识别服务。Vuforia Web Services可以让你很轻松的管理数量庞大的对象数据库,并且可以建立自动的工作流。

​ 4.7 Ground Plane

​ 随着ARKit和ARCore的发布,这个功能大家应该比较能够理解,下一个版本的Vuforia也将具有类似功能。使用Vuforia,你也可以将增强显示的内容放置到一些平面上,例如地板、桌面以及地面等,不管是在室内还是室外均可。

​ 4.8 User Defined Targets(用户自定义目标)

​ 用户从画面选择元素作为自定义目标,进行扫描与追踪

​ 4.9 Virtual Buttons(虚拟按钮)

​ 虚拟按钮是图像上的目标,用户可以在现实世界中触摸,以触发交互动作。

5. 三种不同类型Database的比较

​ Vuforia提供了三种类型的Database,分别是Device、VuMark和Cloud。这三种类型都各有自己的优势,在开发产品时需要根据需求来选择不同的Database:

5.1 Device Database:

​ 包含了安装在设备本地的图片以及3D模型对象的数据库,可以开发Image Target(图片识别)、Multi Targets(多对象识别)、Cylinder Targets(圆柱图像识别)以及Object Target(3D模型识别)。当你的产品需要最快速的图像识别,而且图片对象小于1000张,并且数据库中的对象不会经常更新,那么Device Database就是最好的选择。如果需要开发识别真实3D物体识别的产品,那就只能选择Device类型的。

5.2 Cloud Database:

​ 包含了存储于网络云服务器上的对象的数据库,需要通过网络进行获取。Cloud类型的数据库可以包含数量百万级别的对象,因此当识别对象超过1000个,而且对象需要经常进行更新时,Cloud Database是最好的选择。需要注意的是,Cloud Database只支持单一的图像识别,并不支持Multi target和Cylinder Target。因为是通过网络识别,因此采用Cloud进行识别的话需要根据网络情况花费一定时间。

5.3 VuMark:

​ 这是Vuforia自家研发的条形码,被誉为下一代条形码。和目前市面上通用的条形码不一样的是,VuMark的外观可以完全自主定制,只要符合VuMark的相关规范就行,而且VuMark中还能包含诸如字符串之类的数据信息,非常适合于企业级产品的开发。

5.4 下面这张表是关于Device和Cloud类型的对比:

Unity-AR 简介_第8张图片

6. 工程配置参考链接

​ 配置相关: https://www.cnblogs.com/mrmocha/p/9737448.html

​ 教程相关: https://www.jianshu.com/p/a3640e8837b5

EasyAR

1. 官网链接 :

https://www.easyar.cn/

2. 简介

​ EasyAR Sense Unity Plugin是一个建立在EasyAR Sense C# API之上的非常薄的封装,用于在Unity中暴露EasyAR Sense的功能。建议阅读 [EasyAR Sense 文档](https://help.easyar.cn/EasyAR Sense/v4_4/) 来理解EasyAR Sense是如何工作的。

​ 插件的发布包内包含了EasyAR Sense的库文件,因此在使用插件的时候不需要再使用独立的EasyAR Sense。

​ 插件中的EasyAR Sense库文件总是与同版本的EasyAR Sense的文件相同。如果你在尝试让插件运行在不同版本的EasyAR Sense上,必须保证csapi与库文件版本一致。

3. 插件使用说明

​ https://help.easyar.cn/EasyAR%20Sense%20Unity%20Plugin/v4_4/GettingStarted/PluginIntroduction.html

4. 平台支持

4.1 unity 兼容性

​ EasyAR Sense Unity Plugin需要使用 Unity 2019.4 或更高版本。

Unity > 2019.4 的兼容性

通常来说, EasyAR Sense不依赖很多变化的Unity API,所以如果Unity发布了新版本,EasyAR Sense Unity Plugin一般都可以正常使用。

Unity 2020.2 或更高版本 删除了iOS设备的OpenGLES支持,在这些版本中,视频录制功能将无法在iOS设备上使用。

Unity < 2019.4 的兼容性

​ · 为了提供更好的插件包体验以及支持最新的Unity XR工作流,我们在持续迁移我们的资产文件和脚本到 Unity 2019.4。这会逐渐打破对老版本Unity的兼容性。如果你由于某些原因仍就在使用老版本的Unity,可以尝试从 tgz 包中解压文件,放在工程的 Assets 目录,然后解决使用过程中出现的错误。对于这种用法我们不会提供官方支持,但有一些建议可以参考:

Unity 2019.3: 看上去插件可以在这个版本的Unity上正常工作,因为Unity 2019.3 和 2019.4的差异有限。这个兼容性并不是在设计中的,新的版本可能无法正常工作。

Unity 2019.2: 看上去插件可以在这个版本的Unity上正常工作,你可能需要手动修改package manifest,以添加tarball到工程中。这个兼容性并不是在设计中的,新的版本可能无法正常工作。在Windows上,由于Unity对路径长度限制的不当处理,插件的样例可能无法正常导入,你可以通过文件系统直接复制样例文件到 Assets 文件夹中。

Unity 2019.1: 这个版本的Unity Package Manager UI看起来并不能很好的支持tgz文件。你可以尝试embed插件包,如果这样也不能使用,打破包的封装,将文件直接解压到 Assets 文件夹中。

Unity 2018.4: 这个版本的Unity Package Manager UI不支持sample。并且由于插件使用 Unity 2019.4打包,一些重要文件的 meta文件无法正常工作。你需要打破package封装,将文件直接解压到 Assets 文件夹中。在重新构建meta文件后,可能可以让大部分功能正常工作,但这并未经过测试。

Unity 2017 或 Unity 5: 在这些版本中不存在Unity Package Manager。并且一些兼容这些版本的代码路径已经被删除。你可能需要花更大的力气才能使插件在这些版本中正常使用。

4.2 关于 Android arm64-v8a

​ Unity使用的mono脚本后台不支持Android arm64-v8a。如果需要使用应开启IL2CPP。

4.3 关于 iOS armv7

​ EasyAR Sense 从3.0版本开始终止了对iOS armv7的支持。在库文件中存在空的代码层以确保 XCode 工程始终可以构建,但如果编译时只选择了armv7运行后功能将无法使用。

4.4 .NET API 兼容性

​ EasyAR Sense Unity Plugin兼容 .NET Standard 2.0 API

4.5 Graphics API

​ 从EasyAR Sense 3.0开始,EasyAR Sense Unity Plugin 直接使用Unity的渲染管线,所有Unity中可以使用的图形API都可以天然被支持。

特例:由于EasyAR Sense的内部实现,录屏功能将只能在某些特定条件下工作,即在Android上Graphics API是OpenGLES2或OpenGLES3的情况以及在iOS上Graphics API是OpenGLES2的情况。

4.6 Scriptable Render Pipeline

​ EasyAR Sense Unity Plugin 支持 Universal Render Pipeline (URP) 7.0.0 或更新版本。

​ EasyAR Sense Unity Plugin 不支持 High Definition Render Pipeline (HDRP)。

4.7 Unity AR Foundation 兼容性

​ EasyAR Sense Unity Plugin 支持 AR Foundation 4.0.8 或更新版本。

4.8 华为 AR Engine 兼容性

​ EasyAR Sense Unity Plugin 支持官方的 Huawei AR Engine Unity SDK 2.11.0,其发布文件是 arenginesdk-tool-2.11.0.2.zip

​ 华为目前不再维护 AR Engine 的 Unity SDK,因此我们并不确定是否更新版本的 AR Engine 可以使用。同时,由于 Huawei AR Engine Unity SDK 使用了一些废弃的 Unity API,它不能在 Unity 2020.1 或更新版本上使用。

​ EasyAR Sense Unity Plugin 不支持没有官方Unity SDK的华为 AR Engine。

5. 使用教程

​ https://help.easyar.cn/EasyAR%20Sense%20Unity%20Plugin/v4_4/Guides/Guides.html

6. aip参考手册

​ https://help.easyar.cn/EasyAR%20Sense%20Unity%20Plugin/v4_4/ApiReference/ApiReference.html

3. 功能演示 (官网图片)

稀疏空间地图

稠密空间地图

运动跟踪

表面跟踪

3D物体跟踪

平面图像跟踪

录屏

sdk对比

支持功能 ARFoundation ARCore ARKit vuforia EasyAR
依赖项 ARCore/ARKit Android 7 ip6以上 部分依赖系统
费用 免费 免费 免费 收费/免费带水印 收费/免费带水印
垂直平面检测 ?
水平平面检测
特征点检测 -
光照估计 - √ + Color Temperature - -
射线测试(Hit Testing,对特征点与平面的射线碰撞测试)
图像跟踪
3D物体检测与跟踪 -
环境光探头(Environment Probes) - - -
世界地图(World maps) - -
人脸跟踪(识别、姿态、网格和形状混合) √(iPhoneX 及更高型号A12仿生芯片) - -
云锚点(Cloud Anchors) - -
远程调试(Editor Remoting) 开发中 √-Instant Preview √ -ARKit Remote
模拟器(Editor Simulation) - -
LWRP支持(支持使用ShaderGraph) 开发中 开发中
摄像机图像API -
人体动作捕捉(Motion capture) - √(iPhoneX 及更高型号) - -
人形遮挡(People occlusion) - √(iPhoneX 及更高型号) -
多人脸检测 - √(iPhoneX 及更高型号) - -
多人协作(Collaborative session) - √(iPhoneX 及更高型号) - -
多图像识别 √(iPhoneX 及更高型号)
VuMark(Vuforia自己研发的一种新型条形码) - - - -
虚拟按钮 - - - -
空间地图 - - - -

unity插件

录制脸部动画与制作摄像头运镜

教程地址: https://learn.u3d.cn/tutorial/how-to-use-face-capture#

运行效果

https://zyb-shizi-app-1253445850.cos.ap-beijing.myqcloud.com/pinyin/md_res/ar/QQ20211231-161740-HD.mp4

扩展阅读

AR的一些基本知识: https://zhuanlan.zhihu.com/p/29217512

参考链接:

  1. https://www.zhihu.com/column/c_1300416491410337792
  2. https://www.jianshu.com/p/d21af1bc387c
  3. https://www.jianshu.com/p/3337bca01a93?from=singlemessage

Unity-AR 简介

现有Unity AR Sdk

  1. ARKit : 苹果推出的AR开发平台

  2. ARCore : Google 推出的增强现实 SDK

  3. ARFoundation : ARFoundation是ARKit XR插件和ARCore XR插件 的集合

  4. vuforia : 高通推出的针对移动设备扩增实境应用的软件开发工具包

  5. EasyAR : 国内 上海视辰信息 增强现实(AR)互动营销技术和解决方案

ARFoundation

1. 简介

​ 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的特定功能集成需要时间)。

2. 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的关系如下图所示:
Unity-AR 简介_第9张图片

3. AR Foundation历史事件

​ 2018年10月Unity发布AR Foundation 1.0版本,支持平面追踪、特征点云检测、参考点/锚点、设备追踪、光照估计、射线碰撞。

​ 2019年5月,AR Foundation 2.1 支持图像追踪、物体追踪、面部追踪、环境探针。

​ 2019年6月,AR Foundation 3.0 支持 ARKit 3.0,新增动作捕捉、人物遮挡、多人协作等功能。

​ 2019年9月[MOU1] ,AR Foundation 支持 Magic Leap 以及 HoloLens 1 和 2 。

​ 2019年11月,SenseAR正式集成进了Unity中国增强版2018.4.11C版本中。

4. 专业术语

​ 设备跟踪:跟踪设备在物理空间中的位置和方向。

​ 平面检测:检测水平和垂直表面。

​ 点云:世界坐标空间中的点的集合。Unity-AR 简介_第10张图片

​ 锚点:设备跟踪的任意位置和方向。

​ 光线估算:估算物理空间中的平均色温和亮度。Unity-AR 简介_第11张图片

​ 环境探针:一种用于生成表示物理环境特定区域的立方体贴图的方法。视频链接: https://live.csdn.net/v/embed/163218

​ 人脸跟踪:检测和跟踪人脸。

​ 2D图像跟踪:检测和跟踪2D图像。

​ 3D对象跟踪:检测3D对象。Unity-AR 简介_第12张图片

​ 网格划分:生成与物理空间相对应的三角形网格划分。

​ 身体追踪:在物理空间中识别出的人类的2D和3D表示。Unity-AR 简介_第13张图片

​ 多人协作:在共享的AR体验中跟踪其他设备的位置和方向。

​ 人体分割和遮挡:将距离现实世界中的对象的距离应用于渲染的3D内容,从而实现物理对象与虚拟对象的逼真的融合。https://www.bilibili.com/video/av455309216/

​ 射线广播:查询物理环境中检测到的平面和特征点。

​ 直通视频:优化了将移动摄像机图像渲染到触摸屏上作为AR内容的背景。

​ 会话管理:启用或禁用AR功能时自动对平台级配置进行操作。

​ 遮挡:在真实场景中的位置实现虚拟物体遮挡 视频资源: https://v.qq.com/x/page/g3104nljtqb.html

Unity-AR 简介_第14张图片

5.ARKit 设备支持情况

5.1 ARKit版本历史

​ 2017年9月 ARKit 1.0:支持环境光照估测、用户设置锚点、追踪状态更改、AR会话中断和恢复的事件通知等。

​ 2018年3月 ARKit 1.5: 新增垂直平面识别、图像识别、图像分辨率提升50%等。

​ 2018年9月 ARKit 2.0:新增多个玩家联机、图像跟踪、3D对象识别、usdz格式文件和测距仪APP等。

​ 2019年9月 ARKit 3.0:新增人体轮廓抠图、人体四肢识别、原型化和制作AR内容的Reality Composer工具软件等。

​ 2020年3月 ARKit 3.5:新增场景几何体、即时增强现实、定位跟踪配置等。

​ 2020年9月 ARKit 4.0:新增深度API、定位锚、增加面部跟踪支持的设备。

5.2 ARKit对芯片的要求和系统版本

​ **ARKit 4.0:**运行iOS 14,配置了A12芯片的设备

​ **ARKit 3.5:**运行iPadOS 13.4,配置了激光雷达扫描仪的第四代iPad Pro

​ **ARKit 3.0:**运行iOS 13,人体抠图和人体识别需要A12芯片

​ **ARKit 2.0:**运行iOS 12,芯片要求A9以上

​ **ARKit 1.5:**运行iOS 11.3,芯片要求A9以上

​ **ARKit 1.0:**运行 iOS 11,芯片要求A9以上

​ 芯片数据:https://www.apple.com.cn/ipad/compare/

5.3 ARKit支持iPad

​ ARKit 1和ARKit 2需要设备是A9、A10、A11芯片,ARKit 3的人体抠图和人体识别需要A12芯片。

1、12.9英寸iPad Pro

​ 第三代 A12X

​ 第二代 A10X

​ 第一代 A9X

2、11英寸iPad Pro

​ A12X

3、9.7英寸iPad Pro

​ 只销售了3个月,Apple官网未显示该款产品。

4、iPad Air

​ 第三代 10.5英寸 A12

​ 第二代 9.7英寸 A8X 不支持ARKit

​ 第一代 9.7英寸 A7 不支持ARKit

5、9.7英寸 iPad

​ 第六代 A10

​ 第五代 A9

6、7.9英寸 iPad mini

​ 第五代 A12

​ 第四代 A8 不支持ARKit

​ 第三代 A7 不支持ARKit

​ 第二代 A7 不支持ARKit

5.4 ARKit对摄像头类型的要求

ARWorldTrackingConfiguration

​ 世界跟踪配置(6DOF),只能使用后置摄像头,需要iOS 11以上。图像识别和垂直平面识别,需要iOS 11.3以上。

ARFaceTrackingConfiguration

​ 人脸跟踪配置,只能使用前置的TrueDepth摄像头,需要iOS 11以上。

AROrientationTrackingConfiguration

​ 方向跟踪配置(3DOF),只能使用后置摄像头,需要iOS 11以上。

ARImageTrackingConfiguration

​ 图像跟踪配置,只能使用后置摄像头,需要iOS 12以上。

ARImageTrackingConfiguration与ARWorldTrackingConfiguration的区别如下:

​ 1、ARImageTrackingConfiguration当图像快速移动时,也能跟踪上,而ARWorldTrackingConfiguration当图像缓慢的移动,才能跟踪上。

​ 2、ARWorldTrackingConfiguration依赖IMU(惯性测量单元),当周围环境发生运动时,无法正常工作。比如用户在交通工具上,AR显示的虚拟物体会飘走。

​ 3、当使用ARImageTrackingConfiguration时,无法使用ARWorldTrackingConfiguration,也就无法使用ARWorldTrackingConfiguration的水平面识别。

ARObjectScanningConfiguration

​ 对象扫描配置,只能使用后置摄像头,需要iOS 12以上。

ARBodyTrackingConfiguration

​ 人体跟踪配置,只能使用后置摄像头,需要iOS 13以上和A12芯片。

配置要求: https://developer.apple.com/documentation/arkit/arconfiguration

6. ARCore设备支持列表

6.1 Android支持使用ARCore设备列表

ARCore 要求:

​ 运行在搭载 Google Play 应用商店的设备上

​ Android 7.0 或更高版本 (如下所示,个别型号需要更高的版本)

​ 若你的应用为AR可选应用, 请修改 minSdkVersion 声明: ‘minSdkVersion14` (API Level 14, Ice Cream Sandwich, version 4.0.1 - 4.0.2)

​ 若你的应用为AR必备应用, 请修改 minSdkVersion 声明: minSdkVersion24(API Level 24, Nougat, version 7.0)

Android(中国)

​ 在中国,设备不搭载 Google 应用商店。 您可以从以下应用商店中选择其一来安装 ARCore:

​ Xiaomi app store (小米应用商店)
​ Huawei Apps Gallery (华为应用商店)
​ OPPO APP Market (OPPO 软件商店)
​ Samsung Galaxy Apps (三星应用市场)
​ V-Appstore (vivo应用商店)

​ 在中国区域,ARCore 支持以下设备:

​ 谷歌官方查看支持ARCore设备地址:https://developers.google.cn/ar/devices Unity-AR 简介_第15张图片

7. 检查设备支持AR功能

​ 配置相关 : https://zhuanlan.zhihu.com/p/330235815

​ 返回状态:

namespace UnityEngine.XR.ARFoundation
{
    /// 
    /// Represents the current state of the AR system.
    /// 
    public enum ARSessionState
    {
        /// 
        /// The AR system has not been initialized. Availability is unknown.
        /// .
        /// 		AR系统尚未初始化,可用性未知。
        None,

        /// 
        /// AR is not supported on the current device.
        /// 		当前设备不支持AR。
        Unsupported,

        /// 
        /// The system is checking for the availability of AR.
        /// .
        /// 		系统正在检查当前设备上AR的可用性。
        CheckingAvailability,

        /// 
        /// AR is supported, but requires an additional install.
        /// .
        /// 		当前设备支持AR,但是AR支持需要安装其他软件。
        NeedsInstall,		

        /// 
        /// AR software is being installed. .
        /// 		正在安装AR软件。
        Installing,

        /// 
        /// AR is supported and ready.
        /// 		AR已支持并准备就绪。
        Ready,

        /// 
        /// An AR session is initializing (i.e., starting up). This usually means AR is working
        /// but has not yet gathered enough information about the environment.
        /// 		AR会话正在初始化(即正在启动)。这通常意味着AR正在运行,但尚未收集到足够的有关环境的信,
        SessionInitializing,

        /// 
        /// An AR session is running and is tracking (i.e., the device is able to determine its
        /// position and orientation in the world).
        /// 		AR会话正在运行并且正在跟踪(也就是说,设备能够确定其在世界上的位置和方向)。
        SessionTracking
    }
}

远程调试

​ 三方插件: https://zhuanlan.zhihu.com/p/335236675

vuforia

1. 官网链接 :

https://developer.vuforia.com/

2. 简介

​ 目前世界上主流的AR SDK提供厂商,国外的主要是Vuforia、Metaio,国内的主要是EasyAR。其中Metaio在2015年5月已被Apple重金收购,之后就没有再对外公开过SDK,经过两年的封闭开发,Apple已经打造出了强大的ARKit,能够基于庞大的iOS和iPad设备生产出各种惊艳的AR产品。Vuforia也在2015年11月被PTC公司重金收购,但是后续一直在更新并提供SDK,因此在ARKit普及之前,Vuforia一直是开发者最青睐的AR SDK,众多的功能以及高质量的识别技术,良好的跨平台性和兼容性,兼容目前主流的PC,Android,IOS平台.使得Vuforia早已深入人心,是学习AR应用开发的必备技能。

3. Vuforia主要由三大部分组成:

1. Vuforia引擎

​ 这个引擎是一个静态链接库,作为客户端封装进最终的App中,用来进行最主要的识别功能,支持iOS、Android和UWP,并且根据不同的平台开放出了不同的SDK,可以根据需要从Android Studio、Xcode、Visual Studio以及Unity中任选一种作为开发工具。本系列是以Unity为开发工具,因为Unity本来就是个游戏引擎,对3D模型的导入以及控制非常方便,非常适合开发AR程序;

2. 一系列工具。

​ Vuforia提供了一系列的工具,用来创建对象、管理对象数据库以及管理程序licenses。Target Manager是一个网页程序,开发者在里面创建和管理对象数据库,并且可以生成一系列的识别图像,用在AR设备以及云端上。Licenses Manager用来创建和管理程序licenses,因为每一个AR程序都有一个唯一的licenses。Vuforia Object Scanner是Vuforia近段时间新出的工具,用来进行十分黑科技的功能–实物扫描,但是很遗憾目前只支持某些Android设备。

3. 云识别服务。

​ 当你的AR程序需要识别数量很庞大的图片对象,或者你的对象数据库需要经常更新,可以选择Vuforia的云识别服务。Vuforia Web Services可以让你很轻松的管理数量庞大的对象数据库,并且可以建立自动的工作流。

4. 主要支持类型

​ 4.1 Image Targets(图像目标)

​ 4.2 Cylinder Targets(圆柱体目标)

​ 识别形状类似于圆柱形的图片,可以将这些图片贴到一些圆柱形物体上比如瓶子、杯子等等,进行识别。

​ 4.3 Multi Targets(多目标)

​ 多对象识别,可以同时识别多张Image Targets,并且可以把它们和几何立体物体结合起来,比如一个纸盒子,或者任意形状的平面。

​ 4.4 Model Targets(模型目标)

​ 通俗点说就是3D物体的识别,也就是形状的识别。这个技术相对于传统的印刷媒体、产品包装的Image Targets识别来说,它能够更详细直观地展示产品的功能和设计。展示的内容可以准确地被附加到物体上,例如汽车、家电以及工业设备和机械设备。这个技术有望取代传统的用户手册和技术服务指导。

​ 4.5 VuMark

​ 这是Vuforia自己研发的一种新型条形码,并且被称为下一代条形码,你能够自己随意设计这种条形码的样式,并且在其中融入相关的数据信息。

​ 4.6 Cloud Rec(云识别)

​ 当你的AR程序需要识别数量很庞大的图片对象,或者你的对象数据库需要经常更新,可以选择Vuforia的云识别服务。Vuforia Web Services可以让你很轻松的管理数量庞大的对象数据库,并且可以建立自动的工作流。

​ 4.7 Ground Plane

​ 随着ARKit和ARCore的发布,这个功能大家应该比较能够理解,下一个版本的Vuforia也将具有类似功能。使用Vuforia,你也可以将增强显示的内容放置到一些平面上,例如地板、桌面以及地面等,不管是在室内还是室外均可。

​ 4.8 User Defined Targets(用户自定义目标)

​ 用户从画面选择元素作为自定义目标,进行扫描与追踪

​ 4.9 Virtual Buttons(虚拟按钮)

​ 虚拟按钮是图像上的目标,用户可以在现实世界中触摸,以触发交互动作。

5. 三种不同类型Database的比较

​ Vuforia提供了三种类型的Database,分别是Device、VuMark和Cloud。这三种类型都各有自己的优势,在开发产品时需要根据需求来选择不同的Database:

5.1 Device Database:

​ 包含了安装在设备本地的图片以及3D模型对象的数据库,可以开发Image Target(图片识别)、Multi Targets(多对象识别)、Cylinder Targets(圆柱图像识别)以及Object Target(3D模型识别)。当你的产品需要最快速的图像识别,而且图片对象小于1000张,并且数据库中的对象不会经常更新,那么Device Database就是最好的选择。如果需要开发识别真实3D物体识别的产品,那就只能选择Device类型的。

5.2 Cloud Database:

​ 包含了存储于网络云服务器上的对象的数据库,需要通过网络进行获取。Cloud类型的数据库可以包含数量百万级别的对象,因此当识别对象超过1000个,而且对象需要经常进行更新时,Cloud Database是最好的选择。需要注意的是,Cloud Database只支持单一的图像识别,并不支持Multi target和Cylinder Target。因为是通过网络识别,因此采用Cloud进行识别的话需要根据网络情况花费一定时间。

5.3 VuMark:

​ 这是Vuforia自家研发的条形码,被誉为下一代条形码。和目前市面上通用的条形码不一样的是,VuMark的外观可以完全自主定制,只要符合VuMark的相关规范就行,而且VuMark中还能包含诸如字符串之类的数据信息,非常适合于企业级产品的开发。

5.4 下面这张表是关于Device和Cloud类型的对比:

Unity-AR 简介_第16张图片

6. 工程配置参考链接

​ 配置相关: https://www.cnblogs.com/mrmocha/p/9737448.html

​ 教程相关: https://www.jianshu.com/p/a3640e8837b5

EasyAR

1. 官网链接 :

https://www.easyar.cn/

2. 简介

​ EasyAR Sense Unity Plugin是一个建立在EasyAR Sense C# API之上的非常薄的封装,用于在Unity中暴露EasyAR Sense的功能。建议阅读 [EasyAR Sense 文档](https://help.easyar.cn/EasyAR Sense/v4_4/) 来理解EasyAR Sense是如何工作的。

​ 插件的发布包内包含了EasyAR Sense的库文件,因此在使用插件的时候不需要再使用独立的EasyAR Sense。

​ 插件中的EasyAR Sense库文件总是与同版本的EasyAR Sense的文件相同。如果你在尝试让插件运行在不同版本的EasyAR Sense上,必须保证csapi与库文件版本一致。

3. 插件使用说明

​ https://help.easyar.cn/EasyAR%20Sense%20Unity%20Plugin/v4_4/GettingStarted/PluginIntroduction.html

4. 平台支持

4.1 unity 兼容性

​ EasyAR Sense Unity Plugin需要使用 Unity 2019.4 或更高版本。

Unity > 2019.4 的兼容性

通常来说, EasyAR Sense不依赖很多变化的Unity API,所以如果Unity发布了新版本,EasyAR Sense Unity Plugin一般都可以正常使用。

Unity 2020.2 或更高版本 删除了iOS设备的OpenGLES支持,在这些版本中,视频录制功能将无法在iOS设备上使用。

Unity < 2019.4 的兼容性

​ · 为了提供更好的插件包体验以及支持最新的Unity XR工作流,我们在持续迁移我们的资产文件和脚本到 Unity 2019.4。这会逐渐打破对老版本Unity的兼容性。如果你由于某些原因仍就在使用老版本的Unity,可以尝试从 tgz 包中解压文件,放在工程的 Assets 目录,然后解决使用过程中出现的错误。对于这种用法我们不会提供官方支持,但有一些建议可以参考:

Unity 2019.3: 看上去插件可以在这个版本的Unity上正常工作,因为Unity 2019.3 和 2019.4的差异有限。这个兼容性并不是在设计中的,新的版本可能无法正常工作。

Unity 2019.2: 看上去插件可以在这个版本的Unity上正常工作,你可能需要手动修改package manifest,以添加tarball到工程中。这个兼容性并不是在设计中的,新的版本可能无法正常工作。在Windows上,由于Unity对路径长度限制的不当处理,插件的样例可能无法正常导入,你可以通过文件系统直接复制样例文件到 Assets 文件夹中。

Unity 2019.1: 这个版本的Unity Package Manager UI看起来并不能很好的支持tgz文件。你可以尝试embed插件包,如果这样也不能使用,打破包的封装,将文件直接解压到 Assets 文件夹中。

Unity 2018.4: 这个版本的Unity Package Manager UI不支持sample。并且由于插件使用 Unity 2019.4打包,一些重要文件的 meta文件无法正常工作。你需要打破package封装,将文件直接解压到 Assets 文件夹中。在重新构建meta文件后,可能可以让大部分功能正常工作,但这并未经过测试。

Unity 2017 或 Unity 5: 在这些版本中不存在Unity Package Manager。并且一些兼容这些版本的代码路径已经被删除。你可能需要花更大的力气才能使插件在这些版本中正常使用。

4.2 关于 Android arm64-v8a

​ Unity使用的mono脚本后台不支持Android arm64-v8a。如果需要使用应开启IL2CPP。

4.3 关于 iOS armv7

​ EasyAR Sense 从3.0版本开始终止了对iOS armv7的支持。在库文件中存在空的代码层以确保 XCode 工程始终可以构建,但如果编译时只选择了armv7运行后功能将无法使用。

4.4 .NET API 兼容性

​ EasyAR Sense Unity Plugin兼容 .NET Standard 2.0 API

4.5 Graphics API

​ 从EasyAR Sense 3.0开始,EasyAR Sense Unity Plugin 直接使用Unity的渲染管线,所有Unity中可以使用的图形API都可以天然被支持。

特例:由于EasyAR Sense的内部实现,录屏功能将只能在某些特定条件下工作,即在Android上Graphics API是OpenGLES2或OpenGLES3的情况以及在iOS上Graphics API是OpenGLES2的情况。

4.6 Scriptable Render Pipeline

​ EasyAR Sense Unity Plugin 支持 Universal Render Pipeline (URP) 7.0.0 或更新版本。

​ EasyAR Sense Unity Plugin 不支持 High Definition Render Pipeline (HDRP)。

4.7 Unity AR Foundation 兼容性

​ EasyAR Sense Unity Plugin 支持 AR Foundation 4.0.8 或更新版本。

4.8 华为 AR Engine 兼容性

​ EasyAR Sense Unity Plugin 支持官方的 Huawei AR Engine Unity SDK 2.11.0,其发布文件是 arenginesdk-tool-2.11.0.2.zip

​ 华为目前不再维护 AR Engine 的 Unity SDK,因此我们并不确定是否更新版本的 AR Engine 可以使用。同时,由于 Huawei AR Engine Unity SDK 使用了一些废弃的 Unity API,它不能在 Unity 2020.1 或更新版本上使用。

​ EasyAR Sense Unity Plugin 不支持没有官方Unity SDK的华为 AR Engine。

5. 使用教程

​ https://help.easyar.cn/EasyAR%20Sense%20Unity%20Plugin/v4_4/Guides/Guides.html

6. aip参考手册

​ https://help.easyar.cn/EasyAR%20Sense%20Unity%20Plugin/v4_4/ApiReference/ApiReference.html

3. 功能演示 (官网图片)

稀疏空间地图

稠密空间地图

运动跟踪

表面跟踪

3D物体跟踪

平面图像跟踪

录屏

sdk对比

支持功能 ARFoundation ARCore ARKit vuforia EasyAR
依赖项 ARCore/ARKit Android 7 ip6以上 部分依赖系统
费用 免费 免费 免费 收费/免费带水印 收费/免费带水印
垂直平面检测 ?
水平平面检测
特征点检测 -
光照估计 - √ + Color Temperature - -
射线测试(Hit Testing,对特征点与平面的射线碰撞测试)
图像跟踪
3D物体检测与跟踪 -
环境光探头(Environment Probes) - - -
世界地图(World maps) - -
人脸跟踪(识别、姿态、网格和形状混合) √(iPhoneX 及更高型号A12仿生芯片) - -
云锚点(Cloud Anchors) - -
远程调试(Editor Remoting) 开发中 √-Instant Preview √ -ARKit Remote
模拟器(Editor Simulation) - -
LWRP支持(支持使用ShaderGraph) 开发中 开发中
摄像机图像API -
人体动作捕捉(Motion capture) - √(iPhoneX 及更高型号) - -
人形遮挡(People occlusion) - √(iPhoneX 及更高型号) -
多人脸检测 - √(iPhoneX 及更高型号) - -
多人协作(Collaborative session) - √(iPhoneX 及更高型号) - -
多图像识别 √(iPhoneX 及更高型号)
VuMark(Vuforia自己研发的一种新型条形码) - - - -
虚拟按钮 - - - -
空间地图 - - - -

unity插件

录制脸部动画与制作摄像头运镜

教程地址: https://learn.u3d.cn/tutorial/how-to-use-face-capture#

运行效果

https://zyb-shizi-app-1253445850.cos.ap-beijing.myqcloud.com/pinyin/md_res/ar/QQ20211231-161740-HD.mp4

扩展阅读

AR的一些基本知识: https://zhuanlan.zhihu.com/p/29217512

参考链接:

  1. https://www.zhihu.com/column/c_1300416491410337792
  2. https://www.jianshu.com/p/d21af1bc387c
  3. https://www.jianshu.com/p/3337bca01a93?from=singlemessage

你可能感兴趣的:(unity,相关,ar,unity,游戏引擎)