AR与VR开发实战.html.pdf
《AR与VR开发实战.html.pdf》由会员分享,可在线阅读,更多相关《AR与VR开发实战.html.pdf(340页珍藏版)》请在三一文库上搜索。
1、前言 增强现实(Augmented Reality)简称AR,是一种实时计算摄像机捕捉到的现实影像的位置及角度并加上相应虚拟信息的技术。这种技术不仅能展现真实世界的信息,还能通过增加虚拟信息而对现实世 界进行增强,所以称为增强现实。AR可应用于军事、医疗、工业、教育等众多领域,随着硬件性能的提升和软件解决方案的日趋成熟,AR产品将越来越多地走入人们的视线。 虚拟现实(Virtual Reality)简称VR,它通过计算机图形系统以及多种传感器控制设备将人带入虚拟世界中,并与虚拟世界产生各种交互,具有强烈的沉浸式体验。VR将在游戏、影视、城市规划、室内 设计、地产、教育等多个领域为人们提供更加真
2、实、震撼的全新体验。 随着AR和VR技术的飞速发展,由此产生的众多应用场景将需要大量技术人才,尤其是程序设计人才。本书的目的是为程序开发者提供全面、权威的参考资料,并附有大量真实案例,详细讲解AR、VR 开发的流程和步骤。 本书分为两大部分,第一部分是“AR开发”,共12章: 第1章简要介绍AR技术的概念和常用的AR解决方案。 第2章主要介绍基于Vuforia SDK的应用开发。 第39章主要介绍AR项目中常见的案例以及实现方法,例如透明视频、AR对战游戏、涂色类产品等。 第10章重点讲解国内AR解决方案HiAR SDK的开发。 第11章简要介绍其他AR SDK的使用。 第12章简要介绍AR创
3、建工具“找趣”的使用。 第二部分是“VR开发”,共6章: 第13章简要介绍VR技术的概念和主流的VR设备。 第14章主要介绍基于Google Cardboard开发VR应用。 第15章主要介绍HTC Vive的常用功能及其实现。 第16、17章通过案例方式讲解基于HTC Vive的项目开发。 第18章简要介绍目前市场上的其他VR设备及相关技术。 本书专注于AR和VR开发,因此不过多涉及编程语言的基础知识及引擎的使用方法,阅读本书需要先掌握C#编程技术,并能够熟练使用Unity 3D引擎。如果你没有C#和Unity的使用经验,那么在阅读本 书之前需要先学习相关技术。 在编写本书的过程中,我们得到
4、了亮风台科技、克科技、RealMax等企业的技术支持和宝贵意见,在此表示衷心的感谢。感谢ARinChina CEO张明军提供的优质平台与宝贵资源,感谢ARinChina同事董艳 超、张荣为本书的出版辛苦奔波,感谢ARinChina站长赵亮、ARinChina技术论坛版主赵忠立提供高质量的技术支持,感谢付旭耀提供美术支持。最后,特别感谢ARinChina工程师赵兴、谢有龙、陈家豪、常 壮等同事,他们在本书编著过程中付出了无数汗水。 本书是非常好的AR和VR入门教程,适用于高校计算机相关专业学生学习AR和VR技术,同时由于书中附有大量案例,所以同样适用于企业开发人员。如果你在项目中遇到相似的需求,
5、或许也可以从本 书中获取一些灵感和帮助。 如果本书能为你的学习或工作带来帮助和提升,将是我们莫大的荣幸。真诚希望本书的读者给我们更多的反馈和意见,帮助我们取得更大的进步和成长。在阅读本书的过程中若有疑问,欢迎加入本书 QQ群进行交流,我们会在群里提供本书的所有资源和相关工具,QQ群号为588206982。 作者 2016年9月 作者简介 张克发:毕业于烟台大学软件工程学院,曾在杭州、上海等地参与多款大型游戏的开发,擅长Android开发、Unity 3D、Node.js等技术,有丰富的AR、VR开发经验,曾主导开发多款AR、VR产品。目前 担任ARinChina(增强现实中国)教育事业部总监,
6、以及北京加速想象力教育咨询有限公司CTO。 赵亮:ARinChina站长,德国Metaio驻中国技术支持,奥地利Wikitude驻中国技术支持,目前担任上海璟世数字科技有限公司CTO。 赵忠立:曾在西安、上海等地从事三年AR开发,目前担任上海璟世数字科技有限公司技术总监,擅长Unity 3D与Android开发。 赵兴:毕业于西安邮电大学数学系,擅长Unity 3D开发与算法研究,目前在ARinChina担任AR、VR开发工程师。 谢有龙:在ARinChina担任AR、VR开发工程师,擅长HTC Vive、Hololens等AR、VR技术。 陈家豪:毕业于西北大学软件工程学院,擅长3D美术制作
7、、Unity 3D开发、Unreal Engine开发。目前在ARinChina担任3D设计师及AR、VR开发工程师。 常壮:毕业于西北工业大学,在ARinChina担任AR、VR开发工程师。 第一部分 AR开发 第1章 AR技术简介 第2章 基于Vuforia SDK开发AR应用 第3章 AR内容交互 第4章 AR互动大屏:透明视频的实现 第5章 AR动画:AR与Flash动画的结合 第6章 AR游戏开发:卡牌对战 第7章 涂色类AR开发 第8章 使用陀螺仪模拟SLAM功能 第9章 Unity与原生代码之间的交互 第10章 使用HiAR SDK开发AR应用 第11章 其他AR SDK简介 第
8、12章 AR创建工具:找趣(realcast)浏览器 第1章 AR技术简介 增强现实(Augmented Reality,AR)是一种实时计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界中并进行互动。这种技术于20世纪90年代 提出,随着随身电子产品运算能力的提升,其用途将会越来越广。 目前对于增强现实有两种通用的定义。一种定义是北卡大学罗纳德阿祖玛(Ronald Azuma)于1997年提出的,他认为增强现实包括三个方面的内容:将虚拟物与现实结合、即时互动、三维。另一种 定义是保罗米尔格拉姆(Paul Milgram)和岸野文郎(Fumio Ki
9、shino)于1994年提出的现实虚拟连续统(Milgrams Reality-Virtuality Continuum)。后者将真实环境和虚拟环境分别作为连续统的 两端,它们的中间地带称为“混合现实”(Mixed Reality),其中靠近真实环境的是增强现实(Augmented Reality),靠近虚拟环境的则是虚拟现实(Virtual Reality)。 增强现实技术在工业上的应用已有不少,目前主要用于大型机械的维修和制造。另外,增强现实技术在教育、医疗、房产、游戏等多个领域的应用同样很多。 总的来讲,增强现实技术现在还处于起步阶段,大多数AR应用都运行在智能手机上,通过图像识别等技术
10、实现简单的增强现实效果。其采用的解决方案大部分是利用Unity 3D等游戏引擎配合AR SDK 进行开发,目前最受欢迎的SDK有国外的Vuforia SDK以及国内的HiAR SDK等。 Vuforia SDK最早是高通(Qualcomm)公司的AR解决方案,后被PTC收购,目前仍致力于AR以及MR技术的研究。Vuforia集成了图像识别和物体识别,支持与三星Gear VR或微软Hololens相结合的 应用开发。 HiAR是亮风台研发的AR基础开发平台,提供HiAR SDK、HiAR云、管理后台和浏览器幻镜等一系列完整的AR开发支持,专注于为开发者带来最好的AR服务。HiAR SDK功能全面
11、,支持平面识别、3D 识别、空间建模、人脸增强和姿态跟踪。2016年里约奥运会,在HiAR SDK的支持下,腾讯手机QQ于世界范围内展开AR火炬传递活动,创造了AR互动破亿次的吉尼斯世界纪录。HiAR云平台是国内首款 AR云,支持亿级图库秒级搜索,识别准确率高达96%,是国内AR平台中准确率最高、响应速度最快、识别图库最大的AR云。迄今为止,HiAR已成为全球用户量最多的AR开发平台之一,覆盖用户超过8 亿,三星、腾讯、百度、华为、OPPO、大疆、搜狐等企业均在HiAR获取AR技术支持与服务。 本书将介绍图形图像识别、简单的几何体识别、3D物体识别等目前常用的AR开发技术,并结合Vuforia
12、、HiAR、Wikitude、VoidAR等知名AR开发工具包(SDK),以案例形式讲解AR在各个领域中 的应用方案。 由于本书将重点讲解AR技术开发,因此假设读者已经掌握了C#编程语言以及Unity 3D开发,如果读者对此没有接触,建议首先学习C#以及Unity 3D。 第2章 基于Vuforia SDK开发AR应用 2.1 准备Vuforia开发环境 1.Vuforia简介 Vuforia是一款能为现实世界物体带来互动体验的AR开发平台,旨在帮助开发者打造全新级别的真实世界物品与虚拟物品的互动。它使用计算机视觉技术来实时地识别和跟踪平面图像以及简单的3D物 体,使开发者能够在现实世界和数字
13、体验之间架起桥梁。 Vuforia通过Unity游戏引擎扩展提供了C、Java、Objective-C和.NET语言的应用程序编程接口,能够同时支持iOS和Android的原生开发,使得开发者在Untiy引擎中开发的AR应用很容易移植到iOS和 Android平台上。 2.注册成为Vuforia用户 (1)打开Vuforia官网https:/ (2)如果你已经是Vuforia注册用户,就可以直接输入邮箱和密码登录Vuforia管理后台;如果你还没有注册过Vuforia用户,则需要点击注册并填写相关注册信息。 (3)在完成注册信息填写后,Vuforia会给注册邮箱发送一封激活邮件,登录邮箱按照提
14、示操作即可激活Vuforia账户。 (4)在激活Vuforia账户后就可以点击登录进入Vuforia管理后台了,如下图所示。 3.下载Vuforia SDK for Unity (1)点击上图中的Downloads链接并按照下图所示完成操作,注意在下载列表中选择Download for Unity。 (2)本节下载的Vuforia SDK版本为vuforia-unity-5-0-5。下载解压完成后会得到后缀名为.unitypackage的Unity插件包。 4.Vuforia 5.0.5 SDK支持的环境 (1)Android平台支持的最低版本是Android 4.0.3。 (2)Unity支
15、持版本为4.6.75.1.3p1(本节使用的Unity版本为5.0.2f1)。 5.新建Unity工程 运行Unity程序,按照步骤创建一个新的Unity工程,也可以直接打开已有的Unity工程来进行Vuforia SDK导入。 6.导入Vuforia SDK for Unity插件 双击在步骤3中下载的.unitypackage插件包,弹出以下窗口后点击Import。 也可以在菜单栏中选择AssetsImport PackageCustom Package,然后再选择.unitypackage文件来导入插件。 如果出现以下界面,点击“I Made a Backup.Go Ahead!”按钮即
16、可。 在导入完成后,Project窗口中显示如下: 至此,Vuforia SDK已经成功导入了新建的Unity项目中,接下来可以创建开发Demo。 第2章 基于Vuforia SDK开发AR应用 2.1 准备Vuforia开发环境 1.Vuforia简介 Vuforia是一款能为现实世界物体带来互动体验的AR开发平台,旨在帮助开发者打造全新级别的真实世界物品与虚拟物品的互动。它使用计算机视觉技术来实时地识别和跟踪平面图像以及简单的3D物 体,使开发者能够在现实世界和数字体验之间架起桥梁。 Vuforia通过Unity游戏引擎扩展提供了C、Java、Objective-C和.NET语言的应用程序
17、编程接口,能够同时支持iOS和Android的原生开发,使得开发者在Untiy引擎中开发的AR应用很容易移植到iOS和 Android平台上。 2.注册成为Vuforia用户 (1)打开Vuforia官网https:/ (2)如果你已经是Vuforia注册用户,就可以直接输入邮箱和密码登录Vuforia管理后台;如果你还没有注册过Vuforia用户,则需要点击注册并填写相关注册信息。 (3)在完成注册信息填写后,Vuforia会给注册邮箱发送一封激活邮件,登录邮箱按照提示操作即可激活Vuforia账户。 (4)在激活Vuforia账户后就可以点击登录进入Vuforia管理后台了,如下图所示。
18、3.下载Vuforia SDK for Unity (1)点击上图中的Downloads链接并按照下图所示完成操作,注意在下载列表中选择Download for Unity。 (2)本节下载的Vuforia SDK版本为vuforia-unity-5-0-5。下载解压完成后会得到后缀名为.unitypackage的Unity插件包。 4.Vuforia 5.0.5 SDK支持的环境 (1)Android平台支持的最低版本是Android 4.0.3。 (2)Unity支持版本为4.6.75.1.3p1(本节使用的Unity版本为5.0.2f1)。 5.新建Unity工程 运行Unity程序,按
19、照步骤创建一个新的Unity工程,也可以直接打开已有的Unity工程来进行Vuforia SDK导入。 6.导入Vuforia SDK for Unity插件 双击在步骤3中下载的.unitypackage插件包,弹出以下窗口后点击Import。 也可以在菜单栏中选择AssetsImport PackageCustom Package,然后再选择.unitypackage文件来导入插件。 如果出现以下界面,点击“I Made a Backup.Go Ahead!”按钮即可。 在导入完成后,Project窗口中显示如下: 至此,Vuforia SDK已经成功导入了新建的Unity项目中,接下来可
20、以创建开发Demo。 2.2 创建Vuforia案例 在开始本节内容之前,如果你还没有创建Vuforia账号,请先参照上一节完成注册,如果你已经是Vuforia开发者,请继续阅读接下来的内容。 1.获取License Key 在官网点击Develop,按照下图完成操作: 完成以上操作后,在License Manager中点击自己创建的应用名称,进入下面的界面: 2.导出新建应用的数据包 根据下图先创建一个新的数据库: 数据包名最好与新建的应用名相同,以便于后期查找和导出。创建好之后进入以下界面: 打开新建的数据包,添加识别目标: 本书选择Single Image(单个图像)作为识别图: 添加成
21、功后会显示如下界面: 上图中的星号表示该图片的识别度,星级越高则识别度越高。勾选已上传图片,下载并导入Unity工程中。 导入成功后如下图所示: 3.创建Vuforia案例 在Unity Project视图下选择VuforiaPrefabs文件夹,并将ARCamera和ImageTarget两个预制件拖入层级视图Hierarchy中,同时将场景自带的Main Camera删除。 预制件ARCamera上带有AR摄像机以及App相关设置;预制件ImageTarget代表一张识别图像,并且带有识别事件处理等相关脚本。 点击ARCamera,在Inspector面板中找到License Key,将步
22、骤1中创建应用时生成的License Key复制并粘贴到该区域。 ARCamera设置完成后点击ImageTarget,按照下图进行设置: 右击ImageTarget创建一个三维物体模型,调整三维物体与识别图像的位置关系以使其外于合适位置。 最后,点击运行来测试效果。 至此,一个简易的Vuforia案例创建成功。 2.3 创建AR视频 本节将介绍AR视频的创建,AR视频即识别某张图像并播放与所识别图像对应的视频文件,一般用于企业宣传册、广告、书籍等相关领域。我们将会继续使用Unity和Vuforia SDK来开发AR视频应用, 关于Vuforia SDK的相关配置可参阅前面的章节。 Unity
23、默认支持的视频格式分别有.mov、.mpg、.mpeg、.mp4、.avi和.asf,我们在项目应用中一般采用.mp4文件进行视频的播放。在本节中,我们将介绍一款用于移动手机视频播放的Unity插件, 该插件名为Easy Movie Texture,通过简单的设置即可完成视频的播放。 1.插件导入 下载Easy Movie Texture 2.36插件并导入Unity中,在EasyMovieTexture文件夹下找到VideoManager预制件并将其放置到层级视图Hierarchy中,将VideoManager作为识别图像的子物体,该预制 件可以将视频以当前面片(Plane)的大小比例进行播
24、放。 注意 在Assets文件夹中找到StreamingAssets文件夹,将视频文件放在该文件夹下。如果Assets中没有该文件夹,则需要手动创建该文件夹,如果视频放在其他文件夹下,将无法加载视频。 2.设置视频播放选项 选中VideoManager,在Inspector面板的Str File Name选项中填入视频名称,如a.mp4。该组件还可以设置是否自动播放(B Auto Play)、是否循环播放(B Loop)等属性。该预制件本质上是一 个面片和控制播放的Media Player Ctrl组件,所以可以手动调整面片相对于识别图的大小和位置。 3.注意事项 (1)Easy Movie
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AR VR 开发 实战 html
链接地址:https://www.31doc.com/p-5514690.html