编辑推荐
本书共分11章,主要讲解了VR和AR的开发和应用,主要内容为:增强现实以及AR工具介绍,Unity开发环境搭建及Vuforia开发环境搭建,Vuforia核心功能,如扫描图片、圆柱体识别、多目标识别、文字识别、云识别、物体识别和案例等,EasyAR开发知识,基于Unity开发VR,CardboardVR开发,三星GearVR应用开发,HTCVive平台VR开发。通过两大综合案例GearVR游戏—Breaker和科普类AR&VR应用—星空探索,为读者全面展示AR/VR案例开发的过程,使读者尽快进入实战角色。本书适合程序员、AR/VR开发者、AR/VR爱好者,以及大专院校相关专业的师生学习用书和培训学校的教材。
作者简介
吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Ja应用的开发,有10多年的Ja开发与培训经验。主要的研究方向为OpenGLES、手机游戏、JaEE以及搜索引擎。同时为手机游戏、JaEE独立软件开发工程师,现任职于华北理工大学并兼任华北理工大学以升大学生创新实验中心移动及互联网软件工作室负责人。十多年来不但指导学生多次制作手游作品获得多项学科竞赛大奖,还为数十家知名企业培养了上千名高级软件开发人员。曾编写过《OpenGLES3.0游戏开发(上下卷)》、《Unity5.X3D游戏开发技术详解与典型案例》、《Unity43D开发实战详解》、《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