编辑推荐
介绍了AR开发中所广泛使用的Vuforia与EasyAR引擎的使用,并对Oculus的开发流程进行了讲解
介绍了基于Cardboard VR、Gear VR与HTC Vive设备的开发步骤
后两章分别给出了一个完整的VR游戏案例与一个AR、VR相结合的科普类应用案例。帮助读者学以致用
内容简介
本书共分11章,主要讲解了VR和AR的开发和应用,主要内容为:增强现实以及AR工具介绍,Unity开发环境搭建及Vuforia开发环境搭建,Vuforia核心功能,如扫描图片、圆柱体识别、多目标识别、文字识别、云识别、物体识别和案例等,EasyAR开发知识,基于Unity开发VR,Cardboard VR开发,三星Gear VR应用开发,HTC Vive平台VR开发。通过两大综合案例Gear VR游戏—Breaker和科普类AR&VR;应用—星空探索,为读者全面展示AR/VR案例开发的过程,使读者尽快进入实战角色。
本书适合程序员、AR/VR开发者、AR/VR爱好者,以及大专院校相关专业的师生学习用书和培训学校的教材。
作者简介
吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,有10多年的Java开发与培训经验。主要的研究方向为OpenGL ES、手机游戏、Java EE以及搜索引擎。同时为手机游戏、Java EE独立软件开发工程师,现任职于华北理工大学并兼任华北理工大学以升大学生创新实验中心移动及互联网软件工作室负责人。十多年来不但指导学生多次制作手游作品获得多项学科竞赛大奖,还为数十家知名企业培养了上千名高级软件开发人员。曾编写过《OpenGL ES 3.0游戏开发(上下卷)》、《Unity 5.X 3D游戏开发技术详解与典型案例》、《Unity 4 3D开发实战详解》、《Unity游戏案例开发大全》、《Android应用案例开发大全》(第1版、第二版及第三版)、《Android游戏开发大全》(第1版、第二版及第三版)等多本畅销技术书籍。2008年初开始关注Android平台下的3D应用开发,并开发出一系列优质的Android应用程序与3D游戏。
目录
第1章 初见增强现实 1
1.1 增强现实简介 1
1.2 AR工具简介 1
1.3 Unity开发环境搭建 2
1.3.1 Windows平台下Unity的下载
及安装 2
1.3.2 Mac OS平台下Unity的下载及安装 6
1.3.3 目标平台的SDK与Unity集成 9
1.4 Vuforia开发环境的搭建 12
1.5 本章小结 16
1.6 习题 16
第2章 Vuforia核心功能介绍 17
2.1 扫描图片—Image Target 17
2.2 圆柱体识别—Cylinder Targets 18
2.2.1 图片标准 18
2.2.2 如何获取实际物体的具体
参数 18
2.2.3 如何制作自定义的商标 19
2.2.4 如何达到最好的效果 20
2.3 多目标识别—MultiTargets 20
2.3.1 多目标识别原理 21
2.3.2 对多目标识别的选择建议 21
2.4 标记框架—Frame Markers 21
2.5 文字识别—Text Recognition 22
2.5.1 可识别字体格式 22
2.5.2 使用文本识别 22
2.5.3 应用过滤器 23
2.6 用户自定义目标—User Defined Targets 23
2.6.1 适合被追踪的场景和物体 24
2.6.2 介绍用户自定义目标预
制件 24
2.7 虚拟按钮—Virtual Button 24
2.7.1 按钮的设计以及布局 24
2.7.2 虚拟按钮的相关特性 25
2.7.3 虚拟按钮的摆放 25
2.8 云识别—Cloud Recognition 26
2.8.1 云识别的优势以及注意
事项 26
2.8.2 云识别的两种管理方式 26
2.9 智能地形—SmartTerrain 28
2.9.1 智能地形子对象 28
2.9.2 使用范围及设备要求 29
2.9.3 智能地形工作原理 29
2.10 物体识别—Object Recognition 30
2.10.1 可识别物体 30
2.10.2 下载Vuforia扫描仪 31
2.10.3 扫描3D物体步骤 31
2.11 本章小结 33
2.12 习题 33
第3章 Vuforia核心功能官方案例
详解 35
3.1 官方案例下载及ARCamera参数
讲解 35
3.2 扫描图片官方案例详解 37
3.2.1 预制件通用脚本介绍 38
3.2.2 运行效果 39
3.2.3 开发流程 40
3.3 圆柱识别案例详解 43
3.3.1 运行效果 43
3.3.2 开发流程 43
3.4 多目标识别案例详解 47
3.4.1 运行效果 48
3.4.2 开发流程 48
3.5 标记框架案例详解 53
3.5.1 运行效果 53
3.5.2 开发流程 53
3.6 文字识别案例详解 54
3.6.1 运行效果 54
3.6.2 开发流程 55
3.7 自定义目标识别案例详解 58
3.7.1 运行效果 59
3.7.2 开发流程 59
3.8 虚拟按钮案例详解 63
3.8.1 运行效果 63
3.8.2 开发流程 63
3.9 云识别案例详解 69
3.9.1 运行效果 69
3.9.2 开发流程 69
3.10 智能地形案例 75
3.10.1 基础案例 75
3.10.2 Penguin案例 78
3.11 3D物体识别案例详解 80
3.11.1 运行效果 80
3.11.2 开发流程 81
3.12 本章小结 84
3.13 习题 84
第4章 EasyAR概述 85
4.1 EasyAR基础知识讲解 85
4.1.1 EasyAR基本介绍 85
4.1.2 EasyAR SDK下载及官方案例导入 85
4.2 EasyAR图片识别功能 89
4.2.1 案例效果 89
4.2.2 案例详解 89
4.3 EasyAR视频播放功能 93
4.3.1 案例效果 93
4.3.2 案例详解 94
4.4 本章小结 99
4.5 习题 99
第5章 基于Unity开发的VR设备
初探 101
5.1 基于Unity开发的VR设备 101
5.1.1 Oculus Rift 101
5.1.2 Microsoft HoloLens全息
眼镜 104
5.1.3 Gear VR 104
5.1.4 PlayStation VR 105
5.1.5 HTC Vive 105
5.2 Oculus Rift环境配置与简要介绍 105
5.2.1 Oculus Rift安装 106
5.2.2 Oculus系统托盘 108
5.2.3 Oculus PC SDK开发准备 109
5.2.4 游戏手柄的使用 110
5.2.5 Unity整合包简单介绍 110
5.3 移动控制 113
5.3.1 基础知识 113
5.3.2 移动控制的案例 115
5.4 准星的开发 118
5.4.1 基础知识 119
5.4.2 准星开发案例 119
5.5 菜单界面的开发 123
5.5.1 场景的搭建 124
5.5.2 C#脚本的开发 126
5.6 综合案例 129
5.6.1 场景的搭建 130
5.6.2 着色器及相关脚本的开发 132
5.7 本章小结 137
5.8 习题 138
第6章 Cardboard VR开发 139
6.1 Cardboard SDK基本介绍 139
6.1.1 Cardboard SDK的下载与
导入 140
6.1.2 SDK官方预制件 141
6.1.3 SDK中的脚本文件 143
6.2 Cardboard SDK官方案例 144
6.3 一个综合案例 148
6.3.1 获取蓝牙手柄键值 149
6.3.2 场景一的搭建与开发 150
6.3.3 场景二的搭建与开发 153
6.4 本章小结 156
6.5 习题 156
第7章 三星Gear VR应用开发 157
7.1 Gear VR概览 157
7.1.1 初识Gear VR 157
7.1.2 Oculus Home 158
7.2 开发前的准备 159
7.2.1 下载Oculus Mobile SDK 159
7.2.2 获取Oculus签名文件 160
7.2.3 相关软硬件的基本要求 161
7.3 Oculus Mobile SDK概述 162
7.3.1 SDK文件目录介绍 162
7.3.2 脚本功能介绍 163
7.3.3 OVRCameraRig脚本
介绍 163
7.3.4 外设输入接口开发 165
7.3.5 场景加载时的淡入效果
脚本 169
7.4 游戏性能问题 170
7.4.1 硬件介绍以及降低性能的
因素 170
7.4.2 开发中需要注意的问题 171
7.5 一个简单的案例 171
7.5.1 案例功能简介 172
7.5.2 VR场景搭建 172
7.5.3 UGUI事件监听系统 174
7.5.4 追踪光标的实现 176
7.5.5 触摸板事件监听 177
7.5.6 部署运行APK的步骤 178
7.6 本章小结 179
7.7 习题 179
第8章 HTC Vive 平台VR开发简介 181
8.1 HTC Vive基本介绍 181
8.1.1 设备的安装 183
8.1.2 Viveport和手机通知 186
8.2 SDK基本介绍 188
8.2.1 下载Steam VR 188
8.2.2 Vive SDK的下载及导入 189
8.2.3 SDK中的官方预制件 190
8.3 SDK案例讲解 192
8.4 SDK脚本讲解 194
8.4.1 SteamVR_GazeTracker脚本详解 194
8.4.2 SteamVR_LaserPointer脚本详解 196
8.4.3 SteamVR_TestTrackedCamera脚本详解 198
8.4.4 SteamVR_TrackedController脚本详解 199
8.5 本章小结 201
8.6 习题 201
第9章 VR与AR创新风口 203
9.1 虚拟现实技术 203
9.2 增强现实技术 206
9.3 混合现实技术 209
9.4 本章小结 211
9.5 习题 211
第10章 GEAR VR游戏—
Breaker 213
10.1 背景以及功能概述 213
10.1.1 游戏背景概述 213
10.1.2 游戏功能简介 213
10.2 游戏的策划及准备工作 215
10.2.1 游戏的策划 215
10.2.2 使用Unity开发游戏前的
准备工作 216
10.3 游戏的架构 218
10.3.1 各个场景的简要介绍 218
10.3.2 游戏架构简介 219
10.4 Gear VR开发环境的搭建 219
10.5 游戏菜单场景的开发 220
10.5.1 场景的搭建及相关设置 221
10.5.2 各对象的脚本开发及相关
设置 223
10.6 关卡场景的开发 228
10.6.1 场景的搭建 228
10.6.2 摄像机设置及脚本开发 230
10.6.3 小球的脚本开发 234
10.6.4 插件的使用 237
10.6.5 场景机关的开发 240
10.6.6 提示面板的开发 243
10.7 游戏的优化与改进 245
第11章 科普类AR&VR;应用—
星空探索 247
11.1 项目背景以及功能概述 247
11.1.1 项目开发背景概述 247
11.1.2 软件功能简介 248
11.2 软件的策划及准备工作 250
11.2.1 软件的策划 250
11.2.2 资源的准备工作 251
11.3 软件的架构 252
11.3.1 功能结构介绍 252
11.3.2 各个脚本简要介绍 253
11.4 天文学基础以及相关计算公式 255
11.4.1 重要天文坐标系 255
11.4.2 行星、月球、深空天体
简介 257
11.4.3 行星运行轨迹计算 258
11.4.4 月球运行轨迹计算 261
11.4.5 儒略日计算 264
11.5 观察星空模块的开发 265
11.5.1 数据的存储与读取技术的
开发 265
11.5.2 星座以及深空天体相关内容
的绘制 269
11.5.3 八大行星以及月球的
绘制 272
11.5.4 深空天体介绍场景的
开发 276
11.5.5 天体及连线着色器的
开发 278
11.6 太阳系普通模式的开发 279
11.6.1 太阳系场景的搭建 279
11.6.2 行星及卫星脚本开发 280
11.6.3 太阳特效及小行星带的
开发 281
11.7 太阳系增强现实(AR)模式的
开发 283
11.7.1 AR开发前期准备 284
11.7.2 场景搭建过程 285
11.7.3 摄像机自动对焦脚本的
开发 287
11.8 太阳系虚拟现实(VR)模式的
开发 288
11.8.1 CardBoard SDK使用 288
11.8.2 构建应用并部署到Android
设备 289
11.8.3 将太阳系场景开发成VR
模式 289
11.9 蓝牙摇杆使用及其他设置功能的
实现 290
11.9.1 蓝牙摇杆控制脚本开发 290
11.9.2 VR开关、摇杆灵敏度、
音效及时间缩放因子的
开发 291
11.9.3 主菜单脚本的开发 291
11.9.4 陀螺仪脚本开发 294
11.10 本章小结 295
参考文献 296
VR与AR开发高级教程 基于Unity 电子书 下载 mobi epub pdf txt