Unity3D AR开发之Vuforia入门学习

引言:2016年的AR游戏Pokemon GO火遍全球(除了中国),让我第一次了解到AR的世界。神奇的虚拟对象出现在现实世界中,感觉小时候的游戏王这类的动画可以成为现实。 最近小生学习了高通的Vuforia,本篇着重介绍入门操作。

开发版本:Unity 2018.1.3f1

适合人群:对U3D有基础认识,想要学习AR的童鞋


一、什么是增强现实?

增强现实(Augmented Reality,简称 AR)是指把现实世界中某一区域原本不存在的信息,基于某种介质并经过仿真后再叠加到真实世界,被人类感官所感知的技术。

特点:真实世界和虚拟世界的信息集成,无缝衔接   ;具有实时交互性    ;在三维空间中定位虚拟物体


二、Vuforia学习

1、工作原理

用摄像头拍摄现实场景,通过计算机视觉技术捕获识别标记,实时记录它的位置和方向,数据平台中存储的虚拟3D模型对象与真实场景相叠加。

P.S. Unity2017.2版本开始将Vuforia内置,在安装时即可下载


2、Vuforia识别机制

通过检测自然特征点的匹配来完成,将识别图检测出的特征点保存在数据库中,然后将实时检测出真实图像中的特征点与数据库中识别图的特征点数据进行匹配

1、服务器对上传图片进行灰度处理,图片变为黑白图像

2、提取黑白图像的特征点

3、将特征点数据打包

4、程序运行时,对比特征点数据包

注意:图片中尖锐可辨,轮廓清晰的地方就是特征点,例如矩形四个角就是四个特征点,而圆形没有特征点

识别卡片需要材质较硬,不要有褶皱,轮廓清晰,丰富的细节,较高的对比度

特别注意:整幅图片的8%的区域作为功能排斥缓冲区,该区域不会被识别


3、实现步骤

<1>申请密钥

现在Vuforia的官网注册开发者账号,并申请项目密钥(License Key),免费开发者每月有1000次的扫描次数,而且左下角有水印。不过,用于开发学习也足够了。


创建完项目后,即可获取密钥,密钥是需要复制到项目中的配置文件中的

添加数据库,用于保存识别图的数据

添加识别图,点击Add Target按钮

将识别图上传至网站,生成识别图的特征点数据包,点击右侧Download Database按钮,下载Unity数据包
P.S. Rating一列中,星级越高说明特片的特征点越多,越容易识别,建议不低于三颗星

<2>前期设置

打开Player setting窗口 勾选开发VR选项

发布平台需要改为Android

Player Setting中Other Setting一栏中需要取消勾选Android TV Compatibility,因为Vuforia不支持Android TV的发布。


将官网申请的秘钥复制到Resources文件夹中VuforiaConfiguration的App license key一栏


属性:

camera device mode :设置默认识别速度优先还是质量优先

max simultaneous tracked images :最大识别图数量

max simultaneous tracked objects :最大识别对象数量

camera direction :默认摄像机是前置还是后置

device type :默认为手持handhelds


<3>导入Vuforia

如果是Unity 2017.2之前的版本,需要在官网下载Vuforia插件,然后导入Unity即可。

而这之后的版本,选择GameObject-Vuforia-AR Camera,导入AR Camera的同时,会自动导入Vuforia相关内容。

将之前在官网下载的Unity数据包导入到Unity项目中

导入Image Target,选择GameObject-Vuforia-Image


将Image Target的数据库选择为之前导入的Unity包内的数据库


将一个3D模型作为ImageTarget的子物体


然后,打包运行即可!
下图为编辑器模式下演示:

结束语:至此,您可以实现单卡显示的功能,之后,会继续记录Vuforia的其他功能,还请关注我哦!


猜你喜欢

转载自blog.csdn.net/qq_35361471/article/details/81054114