Unity+高通Vuforia SDK——AR
一、AR概念:
增强现实(Augmented Reality。简称AR)。是在虚拟现实的基础上发展起来的新技术,也被称之为混合现实。
是通过计算机系统提供的信息添加用户对现实世界感知的技术。将虚拟的信息应用到真实世界,并将计算机生成的虚拟物体、场景或系统提示信息叠加到真实场景中。从而实现对现实的增强。
二、工具:
在这里我们主要是用高通的Vuforia SDK来演示怎样在Unity下制作一个简单的AR的demo,Vuforia SDK是一套非常完整的能够直接调用的AR API。而假如想深入了解SDK内部的关于AR中图片识别以及跟踪的算法,我们须要从Open CV入手。
1.Unity——我使用的是Unity5.3.1f版本号
2.Vuforia SDK插件——从官网(https://developer.vuforia.com/downloads/sdk)下载最新的5.5的Unity专用版本号
三、实战:
1.在Unity中新建一个3D项目。取名为TestAR
2.导入下载好的Vuforia SDK插件包:vuforia-unity-5-5-9.unitypackage
3.导入成功后。再Assets文件夹下回多出一个Vuforia文件文件夹和一些其它的辅助文件
4.将默认场景中的Main Camera删掉。并将Vuforia/Prefabs文件夹下的ARCamera相机拖至场景中
5.本文中我们要示范的是图片的识别。所以我们须要将Vuforia/Prefabs文件夹下的ImageTarget也拖至场景中。调整相机位置。知道浏览页出现例如以下视图:
因为还没有选择要进行识别的图片,所以当前面板还是空白的。加入完所要识别的图片后,应用会通过检測摄像头拍摄的现实世界画面,与此图进行对照。
6.因为高通的图片识别都须要先将待识别的图片上传到其内部的图片库中,所以这里我们须要先到开发人员后台完毕一些准备工作。
a.打开链接:开发人员后台,创建一个新的Database
b.在新建的Database中加入Target:
7.选中ImageTarget,设置Image Target Behaviour组件的Data Set属性,会自己主动在网页中跳转到我们刚刚加入Database和Target的页面,我们选中当中一张,点击Download Databasebutton,就会弹出导出资源的选项框,选择Unity Editor。再点击Create我们就能够得到一个跟相应Database同名的资源包:Test.unitypackage
8.我们回到Unityproject,将刚刚生成的Test.unitypackage导入到project中,能够看到除了一些配置文件之外,资源中还包括了我们上传到高通站点上的图片,它被转换为材质:
9.导入完资源之后,回到ImageTarget组件上的Image Target Behaviour组件,选中指定的Database中指定的Target图片之后,我们能够看到ImageTarget显示我们选中的图片:
10.设置ARCamera,对Database Load Behaviour中的Load Test Database和Activate都勾选上:
11.拖入一个模型,这个模型就是我们在手机等移动设备上使用相机对准识别图片时才会出现的AR模型,当然这个模型最好作为ImageTarget的子物体,并设置好此模型的位置:
11.将当前project打包成Apk安装到手机上。PC上打开用于识别的背景图片,真机执行直接拿手机对着图片。查看结果怎样。
增加真机启动时提示"Vuforia App is missing...",这是由于打包的时候没有把给ARCamera加入App License Key填写完整导致的。以下我们来介绍怎样获取这个參数:
a.打开开发人员后台,选择License Manager页签,这里就是证书管理的后台。我们须要为我们的App加入一个证书:
b.生成证书:
c.查看生成证书,并获得App key:
d.将App key填写到Unity中ARCamera组件的App License Key中:
12.又一次打包Apk,并查看结果: