原料:
Unity3D引擎
Vuforia SDK
一个要从虚拟世界穿越的模型
一张模型穿越的载体图片
步骤:
先来熟悉一下VuforiaSDK,我们这里用的VuforiaSDK是高通公司下的一个增强现实团队的作品,
我们首先要知道现在要做的增强现实demo是基于图像识别的,
那么图像识别自然有两种方式,
1是在本地将摄像机捕捉到的所有信息处理完再跟机器上的数据比对得到结果,
2是将摄像机捕捉到的画面信息发送到远程服务器上,通过服务器对数据进行处理和比对,再将结果返回到本地机器。
第一种在Vuforia中表示为Device Reco,
第二种在Vuforia中表示为Cloud Reco。
这里我们要做的demo就是DeviceReco方式,既然是本地比对识别数据,那我们要的载体图片的数据从哪里来?
不要怕,Vuforia可以帮我们生成,让我们现在官网注册一个账号,然后登陆,在TargetManager中添加一个database。这是一个载体图片的数据库~
Vuforia targetmanager
创建好的的database
这里我们type选择device,输入一个database的名字“toturial”,创建!
创建device database
现在我们就能看到刚刚创建的database了,点击名字然看具体内容
创建好的的database
刚建好的database自然是空的,点击“AddTarget”,新建一个载体图片。
可以看到Vuforia还支持了很多图形的识别功能,但是这里我暂时只介绍基于图片的,选择“Single Image”,点击Browse选择自己的载体图片,填写“width”,这里的宽度和你要在unity中的世界坐标有关,这里我们只做最简单的demo,所以无需在意 ,我随便填了个200,然后为自己的载体图片取一个响亮的名字=。=我用了个帅气的ironman,
add完成。
AddTarget
成功添加以后,就可以再我们刚才创建的database中看到我们的载体图片了!
刚添加的载体图片
这里要大家注意一下,Rating这个属性,现在我上传的载体图片是5颗星,说明在Vuforia处理图片的算法中可以很好的把我的载体图片识别出来,所以星星数量越少越不容易被识别出来,识别出来了也很容易受到外界因素的干扰而失去识别的焦点。至于如何在Vuforia的算法中获得更多的星星,可以研究一下官方的说明文章。
官方指导
现在载体图片也ok了,那我们怎么把这些数据放到Unity引擎中用起来呢!不要慌,我们先点“DownloadDataset”,选择“Unity Editor”将这些数据下载过来。
Download Dataset
OK,我们可以下载到一个unitypackage文件,有没有很贴心!
下面,新建一个Unity工程,将原料VuforiaSDK导入!
导入VuforiaSDK5-0-5
再把我们准备好的原料,要穿越的模型和载体图片的unitypackage导入。
导入载体图片后,在StreamingAssets文件夹下就会看到以我们刚创建的database名字命名的两个文件
导入后的文件
好,高潮部分来啦,删除Unity场景中的MainCamera,在“Vuforia->Prefabs”文件夹下找到“ARCamera”和“ImageTarget”拖到Hierarchy中
添加ARCamera和ImageTarget
这时候我们会看到场景中只有一个白色的plane,不要紧,选中ImageTarget,在“ImageTargetBehavior”组件中Dateset选择我们刚创建的dataset,我这里是“tutorial”,ImageTarget选择刚才的载体图片名“Ironman”
设置ImageTarget
OK,载体图片设置好了,那就要把我们要穿越的模型请出来了,把模型拖到Hierarchy中,并成为ImageTarget的子物体,然后调整一下模型,让模型和载体图片的比例协调一些。
添加穿越的模型
好的,一切准备就绪,让我们来Run一下看看效果吧!
Vuforia error
什么,呵呵,不能跑!阿鲍你在逗我?你会不会?
好,我们看看哪里出问题了,“Vuforia App key is missing”,好家伙,这是什么鬼?
其实这是Vuforia4.0以后的产物,每一个实用了VuforiaSDK的应用都要有一个app key。那这个key从哪里来?
还记得当年创建database的时候旁边还有一个叫License Manager的家伙吗?
那让我们再回到官网,赶紧 add 一个 license key。
license manager
Application name填一个响当当的名字“AR tutorial”,然后Device选择“mobile”,license key选择“Starter”免费的那个~
add license key
Ok next,成功创建后我们就能点击查看我们的license key的详情啦,那一坨坨长长的字符串就是我们要的key了。
license key
复制key,填到Unity场景中的ARCamera上的“Vuforia Behavior”组件里。
填写license key
key有了,那我们赶紧来跑吧!不要急,还有重要的事没做呢,一切就绪后,还要激活我们的dataset,Vuforia在会识别到我们的载体图片,然后把酷炫的模型穿越过来。快说啊,在哪里激活,就在ARCamera上~把“Load Data Set tutorial”勾选,再把activate勾选。
激活dataset
OK,一切就绪,让我们来见证奇迹吧!
Run起来!让我们的摄像头找到我们的载体图片,来吧,钢铁侠!
更多AR新闻就在中国AR网(https://www.chinaar.com/)