前言

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

 

  左边是通过手机观看图片,可以看到叠加在背景图片上的栩栩如生的恐龙,右图是使用微软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商店网址,会看到如下的界面。

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

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

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

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

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

2 下载Vuforia 6

2.1 下载Vuforia 6 SDK

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

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

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

2.2 申请License

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

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

  

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

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

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

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

2.3 建立数据库

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

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

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

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

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

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

3 建立AR工程

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

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

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

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

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

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

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

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

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

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

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

小结

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

基于Unity3D 的Vuforia SDK开发基础教程相关推荐

  1. iOS 10应用开发基础教程

    iOS 10应用开发基础教程 介绍: 本教程是国内第一本iOS 10开发应用教程.本教程基于Xcode 8.0,使用Swift 3.0语言讲解如何开发iOS 10的应用App. 学习建议:本教程针对i ...

  2. iPhone 4与iPad开发基础教程

    iPhone 4与iPad开发基础教程 创造销售奇迹的经典著作 针对iOS SDK新特性全面改版 从这里,拥抱软件开发的未来 基本信息 原书名:Beginning iPhone 4 Developme ...

  3. iPhone 开发基础教程

    Phone 开发基础教程之 在开始编写iPhone软件之前,需要做一些准备工作.对于初学者,需要一台运行Leopard(OS X 10.5.3或更高版本)的基于Intel的Macintosh计算机.2 ...

  4. IP 摄像机移动应用 SDK 开发入门教程(安卓版)

    涂鸦智能安卓版摄像机(IP Camera,简称 IPC)SDK 是基于智能生活 App SDK 开发而成. 通过移动应用控制物理网设备是常见的使用场景,但由于设备的品类丰富,增大了应用开发难度.因此  ...

  5. Xamarin图表开发基础教程(2)OxyPlot框架

    Xamarin图表开发基础教程(2)OxyPlot框架 OxyPlot图表设计 OxyPlot是一个基于.Net的跨平台图表库.该图表库也支持Xamarin应用开发.该组件支持多种类型的图表.本章将主 ...

  6. iOS 9音频应用开发基础教程(大学霸内部资料)

    iOS 9音频应用开发基础教程(大学霸内部资料) 介绍:iOS 9音频应用开发基础教程(内部资料)是iOS 9音频应用开发专向教程.本书采用Swift 2.0语言开发基于iOS 9的音频应用.实现的功 ...

  7. Unity2D游戏开发基础教程1.2项目、资源和场景

    Unity2D游戏开发基础教程1.2项目.资源和场景 如果使用Unity制作游戏,就一定会接触到项目(Project.资源(Asset)和场景(Scene).本节将依次介绍它们. 1.2.1  项目 ...

  8. Unity2D游戏开发基础教程1.2 项目、资源和场景

    Unity2D游戏开发基础教程1.2 项目.资源和场景 如果使用Unity制作游戏,就一定会接触到项目(Project.资源(Asset)和场景(Scene).本节将依次介绍它们. 1.2.1  项目 ...

  9. Unity4.x 2D游戏开发基础教程第1章Unity及其组成的介绍

    Unity4.x 2D游戏开发基础教程第1章Unity及其组成的介绍 本书主要讲解的是,如何使用Unity开发2D游戏.但在开始讲解之前,最好先熟悉一下Unity这个工具.本章会首先介绍Unity的下 ...

最新文章

  1. 服务器网页500错误修复工具,HTTP500错误是什么?如何修复
  2. application/x-www-form-urlencoded multipart/form-data text/plain 的区别和作用
  3. 哈工大计算机专业去哪里工作,想读计算机专业,哈工深和华科应该选择哪个?...
  4. android利用WebView实现浏览器的封装
  5. C++primer 10.6节练习
  6. webpack ,gulp
  7. Spring Boot——WebMvcConfigurerAdapter已过时解决方案
  8. VTK:PolyData之RemoveOutsideSurface
  9. android 480p分辨率,[RK3399][Android7.1] HDMI显示屏(副屏)调试记录小结
  10. 《TensorFlow 2.0深度学习算法实战教材》学习笔记(七、Kears高层接口)
  11. 【ERNIE】深度剖析知识增强语义表示模型——ERNIE
  12. 静态路由协议的默认管理距离是_动态路由选择原理(距离矢量路由协议RIP)
  13. 系统分析师知识点汇总
  14. Hint: If you want to see a list of allocated tensors when OOM happens 的解决办法
  15. 面试分享一次失败的经历
  16. perfmon 端口修改_Windows操作统的性能监控工具――Perfmon.doc
  17. 一球成谜!咪咕直播联合即构打造世界杯直播答题新玩法
  18. eQTL | Expression quantitative trait loci | 表达数量性状基因座 | QTL | 数量性状位点
  19. 第十二届Revit开发训练营4月4日~9日在武汉举办
  20. 网易邮箱中非常实用的工具,手机、IP等归属地

热门文章

  1. Streamset数据同步报错问题
  2. java开学考试感想及代码
  3. 王者荣耀微信哪个服务器怎么选,王者荣耀:国服战力对比!手Q和微信哪个大区的战力更胜一筹?...
  4. pandas parquet文件读取pyarrow、feather文件保存与读取;requests 或wget下载图片文件
  5. 计算机体系结构:系统平均无故障时间(MTTF)计算例题
  6. 考研英语 词根词缀单词71-80
  7. AutoCAD Civil 3D创建点文件描述码(点特征码)集控制展点样式与特性
  8. 叽歪网CEO:创业路上也要学会忙中偷闲
  9. 机器学习:Experiment 5: Regularization
  10. 纳斯达克对经济泡沫的定义是:当交易价格远大于内在价值的时候,就称为泡沫(转)...