目录

Unity-AR-简介

目录

Unity-AR 简介

Unity-AR 简介

2024-04-26 ArFoundation 支持情况

现有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的关系如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/24f328ae24081a0f8cb6e588e6421ac6.png

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. 专业术语

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

​ 平面检测:检测水平和垂直表面。 https://i-blog.csdnimg.cn/blog_migrate/b39f3f7217d667553f27ab4220cf16e3.gif

​ 点云:世界坐标空间中的点的集合。 https://i-blog.csdnimg.cn/blog_migrate/93b788105016ffd16e3e2833ae9d35b6.png#pic_center

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

​ 光线估算:估算物理空间中的平均色温和亮度。 https://i-blog.csdnimg.cn/blog_migrate/ac4f463452538c477d223f86718e2349.jpeg#pic_center

​ 环境探针:一种用于生成表示物理环境特定区域的立方体贴图的方法。视频链接:

​ 人脸跟踪:检测和跟踪人脸。 https://i-blog.csdnimg.cn/blog_migrate/47735f27ee11765cafedaa32dcbf0c09.gif

​ 2D图像跟踪:检测和跟踪2D图像。 https://i-blog.csdnimg.cn/blog_migrate/dc48bdd7e0913a2875872b551da17424.jpeg#pic_center

​ 3D对象跟踪:检测3D对象。 https://i-blog.csdnimg.cn/blog_migrate/3688969e7affd1849bf6980e93eb127a.jpeg#pic_center

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

​ 身体追踪:在物理空间中识别出的人类的2D和3D表示。 https://i-blog.csdnimg.cn/blog_migrate/d66eb9106da37583d10f413d8c21b8bf.png

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

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

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

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

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

​ 遮挡:在真实场景中的位置实现虚拟物体遮挡 视频资源:

https://i-blog.csdnimg.cn/blog_migrate/0a1f643abd4e0218e6a864258964cd7c.png

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以上

​ 芯片数据:

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芯片。

配置要求

6. ARCore设备支持列表
6.1 Android支持使用ARCore设备列表

ARCore 要求:

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

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

​ 若你的应用为AR可选应用, 请修改 minSdkVersion 声明: ‘minSdkVersion 14` ( )

​ 若你的应用为AR必备应用, 请修改 minSdkVersion 声明: minSdkVersion24 ( )

Android(中国)

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

​ Xiaomi app store (小米应用商店)

​ Huawei Apps Gallery (华为应用商店)

​ OPPO APP Market (OPPO 软件商店)

​ Samsung Galaxy Apps (三星应用市场)

​ V-Appstore (vivo应用商店)

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

​ 谷歌官方查看支持ARCore设备地址: https://i-blog.csdnimg.cn/blog_migrate/96d5b5ab579c5b01abe77bd846ce1d46.png

7. 检查设备支持AR功能

​ 配置相关 :

​ 返回状态:

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

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

        /// <summary>
        /// The system is checking for the availability of AR.
        /// <see cref="ARSession.CheckAvailability"/>.
        /// </summary>		系统正在检查当前设备上AR的可用性。
        CheckingAvailability,

        /// <summary>
        /// AR is supported, but requires an additional install.
        /// <see cref="ARSession.Install"/>.
        /// </summary>		当前设备支持AR,但是AR支持需要安装其他软件。
        NeedsInstall,		

        /// <summary>
        /// AR software is being installed. <see cref="ARSession.Install"/>.
        /// </summary>		正在安装AR软件。
        Installing,

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

        /// <summary>
        /// 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.
        /// </summary>		AR会话正在初始化(即正在启动)。这通常意味着AR正在运行,但尚未收集到足够的有关环境的信,
        SessionInitializing,

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

​ 三方插件:

vuforia

1. 官网链接 :
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(图像目标)

https://i-blog.csdnimg.cn/blog_migrate/972b8963bfee4f26fdcc8748ccfa2015.gif

​ 4.2 Cylinder Targets(圆柱体目标)

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

https://i-blog.csdnimg.cn/blog_migrate/7a28bf52fa83c33fddbb0a1eb4ac8545.gif

​ 4.3 Multi Targets(多目标)

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

https://i-blog.csdnimg.cn/blog_migrate/2f7069749497b16397176e8ac2ee5cb9.gif

​ 4.4 Model Targets(模型目标)

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

https://i-blog.csdnimg.cn/blog_migrate/13a563ac28cb6b44ef8284600ae043e9.gif

​ 4.5 VuMark

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

https://i-blog.csdnimg.cn/blog_migrate/056d61e641ca7721c5d31cb78669b852.gif

​ 4.6 Cloud Rec(云识别)

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

​ 4.7 Ground Plane

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

https://i-blog.csdnimg.cn/blog_migrate/c494198a18cc791cd0b4dfd558b3ef35.gif

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

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

https://i-blog.csdnimg.cn/blog_migrate/0d8ade42005310379bd797d152109d24.gif

​ 4.9 Virtual Buttons(虚拟按钮)

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

https://i-blog.csdnimg.cn/blog_migrate/269924bf32ef84a997c565362db9b8f4.gif

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类型的对比:

https://i-blog.csdnimg.cn/blog_migrate/d2a4d9ba1c7e9a7055fd2772fdee83ac.png

6. 工程配置参考链接

​ 配置相关:

​ 教程相关:

EasyAR

1. 官网链接 :
2. 简介

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

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

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

3. 插件使用说明

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. 使用教程

6. aip参考手册

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

稀疏空间地图

https://i-blog.csdnimg.cn/blog_migrate/17a4e69a1adc635b4f4af7f1a5a9da33.gif

稠密空间地图

https://img-blog.csdnimg.cn/img_convert/184962437549ebeafa4b5108efb28714.gif

运动跟踪

https://i-blog.csdnimg.cn/blog_migrate/3d1a08108371f00617dfeff837510d11.gif

表面跟踪

https://i-blog.csdnimg.cn/blog_migrate/39d4095c2050d2d6c9ccce6f85981202.gif

3D物体跟踪

https://i-blog.csdnimg.cn/blog_migrate/cc50f1622201dd2374ede1fe28c9cf7e.gif

平面图像跟踪

https://i-blog.csdnimg.cn/blog_migrate/b3932ee66aefea2aaa42ddc2848898cf.gif

录屏

https://i-blog.csdnimg.cn/blog_migrate/8c2f6acd0d8980fb70a04b3174bc7e34.gif

sdk对比

支持功能ARFoundationARCoreARKitvuforiaEasyAR
依赖项ARCore/ARKitAndroid 7ip6以上部分依赖系统
费用免费免费免费收费/免费带水印收费/免费带水印
垂直平面检测?
水平平面检测
特征点检测-
光照估计-√ + 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插件

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

教程地址:

运行效果

扩展阅读

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的关系如下图所示:

https://i-blog.csdnimg.cn/blog_migrate/48eff1db7cca236cdfcbd4e47b0165c4.png

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. 专业术语

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

​ 平面检测:检测水平和垂直表面。 https://i-blog.csdnimg.cn/blog_migrate/b39f3f7217d667553f27ab4220cf16e3.gif

​ 点云:世界坐标空间中的点的集合。 https://i-blog.csdnimg.cn/blog_migrate/93b788105016ffd16e3e2833ae9d35b6.png#pic_center

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

​ 光线估算:估算物理空间中的平均色温和亮度。 https://i-blog.csdnimg.cn/blog_migrate/ac4f463452538c477d223f86718e2349.jpeg#pic_center

​ 环境探针:一种用于生成表示物理环境特定区域的立方体贴图的方法。视频链接:

​ 人脸跟踪:检测和跟踪人脸。 https://i-blog.csdnimg.cn/blog_migrate/47735f27ee11765cafedaa32dcbf0c09.gif

​ 2D图像跟踪:检测和跟踪2D图像。 https://i-blog.csdnimg.cn/blog_migrate/dc48bdd7e0913a2875872b551da17424.jpeg#pic_center

​ 3D对象跟踪:检测3D对象。 https://i-blog.csdnimg.cn/blog_migrate/3688969e7affd1849bf6980e93eb127a.jpeg#pic_center

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

​ 身体追踪:在物理空间中识别出的人类的2D和3D表示。 https://i-blog.csdnimg.cn/blog_migrate/e7ddd54e2b2a5374fde7d17daeb619a9.png

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

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

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

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

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

​ 遮挡:在真实场景中的位置实现虚拟物体遮挡 视频资源:

https://i-blog.csdnimg.cn/blog_migrate/9a30bba1931646b72fb563b68a853453.png

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以上

​ 芯片数据:

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芯片。

配置要求

6. ARCore设备支持列表
6.1 Android支持使用ARCore设备列表

ARCore 要求:

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

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

​ 若你的应用为AR可选应用, 请修改 minSdkVersion 声明: ‘minSdkVersion 14` ( )

​ 若你的应用为AR必备应用, 请修改 minSdkVersion 声明: minSdkVersion24 ( )

Android(中国)

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

​ Xiaomi app store (小米应用商店)

​ Huawei Apps Gallery (华为应用商店)

​ OPPO APP Market (OPPO 软件商店)

​ Samsung Galaxy Apps (三星应用市场)

​ V-Appstore (vivo应用商店)

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

​ 谷歌官方查看支持ARCore设备地址: https://i-blog.csdnimg.cn/blog_migrate/f26f857475134251c4a10ba1e54ddaea.png

7. 检查设备支持AR功能

​ 配置相关 :

​ 返回状态:

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

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

        /// <summary>
        /// The system is checking for the availability of AR.
        /// <see cref="ARSession.CheckAvailability"/>.
        /// </summary>		系统正在检查当前设备上AR的可用性。
        CheckingAvailability,

        /// <summary>
        /// AR is supported, but requires an additional install.
        /// <see cref="ARSession.Install"/>.
        /// </summary>		当前设备支持AR,但是AR支持需要安装其他软件。
        NeedsInstall,		

        /// <summary>
        /// AR software is being installed. <see cref="ARSession.Install"/>.
        /// </summary>		正在安装AR软件。
        Installing,

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

        /// <summary>
        /// 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.
        /// </summary>		AR会话正在初始化(即正在启动)。这通常意味着AR正在运行,但尚未收集到足够的有关环境的信,
        SessionInitializing,

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

​ 三方插件:

vuforia

1. 官网链接 :
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(图像目标)

https://i-blog.csdnimg.cn/blog_migrate/8bd8f08d1f1c5f67d9ced1717c873770.gif

​ 4.2 Cylinder Targets(圆柱体目标)

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

https://i-blog.csdnimg.cn/blog_migrate/049b312f0f9c236738010dcd19aad96b.gif

​ 4.3 Multi Targets(多目标)

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

https://i-blog.csdnimg.cn/blog_migrate/97b94ac40acba4af4e06cb9c5f05f17e.gif

​ 4.4 Model Targets(模型目标)

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

https://i-blog.csdnimg.cn/blog_migrate/05ed599ec9276ee176aadf183165b4b6.gif

​ 4.5 VuMark

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

https://i-blog.csdnimg.cn/blog_migrate/57365690da82ed155bbf3f023b3a23f2.gif

​ 4.6 Cloud Rec(云识别)

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

​ 4.7 Ground Plane

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

https://i-blog.csdnimg.cn/blog_migrate/97f939fbc3418ee43a51fc4cde331c03.gif

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

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

https://i-blog.csdnimg.cn/blog_migrate/8e498cd2ef0b0d512c653c26de6690f6.gif

​ 4.9 Virtual Buttons(虚拟按钮)

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

https://i-blog.csdnimg.cn/blog_migrate/f5e073a7b1cc2330a8e4390aefa839f8.gif

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类型的对比:

https://i-blog.csdnimg.cn/blog_migrate/970d18a1be3fe244ba3be2a74572638a.png

6. 工程配置参考链接

​ 配置相关:

​ 教程相关:

EasyAR

1. 官网链接 :
2. 简介

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

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

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

3. 插件使用说明

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. 使用教程

6. aip参考手册

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

稀疏空间地图

https://i-blog.csdnimg.cn/blog_migrate/a43d76f50c501c55e81c563eb95c1318.gif

稠密空间地图

https://img-blog.csdnimg.cn/img_convert/1c0826fe509a85fdade2f87074934c8d.gif

运动跟踪

https://i-blog.csdnimg.cn/blog_migrate/a0ba2dd9971d14f7a5718658bcc4e3bb.gif

表面跟踪

https://i-blog.csdnimg.cn/blog_migrate/4be1c64e4d3e50f459c4a1a1d57a96ef.gif

3D物体跟踪

https://i-blog.csdnimg.cn/blog_migrate/a2ef06031b41a5d0f69cebc90ca30514.gif

平面图像跟踪

https://i-blog.csdnimg.cn/blog_migrate/d180dcfb9ed1bae3e8e8c492b8559ecf.gif

录屏

https://i-blog.csdnimg.cn/blog_migrate/c8c18acfdacf3d5961de48c31fcb7903.gif

sdk对比

支持功能ARFoundationARCoreARKitvuforiaEasyAR
依赖项ARCore/ARKitAndroid 7ip6以上部分依赖系统
费用免费免费免费收费/免费带水印收费/免费带水印
垂直平面检测?
水平平面检测
特征点检测-
光照估计-√ + 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插件

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

教程地址:

运行效果

扩展阅读

AR的一些基本知识:

参考链接: