《HoloLens与混合现实开发》
HoloLens与混合现实开发
闫兴亚 张克发 张画画 裴梦泽
马 柯 张世兴 赵素晗 著
Preface 前 言
混合现实(Mixed Reality,MR)是指真实世界与虚拟的数字世界相结合产生的一种新的环境可视化方式,其中的物理实体与数字对象能共存并实时相互作用,在技术上涉及虚拟现实(Virtual Reality,VR)和增强现实(Augmented Reality,AR)的概念。混合现实的概念提出较早,而真正被业内开发者所熟悉,大约起始于微软在2015年1月25日所发布的HoloLens智能眼镜,其强大的性能和极具科技感的体验让很多业内开发者赞叹不已。笔者于2016年年初接触到第一台HoloLens设备,在体验了其中的应用之后,深感混合现实技术将在不久的将来应用到各行各业,因此学习了HoloLens官方开发者文档,并将其整理为中文资料,以方便开发者和学生参考使用。之后在教学过程中加入了HoloLens开发课程,培养了一批擅长HoloLens开发的技术人才,并将教学过程中的相关技术资料整理成册,遂有此书。
自2016年后,VR热潮逐渐退去,但国内仍有一批企业坚持在相关产业中耕耘,其成果在教育、工业、工程、军事、文化等多个领域落地生根、开花结果。随着软件技术的发展、硬件产品的迭代以及5G的商业化,笔者相信,AR、VR、MR技术在未来不再是花拳绣腿,而将与人工智能、大数据等技术相结合,产生巨大的商业价值。
2019年1月24日,在西班牙巴塞罗那举行的2019 MWC世界移动通信大会上,微软发布了全新的产品HoloLens2。这款万众瞩目的产品一经发布便赢得了业内的赞誉,新一代HoloLens设备在沉浸感、舒适感及视场角方面均有了较大幅度的提升,这意味着混合现实技术迈出了更加成熟的一步。
本书主要包含以下内容:
1)混合现实的概念。
2)国内外混合现实硬件及解决方案介绍。
3)Unity程序设计基础。
4)HoloLens开发与案例制作。
5)其他平台的混合现实应用开发。
由于笔者只能利用工作之余编写此书,书中难免有诸多不足之处,希望广大读者给予批评与指正。随着时间的推移与技术的发展,笔者将会继续完善书中的案例,修改书中的漏洞和错误之处。如果阅读本书的读者能在其中收获一些知识和信息,将是笔者最大的荣幸,也会是笔者继续完善此书的动力。如果你在阅读本书过程中有任何疑问,欢迎你加入以下QQ交流群:437374015。我们会在第一时间为你答疑解惑,并更新一些在线教程。
最后,非常感谢在背后支持我编写此书的家人、学生以及同事,有了他们的支持,我才有足够的精力和时间去完成此书。
张克发
About the Authors 作者简介
闫兴亚,教授,西安邮电大学数字艺术学院副院长、西安市虚拟现实沉浸式拍摄系统工程技术研究中心技术委员会主任、西安邮电大学数字文化产业研究院执行副院长。主要从事增强现实、虚拟现实及混合现实领域的相关研究工作。
张克发,《AR与VR开发实战》作者,主要从事游戏开发、AR/VR项目开发等,曾主导开发多个AR/VR商业项目,有多年AR/VR领域教学与培训经验。
张画画,软件工程师,毕业于西安邮电大学计算机专业,西部数字经济研究院数字文化产业研究分院虚拟现实增强现实应用研究中心工程师,研究方向为虚拟现实与增强现实技术。
裴梦泽,毕业于西安邮电大学计算机专业,西部数字经济研究院数字文化产业研究分院虚拟现实增强现实应用研究中心工程师,研究方向为虚拟现实与增强现实技术。
马柯,毕业于西安邮电大学计算机专业,西部数字经济研究院数字文化产业研究分院虚拟现实增强现实应用研究中心工程师,研究方向为虚拟现实与增强现实技术。
张世兴,加速想象力AR/VR开发工程师,Unity3D讲师,擅长C#开发语言、UE4蓝图开发,擅长主流AR/VR SDK二次开发,精通全景拍摄及后期制作技术。
赵素晗,毕业于西北大学数字媒体艺术专业,专注于平面设计、新媒体交互设计、原画创作等。
目 录 Contents
寄语
前言
作者简介
第4章 C#编程基础实践55
4.1 Unity引擎介绍55
4.2 Unity界面介绍56
4.3 Unity中的编程语言60
4.4 第一个Unity程序60
4.5 数据类型62
4.6 变量的定义63
4.7 编译错误63
4.8 运算符与表达式64
4.9 控制语句67
4.10 函数或方法69
4.11 数组70
4.12 自定义数据类型71
4.13 继承和多态74
4.14 object类型77
4.15 装箱和拆箱78
4.16 集合81
4.17 比较和排序84
4.18 泛型90
第5章 Unity 3D引擎深入实践92
5.1 GameObject类型92
5.1.1 属性92
5.1.2 构造函数103
5.1.3 方法104
5.2 Component类和Behaviour类108
5.2.1 Component类108
5.2.2 Behaviour类110
5.3 MonoBehaviour类型114
5.3.1 生命周期115
5.3.2 属性122
5.3.3 方法123
5.4 Unity数学基础:向量130
5.4.1 向量的概念和定义131
5.4.2 Unity中的向量132
5.4.3 向量的运算133
5.5 四元数135
5.6 射线检测143
5.6.1 2D射线检测143
5.6.2 3D射线检测151
5.7 Unity文件读写153
5.7.1 小文件读写实例153
5.7.2 文件内容的复制154
5.7.3 大文件读写实例155
5.7.4 使用协程读写文件157
5.8 Unity中的UI系统158
5.8.1 Text文本框158
5.8.2 Image组件161
5.8.3 Canvas渲染模式164
5.8.4 其他控件164
5.8.5 UI的适配165
5.8.6 事件、遮罩、RenderTexture166
5.9 动画系统169
5.9.1 简单动画的制作169
5.9.2 复杂动画的制作172
5.9.3 动画的切分175
5.10 资源加载175
5.10.1 预制体prefab175
5.10.2 预制体的实例化177
5.10.3 Resources加载资源180
5.10.4 Resources异步加载181
5.10.5 场景切换182
第6章 打砖块游戏案例开发185
6.1 案例介绍185
6.2 场景搭建185
6.3 小球运动187
6.4 碰撞检测188
第7章 HoloLens开发基础实践194
7.1 使用Windows Device Portal194
7.2 安装HoloLens开发工具196
7.3 HoloLens模拟器的使用197
7.4 配置适用于HoloLens开发的Unity工程199
7.5 Camera摄像机设置204
7.6 凝视功能实现204
7.7 手势功能实现206
7.8 语音输入功能实现209
7.9 世界锚与场景保持功能实现213
7.10 空间音效功能实现219
7.11 空间映射功能实现220
第8章 HoloLens汽车展示案例开发224
8.1 工程介绍224
8.2 工程搭建224
8.2.1 新建工程225
8.2.2 资源包下载226
8.2.3 车模型下载227
8.3 视频播放功能实现 228
8.4 车的移动功能实现233
8.5 车漆变色功能实现236
8.6 车的拆解功能实现239
8.7 总结243
第9章 0glass AR应用开发基础244
9.1 开发介绍244
9.2 开发案例246
9.2.1 AR编辑246
9.2.2 算法设计248
9.2.3 流程编辑254
9.2.4 应用执行255
9.2.5 后台查询257
第10章 MulSDK应用开发258
10.1 开发工具258
10.2 开发过程258
第11章 HiAR 2D SDK集成开发基础266
11.1 HiAR Glasses简介266
11.2 HiAR 2D SDK 简介267
11.3 基于HiAR Glasses的HiAR 2D SDK集成开发267
11.4 HiAR 2D SDK集成应用开发举例272
第12章 基于EasyAR的WebAR开发274
12.1 EasyAR SDK274
12.1.1 EasyAR SDK介绍274
12.1.2 EasyAR SDK部分先进功能简介275
12.2 EasyAR CRS 275
12.3 EasyAR WebAR276
12.4 EasyAR Studio277
12.5 EasyAR教程277
12.5.1 WebAR开发277
12.5.2 WebAR小程序开发282
- 点赞
- 收藏
- 关注作者
评论(0)