82599532 2020-05-26
增强现实(Augmented Reality,简称AR),是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体、三维建模、实时跟踪及注册、智能交互、传感等多种技术手段,将计算机生成的文字、图像、三维模型、音乐、视频等虚拟信息模拟仿真后,应用到真实世界中,两种信息互为补充,从而实现对真实世界的“增强”。
目前世界上主流的AR SDK提供厂商,国外的主要是Vuforia、Metaio,国内的主要是EasyAR。其中Metaio在2015年5月已被Apple重金收购,之后就没有再对外公开过SDK,经过两年的封闭开发,Apple已经打造出了强大的ARKit,能够基于庞大的iOS和iPad设备生产出各种惊艳的AR产品。Vuforia也在2015年11月被PTC公司重金收购,但是后续一直在更新并提供SDK,因此在ARKit普及之前,Vuforia一直是开发者最青睐的AR SDK,众多的功能以及高质量的识别技术,使得Vuforia早已深入人心。
随着VR/AR/MR的大热,笔者本人也利用Vuforia开发了一系列的AR产品,高品质的识别速度让顾客十分满意,Unity和Vuforia的深入结合也让AR开发变得十分容易上手,并且能够打造出十分惊艳的产品。
在使用任何Vuforia SDK之前,你首先要做的是注册Vuforia开发者账号,有了账号之后你才能有对象数据库、才能下载SDK。进入Vuforia官网(https://developer.vuforia.com/vui/develop/licenses),注册一个账号,点击Develop.
之后会进入开发者界面,会有两个主要的选项:
上传识别图像,下载图像SDK
点击创建好的数据库,进入之后点击“Add Target”添加图片对象,之后会弹出图片上传界面,上传需要进行扫描识别的图片。
Type:这里选择Single Image,因为只是一个简单的图片识别;
File:中从电脑本地中选择识别图片,这里选择图片;
Width:输入识别图片的宽度。这个是为了建立Unity场景中的单位长度,场景中所有其他物体的大小是以这个值为参照建立的。Vuforia中的单位长度是以米来计算。输入之后,图片的高度会以这个宽度来自动计算。这个值可以是任意的,但是最好比Camera的Near Clip值要大,不然在镜头靠近时你可能会看不到相关内容。这里输入为1;
Name:识别图的名字。这个很重要,每张识别图对象都有一个唯一的名字,而且Vuforia可以同时识别多张不同的图片,因此如果以后要用代码来控制选择是哪个对象的话,就是用这个名字来查找是哪张识别图,所以最好取一个能方便认识的名字。
全部信息填完之后,点击”Add“就能将识别图上传到对象数据库。
全部信息填完之后,点击”Add“就能将识别图上传到对象数据库,之后就能在对象管理界面中看到已经上传成功的识别图,这里要注意的是”Rating“的星星数量,这个是对图像识别度的评级,满分是5颗星,一般来说最低要有3颗星才能被准确识别。所以上传图片的时候Rating要保证在3颗星以上。然后勾选住最左边的checkbox,点击上方的”Download Database“按钮,在弹出的界面中选择Unity Editor,下载图片的Unity Package。将图片SDK(下载得哪个Unity Package)导入到Unity中。
之后就需要下载Vuforia的Unity SDK,Unity安装的时候就要可以选上vuforia,省的麻烦,我都是用的unity安装包安的,另外在安装没有学。
简单的设置一下,file---Build Settings---Player Settings, 在Inspector面板---XR Settings,把Vuforia Augmented Realit 对勾打上。
2.将原有摄像机MainCamera删除,创建ARCamera,ImageTarget,点击ARCamera--Open Vuforia Engine configutation.
3.将免费获取免费的开发license,复制到里面,数据库之前已经导入了,可以导入多个,下面选择摄像头。
4.创建一个三维物体(我是导入了我自己u做的一个模型),放到ImageTarget下,当其子物体,将你的识别图下载到另外一个设备或者打印出来,运行。