大家新年好。本期开始,我会给大家带来UnityAR系列的文章。
先放一张最早用于民用娱乐的AR软件之一——任天堂3DS自带的AR卡片玩法。
关于AR的资料网上已经是俯拾即是。但鉴于这个新开的坑是想做成一个系列,为了严谨起见,本篇会给大家介绍AR的基础概念和用途,以及Unity中几个主要的AR方案。
在之后的文章,我们会通过一些具体的项目及官方示例,分别为大家介绍Unity中几种AR插件的主要功能及用法。
AR体验的基本需求,是在用户所处的现实世界空间与可视化建模内容的虚拟空间之间创建对应关系的能力。当应用程序显示虚拟内容与实时摄像头图像,用户会感受到现实的增强:产生虚拟内容是真实世界的一部分的感觉。
其将真实世界信息和虚拟世界信息“无缝”集成的新技术,是把原本在现实世界的一定时间空间范围内很难体验到的实体信息(视觉信息,声音,味道,触觉等),通过电脑等科学技术,模拟仿真后再叠加,将虚拟的信息应用到真实世界,被人类感官所感知,从而达到超越现实的感官体验。真实的环境和虚拟的物体实时地叠加到了同一个画面或空间同时存在。
AR技术,不仅展现了真实世界的信息,而且将虚拟的信息同时显示出来,两种信息相互补充、叠加。在视觉化的增强现实中,用户利用头盔显示器,把真实世界与电脑图形多重合成在一起,便可以看到真实的世界围绕着它。
AR技术包含了多媒体、三维建模、实时视频显示及控制、多传感器溶合、实时跟踪及注册、场景融合等新技术与新手段。增强现实提供了在一般情况下,不同于人类可以感知的信息。
主要特点
AR技术可广泛应用到军事、医疗、建筑、教育、工程、影视、娱乐等领域。
应用领域
AR技术不仅在与VR技术相类似的应用领域,诸如尖端武器、飞行器的研制与开发、数据模型的可视化、虚拟训练、娱乐与艺术等领域具有广泛的应用,而且由于其具有能够对真实环境进行增强显示输出的特性,在医疗研究与解剖训练、精密仪器制造和维修、军用飞机导航、工程设计和远程机器人控制等领域,具有比VR技术更加明显的优势。
工作原理
移动式增强现实系统的早期原型增强现实的基本理念是将图像、声音和其他感官增强功能实时添加到真实世界的环境中。听起来十分简单。而且,电视网络通过使用图像实现上述目的不是已经有数十年的历史了吗?的确是这样,但是电视网络所做的只是显示不能随着摄像机移动而进行调整的静态图像。增强现实远比电视广播中见到的任何技术都要先进,尽管增强现实的早期版本一开始是出现在通过电视播放的比赛和橄榄球比赛中,例如Racef/x和添加的第一次进攻线,它们都是由SporTVision创造的。这些系统只能显示从一个视角所能看到的图像。下一代增强现实系统将显示能从所有观看者的视角看到的图像。
在各类大学和高新技术企业中,增强现实还处于研发的初级阶段。最终,可能到这个十年结束的时候,我们将看到第一批大量投放市场的增强现实系统。有研究者将其称为“21世纪的随身听”。增强现实要努力实现的不仅是将图像实时添加到真实的环境中,而且还要更改这些图像以适应用户的头部及眼睛的转动,以便图像始终在用户视角范围内。下面是使增强现实系统正常工作所需的三个组件:
增强现实的开发人员的目标是将这三个组件集成到一个单元中,放置在用带子绑定的设备中,该设备能以无线方式将信息转播到类似于普通眼镜的显示器上。
设备及组件
如今国内外已经有很多厂商在研发AR技术而比较出色的,应当属于apple、google和微软和高通。
Google的glass和微软的HoloLens应该算是真正意义实现ar的设备,是当今最好的ar设备之二,据传,apple也在开发自己的ar眼睛设备。
组件方面,apple的arkit、google的arcore和高通的vuforia也将会是未来的潮流。
UnityAR
在unity中有数种ar插件,如apple的ARkit、google的 ARcore及高通vuforia等,这也是我们常用的三种UnityAR插件。
在Unity2018版本中,还集成了可跨平台的AR Foundation。
ARKit是苹果在2017年WWDC推出的AR开发平台,现在已更新至ARkit2。开发人员可以使用这套工具iPhone和iPad创建增强现实应用程序。
在unity中,可以通过Asset Store下载ARkit插件
1.平面寻找:使用稀疏点云提取和创建平面
PrefabsGeneratePlanes 和UnityARGeneratePlane.cs 可以生成平面。该脚本监听平面并检测更新,再为检测到的每个平面创建一个新平面的实例。
2.碰撞检测:针对点云和平面射线碰撞检测
ARKit SDK分析相机视图中的内容,并根据可识别的功能和估计的深度确定点数。碰撞结果按照与设备的距离进行排序。平面优先于feature point
3.光照估计:估计当前摄像机的环境光值,以便用真实世界的光照亮数字物体
ARKit SDK提供了对当前摄像机视图ambient light(环境光)的估计。通过将ARKit值在UnityARAmbient.cs中统一转换为更合适的强度来调整场景中单位光的亮度(通常为Directional Light)。这允许应用程序用真实世界的光来照亮场景中的对象。
1.ARCameraManager.cs :设置MainCamera的local position
在使用中不需要手动设置摄像机的位置,该脚本将自动设置摄像机的相应方向和位置
2.UnityARVideo.cs :从设备摄像机读取视频
确保将相机的清除颜色设置为alpha = 0
3.UnityARCameraNearFar.cs :更新Far和Near
ARCore是谷歌推出用来在Android上搭建增强现实应用程序的软件平台,类似苹果的ARKit。我们在里面使用了三项关键技术来整合虚拟内容和现实世界:
简单来说的话,ARCore 其实只做两件事:
在 apple的ARKit与google的ARCore两大AR平台出现之后,不少开发者陷入两难之中,毕竟要开发兼容两大平台的应用确实更费时费力。为了缓解这一问题, Unity为手机AR推出跨平台开发工具—— AR Foundation。
Unity表示,“我们一直站在手持式AR开发的前沿,我们从一开始就支持ARCore和ARKit。但借助AR Foundation及其利用的软件架构,我们现在可以为开发者提供一个支持ARCore,ARKit和未来平台核心功能的通用API。”
AR Foundation已经通过Package Manager集成至Unity,所以你可以轻松将其集成至你的新项目之中。Unity专注于为AR Foundation增加对新功能和平台的支持。同时,他们将继续支持特定于平台,开发者希望在现有项目中使用的插件。
AR Foundation的初始版本将为大多数AR应用的核心功能提供支持:
AR Foundation的目标是要提供一个独立于平台的脚本API与MonoBehaviours,方便开发者创建依赖于ARCore和ARKit共有核心功能的应用程序,让开发者只要进行一次开发工作,就能把应用程序部署到iOS和Android两种装置上,而不需要任何额外修改。但AR Foundation目前尚未支持ARKit和ARCore的所有功能,因此当开发者的应用程序相依于AR Foundation中尚未包含的特定功能,则还需单独使用特定的SDK。
Vuforia
Vuforia是与高通公司的合作产品,致力于虚拟现实的技术。VR和AR的结合在Android端和iOS端表现效果相当不错,并且可以通过终端自带的摄像头进行虚拟现实,同时支持VR和AR的交互工作,达到体验不输给传感器的效果。
Unity2017.3平台开始全面支持Vuforia 7。通过Unity编辑器,开发人员可以直接将各种各样的实物、环境与 3D 图像混合,从而开发出跨平台的AR应用
Vudoria也是当今AR行业使用较广的方案。
之后的文章中,我们将会通过一些案例,来介绍Vuforia及AR Foundation的用法。
文中部分定义来源于维基百科,部分图片来源于网络。
上一篇:AR营销的案例有哪些?