基于Unity3D 的Vuforia SDK开发基础教程

  最新博客地址已转到:

  http://blog.csdn.net/zzlyw?viewmode=contents  

------------------------------------------------------------------------

前言

  增强现实技术是当前信息技术领域的一项重要的综合性技术,融合了模式识别、计算机图形学等多个学科的知识。今天我们就和大家一起来看一下,这个技术到底可以带给我们什么吧。

基于Unity3D 的Vuforia SDK开发基础教程 基于Unity3D 的Vuforia SDK开发基础教程

  左边是通过手机观看图片,可以看到叠加在背景图片上的栩栩如生的恐龙,右图是使用微软Hololens所获得的增强现实场景。由于微软Hololens这类产品还使用了SLAM等空间建模与跟踪技术,做起来比较复杂,所以我们主要集中在左图所示的基于图案的AR应用。

----------------------------------------------------------------------------------------------------

  今天的主要任务是自己动手从头做一个基于Unity3D和Vuforia SDK 平面跟踪模块的增强现实应用。

  所需环境:

  Windows 10(64-bit)操作系统、Unity 3D 5.4.1 f1(64-bit)、Vuforia 6 SDK

  这里需要对开发环境进行简要的说明。

  (1)首先Windows系统和Mac OS 都是可以的,我平时用Windows 10,所以就以此为例子来进行讲解。当然Win7、Win8 也都是可以的。目前虽然也有支持Linux的Unity3D 非官方版本,但是将Vuforia导入后运行会报错,目前还没解决。所以推荐使用Windows或者Mac OS。

  (2)Unity3D从Unity 5 开始分为了32位版本和64位版本,如果你的计算机是64位系统,可以*选择,但是注意,Vuforia SDK只有到Vuforia 6才开始支持64位的Unity。这也就意味着,如果你使用VuforiaSDK之前的一些版本,例如Vuforia 4和Vuforia 5,你就只能使用32位的Unity了。

  我们现在默认你已经有了一个合适的版本的操作系统了,例如win10 64位。下面开始一步一步完成我们的预定任务吧。

1 下载Unity 3D

https://store.unity.com/cn/?_ga=1.18936120.1875984010.1467707827

  打开Unity商店网址,会看到如下的界面。

基于Unity3D 的Vuforia SDK开发基础教程

  选择免费的个人版,点击进入。

基于Unity3D 的Vuforia SDK开发基础教程

  可以直接点击下载安装程序,也可以点击底部最右侧的“Unity旧版本”。我一般会选择后者,因为这样就可以*选择要安装的版本。开发中最好采用一样的版本,否则在打开别的程序的时候总会根据Unity版本重新生成工程,来回转换难免不会出现什么隐含的Bug。点击“Unity旧版本”后,实际上看到的列表中也包含最新的版本。

基于Unity3D 的Vuforia SDK开发基础教程

  根据你的系统选择相应的版本下载即可。例如我的是Win10 64位,我就点击5.4.1的“下载(Win)”按钮,选择Unity编辑器(64位)下载。我没有选择最新的版本,因为我已经有其他的程序是使用这个版本编辑的。如果你喜欢最新版,完全可以下载最新版,都是没问题的。

  之后在你的下载目录会有“UnitySetup64-5.4.1f1.exe”这个文件,双击运行。一路点继续,到安装路径的页面可以更改安装路径,其他都默认即可。安装完后,如果没有使用破解补丁破解,界面是灰白色的,破解后是深灰色的。其实使用功能上没什么区别,反正现在有了免费的个人版,对于我们做研究来说,破解与否没差别。

基于Unity3D 的Vuforia SDK开发基础教程

  第一次打开Unity可能需要登陆账号,可以随便注册一个登陆即可。点击“NEW”,输入工程名和路径,点击“Create project”。可以看到一个空工程就建立好了。

基于Unity3D 的Vuforia SDK开发基础教程

2 下载Vuforia 6

2.1 下载Vuforia 6 SDK

https://developer.vuforia.com/downloads/sdk

  当前SDK最新的版本是Vuforia 6。SDK选项卡下有不同平台的开发包。Samples选项卡下有不同平台的例程,你可以在熟悉使用SDK后自己下载使用,其中就包括平面跟踪和物体跟踪等常见功能。

基于Unity3D 的Vuforia SDK开发基础教程

  点击Download for Unity,下载到本地,下载路径最好是纯英文的,否侧导入unity时会报错。如果需要注册账号,就注册一个,并且要记录下来。因为以后管理秘钥和数据库还会用到。

2.2 申请License

  点击Develop选项卡下的License Manager选项卡,点击Add License Key。

基于Unity3D 的Vuforia SDK开发基础教程

然后选择相应的信息,如下图,并输入一个App Name。

基于Unity3D 的Vuforia SDK开发基础教程

  

  点击Next,出现确认信息界面,再确认即可。

基于Unity3D 的Vuforia SDK开发基础教程

  然后回到License Manager面板,发现已经有了刚刚建立的MyFirstAR(你肯定用的是其他的名字吧,都是可以的)

基于Unity3D 的Vuforia SDK开发基础教程

  点开这个刚刚建立的条目,显示如下。

基于Unity3D 的Vuforia SDK开发基础教程

  把上面这一大段字符复制到本地保存起来,以备以后使用。

2.3 建立数据库

  点击Develop下的Target Manager选项卡,会看到如图所示。

基于Unity3D 的Vuforia SDK开发基础教程

  然后点击Add Database,在弹出的对话框中输入名字,并选择Type为Device,然后Create。

基于Unity3D 的Vuforia SDK开发基础教程

  然后Target Manager中会显示新添加的数据库,打开它,显示如下。

基于Unity3D 的Vuforia SDK开发基础教程

  点击Add Target来添加自己的标志图,作为被跟踪的标志板。

基于Unity3D 的Vuforia SDK开发基础教程

  由于我使用的是平面标志板,所以Type中选择Single Image,File选择自己准备好的图像。我是选择了一个龙珠人物的图像。图像要求纹理复杂并且不能是对称的。Width要求输入图像的宽度。我使用的图像打印出来是0.4m,所以为了符合实际尺寸,我就将宽度设置为了0.4。这里需要知道,unity里面默认的单位是米。然后点Add,就成功将图案上传到服务器了。

基于Unity3D 的Vuforia SDK开发基础教程

  如上图,我们建立的数据库中已经有了添加的图像,并且评分为5星,表明图像上特征点很多,适合作为标志图案。然后点击Download Database(All),选择开发平台为Unity Editor。

基于Unity3D 的Vuforia SDK开发基础教程

3 建立AR工程

  打开之前建立的空工程,导入下载的Vuforia 6 SDK和下载下来的数据库。

  依次选择Assets——Import Package——Custom Package,分别导入上述文件(vuforia-unity-6-0-117.unitypackage和MyDataset.unitypackage,也许你用的是其他的名称,只要选对相应文件即可)。

  将当前场景保存为AR.unity,然后找到Project下的All Prefabs,点击会在右侧显示下图。

基于Unity3D 的Vuforia SDK开发基础教程

  将ARCamera和ImageTarget两个都拖放到Hierarchy中,点击刚拖进来的ImageTarget,在右侧的Inspector中找到C#脚本ImageTargetBehaviour,其下拉选项的Database选择“MyDataset”,ImageTarget就选择你的图片名,其他默认。

基于Unity3D 的Vuforia SDK开发基础教程

  然后在Hierarchy中点击ARCamera,在右侧的C#脚本Vuforia Behaviour下拉选项中找到App License Key,将申请的License key复制到方框中。找到Database Load Behaviour脚本,勾选Load MyDataset Database,然后它下面会出现Activate,也勾选上。

基于Unity3D 的Vuforia SDK开发基础教程

  现在所有的软件设置已经完成,现在需要在场景中叠加一些虚拟物体。我们先创建一个Cube,并将它作为ImageTarget的子物体,调整位置和大小,如图所示。

基于Unity3D 的Vuforia SDK开发基础教程

  保证你的摄像头是正常连接上的。查看的方法是,点击Hierarchy中的ARCamera,然后查看右侧Inspector中的WebCamBehaviour脚本是否检测到了Camera Device。如图,我的摄像头采用的是Logitech HD Pro C920。

基于Unity3D 的Vuforia SDK开发基础教程

  一切就绪后,保存场景,并点击运行按钮。可以看到,虚拟的方块已经正确叠加到实际的标志板上了。

基于Unity3D 的Vuforia SDK开发基础教程

  一个方块貌似有些简陋,于是从网上下载了一个游戏中的NPC角色模型,替换cube,效果如图。

基于Unity3D 的Vuforia SDK开发基础教程

  Enjoy it!从此开始快乐的增强现实应用开发之旅吧!

-----------------------------------------------------------------------------------------------------------------

小结

  今天从头讲述了怎样搭建基于Unity的Vuforia开发环境,并且进行了最基本的基于平面标志板的AR测试。有了这个基础,读者还可以进行3D物体跟踪实验以及其他一些高级功能。程序要发布到安卓手机或iOS,可以参考其他一些教程。现在,Vuforia也支持发布UWP应用了。如果你用的是Windows 10,可以发布Windows store应用,部署到自己的PC上,当然这还需要额外的配置哦。

上一篇:HDU_5723_最小生成树+任意两点距离的期望


下一篇:hdu City Game