关于我们
书单推荐
新书推荐
|
虚拟现实与增强现实理论与实践 读者对象:可以作为高等院校虚拟现实技术、数字媒体技术和教育技术专业的教学用书,也可以作为虚拟现实和增强现实工程技术人员和VR/AR项目开发爱好者的参考用书。
本书围绕虚拟现实技术领域的人才需求和岗位要求进行内容设计,首先介绍虚拟现实与增强现实的基础理论和关键技术,分析虚拟现实与增强现实在相关专业领域中的应用状况及人才需求;然后重点介绍Unity(VR 引擎工具)的基本操作与开发基础、C#语言基础、基于Unity 进行用户界面的开发及交互逻辑和物理引擎的应用、HTC VIVE 平台的VR 开发基础、AR 应用的开发基础等内容。 本书以虚拟现实与增强现实项目开发流程中涉及的基础知识和关键技术为主线,辅以相关的应用开发案例,紧扣虚拟现实与增强现实行业的人才培养要求。 本书结构完整、内容系统全面、案例丰富,既适合Unity 3D 开发的初学者学习,也适合对游戏开发、工业设计、建筑设计等虚拟现实与增强现实应用开发感兴趣的设计者学习,还可以作为相关高校及培训机构虚拟现实与增强现实相关专业的教材或参考书。
单美贤,南京邮电大学教育科学技术学院教授。从教超过20年,拥有丰富的从教经验。编写过多部专著、教材等,写作经验丰富。曾获"江苏高校第九届哲学社会科学研究优秀成果奖二等奖(2014.7)、江苏高校第八届哲学社会科学研究优秀成果奖二等奖(2012.11)、江苏省第三届教育科学优秀成果奖三等奖(2011.11)、江苏省高校教学管理研究会优秀论文二等奖(2013.7)、2012年度南京邮电大学先进工作者”等多项奖励。
第1 章 绪论 ......................................... 1
1.1 VR 与AR 的概念 .................................. 1 1.1.1 VR 的定义 ................................. 1 1.1.2 VR 的特点 ................................. 2 1.1.3 AR 的定义 ................................. 3 1.1.4 AR 的特点 ................................. 4 1.1.5 MR 和XR 的定义 ..................... 4 1.2 VR 的发展历史 ..................................... 6 1.2.1 探索阶段 ................................... 6 1.2.2 萌芽阶段 ................................... 8 1.2.3 发展阶段 ................................... 9 1.2.4 成熟阶段 ................................. 10 1.3 AR 的发展历史 ................................... 12 1.4 VR 系统与AR 系统的组成 ................ 13 1.4.1 VR 系统的组成 ....................... 13 1.4.2 VR 系统的生成设备 ............... 14 1.4.3 VR 系统的输入设备 ............... 17 1.4.4 VR 系统的输出设备 ............... 24 1.4.5 AR 系统的组成 ....................... 32 1.5 VR 技术与AR 技术的应用 ................ 34 1.5.1 VR 技术的应用 ....................... 34 1.5.2 AR 技术的应用 ....................... 37 1.6 数字孪生 .............................................. 39 1.6.1 数字孪生的概念 ..................... 39 1.6.2 数字孪生与仿真的区别 .......... 40 1.6.3 数字孪生与VR 的区别 .......... 41 1.7 元宇宙 ................................................. 41 1.7.1 元宇宙的概念 ......................... 42 1.7.2 元宇宙与VR 的区别 .............. 43 本章小结 ...................................................... 44 习题 ............................................................ 44 第2 章 VR 系统的关键技术 ............... 45 2.1 VR 中的计算机图形学基础 ............... 45 2.1.1 坐标系 ..................................... 46 2.1.2 视图变换 ................................. 47 2.1.3 渲染管线 ................................. 55 2.2 VR 建模方法 ....................................... 58 2.2.1 基于几何图形绘制的 建模方法 ................................. 58 2.2.2 基于图像绘制的建模方法 ...... 64 2.2.3 基于图形与图像的 混合建模方法 ......................... 68 2.2.4 虚拟场景建模方法的对比 ...... 69 2.3 VR 内核引擎与开发平台 ................... 70 2.3.1 内核引擎 ................................. 70 2.3.2 开发平台 ................................. 74 本章小结 ...................................................... 76 习题 ............................................................ 76 第3 章 77 Unity 的开发环境.................................. 77 3.1 Unity 的简介 ....................................... 77 3.1.1 Unity 的发展历史 ................... 77 3.1.2 Unity 的特色 ........................... 78 3.1.3 Unity 的应用领域 ................... 79 3.2 Unity 的下载与安装 ............................ 81 3.2.1 Unity 的主要版本 ................... 81 3.2.2 Unity Hub 的下载与安装 ........ 82 3.2.3 Unity 的版本选择 ................... 84 3.2.4 首次运行Unity 软件 .............. 84 3.3 Unity 的窗口布局 ................................ 86 3.3.1 窗口布局 ................................. 87 3.3.2 工具栏 ..................................... 88 3.3.3 常用工作视图 ......................... 89 3.4 实例演示:创建静态虚拟人物 .......... 93 3.4.1 利用基本物体创建 静态虚拟人物 ......................... 93 3.4.2 绑定摄像机以实现第一 人称视角的简单运动 .............. 95 3.5 在Unity 项目中导入资源 ................... 96 3.5.1 本地资源导入 ......................... 97 3.5.2 在线资源导入 ......................... 97 本章小结 ...................................................... 99 习题 ............................................................ 99 第4 章 Unity 中的地形 ..................... 100 4.1 Unity 地形编辑工具 .......................... 100 4.1.1 在Unity 中创建地形 ............ 100 4.1.2 地形编辑工具 ....................... 102 4.1.3 地形设置 ............................... 102 4.1.4 绘制地形 ............................... 103 4.1.5 绘制树木与花草 ................... 106 4.1.6 添加水效果 ........................... 107 4.2 Unity 制作地形的常用插件 .............. 108 4.2.1 Gaia ........................................ 108 4.2.2 TerrainComposer2 ................. 109 4.2.3 WorldComposer ..................... 109 4.2.4 利用在线资源商店 构建地形 ............................... 110 本章小结 .................................................... 113 习题 .......................................................... 113 补充:导入环境资源包错误处理 ............. 113 第5 章 材质基础 .............................. 116 5.1 基本概念 ........................................... 116 5.1.1 材质的概念 ........................... 116 5.1.2 着色器的概念 ....................... 117 5.1.3 纹理的概念 ........................... 117 5.1.4 基于物理的渲染:PBR 理论 117 5.1.5 材质、着色器与纹理的关系 118 5.2 使用方法 ........................................... 119 5.2.1 材质的使用方法 ................... 120 5.2.2 标准着色器的使用方法 ........ 121 5.2.3 纹理的使用方法 ................... 125 5.3 Unity 的内置着色器 .......................... 128 5.3.1 天空盒 ................................... 128 5.3.2 粒子系统 ............................... 132 5.3.3 Unlit 渲染管线 ...................... 136 本章小结 .................................................... 137 第6 章 Unity 中的光照 ..................... 138 6.1 Unity 光照 ......................................... 138 6.1.1 基本灯光的共有属性 ............ 138 6.1.2 平行光 ................................... 139 6.1.3 点光源 ................................... 140 6.1.4 聚光灯 ................................... 140 6.2 光照贴图 ............................................ 141 6.2.1 什么是光照信息.................... 141 6.2.2 直接光照与间接光照 ............ 142 6.2.3 Unity 中的全局光照技术 ...... 143 6.3 “Lighting”窗口 .............................. 144 6.3.1 “Scene”选项卡 .................. 145 6.3.2 “Environment”选项卡 ....... 147 6.3.3 “Realtime Lightmaps” 选项卡 ................................... 149 6.3.4 “Baked Lightmaps” 选项卡 ................................... 150 6.4 Unity 中烘焙光照案例的实现 .......... 150 6.4.1 搭建烘焙光照测试场景 ........ 150 6.4.2 设置游戏对象参与 烘焙光照贴图 ....................... 151 6.4.3 设置Lighting Settings 参数 ....................................... 151 6.5 光照探针 ............................................ 152 6.5.1 光照探针的用途.................... 153 6.5.2 光照探针组 ........................... 153 本章小结 .................................................... 154 第7 章 Unity 脚本编程 ..................... 155 7.1 C#程序设计基础 ............................... 155 7.1.1 C#语言的数据类型 ............... 155 7.1.2 C#语言的运算符与表达式 ... 160 7.1.3 C#语言的程序控制语句 ....... 160 7.2 Hello World:你的首个程序 ............ 162 7.2.1 创建新项目 ........................... 162 7.2.2 创建C#脚本 .......................... 163 7.2.3 运行C#脚本 .......................... 165 7.2.4 Start()与Update()函数的 区别 ....................................... 166 7.2.5 Unity 中默认函数的执行 顺序 ....................................... 167 7.3 C#语言的类与对象 ........................... 169 7.3.1 在Unity 中理解类与对象 .... 169 7.3.2 类与对象 ............................... 170 7.4 Unity 的重要变量类型 ...................... 173 7.4.1 Vector3 ................................... 173 7.4.2 Color ...................................... 174 7.4.3 Screen .................................... 175 7.4.4 GameObject ........................... 176 7.5 GameObject 及其组件 ...................... 176 7.5.1 Transform 组件 ...................... 177 7.5.2 Mesh Filter 组件 .................... 179 7.5.3 Script 组件 ............................. 180 7.6 Unity 的物理系统 ............................. 180 7.6.1 RigidBody 组件 ..................... 180 7.6.2 Collider 组件 ......................... 181 7.6.3 碰撞检测与触发检测............ 183 7.6.4 综合练习—发射小球游戏 184 本章小结 .................................................... 190 习题 .......................................................... 190 第8 章 UI 系统 ................................. 192 8.1 Canvas 组件 ....................................... 192 8.1.1 渲染模式 ............................... 193 8.1.2 自适应屏幕 ........................... 193 8.1.3 锚点及其对齐方式 ............... 194 8.1.4 Canvas 优化 ........................... 195 8.2 基础元素 ........................................... 195 8.2.1 Text 组件 ............................... 195 8.2.2 Image 组件 ............................ 196 8.2.3 Raw Image 组件 .................... 197 8.2.4 Button 组件............................ 198 8.2.5 InputField 组件 ...................... 201 8.2.6 场景管理 ............................... 203 8.3 EventSystem 组件 .............................. 206 8.3.1 输入模块 ............................... 206 8.3.2 UI 事件 .................................. 207 8.3.3 UI 事件管理 .......................... 208 8.4 GUI .................................................... 210 8.4.1 使用GUI 创建控件 .............. 210 8.4.2 GUI 基本控件 ....................... 213 8.4.3 GUILayout 自动布局 ............ 215 本章小结 .................................................... 217 习题 .......................................................... 217 第9 章 Unity 数据的读取 ................. 218 9.1 JSON 文件操作 ................................. 218 9.1.1 JSON 的基本语法 ................. 218 9.1.2 创建JSON 文件 .................... 219 9.1.3 读取JSON 数据 .................... 221 9.1.4 解析JSON 数据 .................... 222 9.1.5 修改JSON 数据 .................... 223 9.2 本地数据持久化类 ............................ 224 9.2.1 PlayerPrefs ............................. 225 9.2.2 PlayerPrefs 保存 复杂结构 ............................... 226 9.2.3 运行期间读写文本 ................ 227 9.3 XML 文件操作 .................................. 229 9.3.1 创建XML 文件 ..................... 229 9.3.2 读取XML 数据 ..................... 231 9.3.3 修改XML 数据 ..................... 232 本章小结 .................................................... 233 习题 .......................................................... 233 第10 章 3D 游戏原型: 《小鸟吃金币》 ................... 234 10.1 项目准备工作 .................................. 234 10.1.1 创建游戏对象 ..................... 235 10.1.2 摄像机位置 ......................... 238 10.1.3 设置游戏面板 ..................... 240 10.1.4 游戏对象的动作流程图 ...... 240 10.2 小鸟运动 ......................................... 241 10.2.1 小鸟飞行 ............................. 241 10.2.2 摄像机跟随小鸟运动 .......... 243 10.2.3 音乐片段播放 ..................... 244 10.2.4 小鸟碰撞到障碍物 ............. 245 10.3 小鸟吃金币...................................... 247 10.3.1 随机生成金币 ..................... 248 10.3.2 统计小鸟吃到的金币数 ...... 249 10.3.3 为当前场景保存一个 副本 ..................................... 251 10.4 图形用户界面和游戏管理 .............. 251 10.4.1 计分器界面 ......................... 251 10.4.2 吃到金币时加分 ................. 252 10.4.3 游戏失败界面 ..................... 253 10.4.4 弹出游戏失败界面 ............. 254 10.4.5 添加最高分纪录 ................. 257 10.4.6 PlayerPrefs ........................... 258 10.5 项目导出设置 .................................. 259 本章小结 .................................................... 261 习题 .......................................................... 261 第11 章 HTC VIVE 平台的 VR 开发基础 ...................... 262 11.1 HTC VIVE 的简介 .......................... 262 11.1.1 HTC VIVE 设备 .................. 263 11.1.2 HTC VIVE 技术 .................. 264 11.1.3 HTC VIVE 应用软件 .......... 265 11.2 VR 项目的开发基础 ....................... 269 11.2.1 HTC VIVE 设备连接 .......... 269 11.2.2 VR 项目的开发流程 ........... 270 11.2.3 VR 项目开发的辅助工具 ... 271 11.3 第一个HTC VIVE 项目 .................. 272 11.3.1 设置SteamVR ..................... 272 11.3.2 设置HTC VIVE .................. 273 11.3.3 体验VR ............................... 277 11.4 使用Unity 进行VR 交互开发 ....... 278 11.4.1 使用OpenVR 实现 瞬间移动 ............................. 278 11.4.2 使用VRTK 实现物体 抓取 ..................................... 285 11.4.3 使用XR Interaction Toolkit 实现UI 触控交互 ............... 288 本章小结 .................................................... 292 第12 章 AR 应用的开发基础 ........... 293 12.1 AR 系统的结构与核心技术 ........... 293 12.1.1 AR 系统的基本结构 ........... 293 12.1.2 AR 系统的显示技术 ........... 294 12.1.3 AR 系统的跟踪注册技术 ..... 296 12.2 Vuforia ............................................. 298 12.2.2 Vuforia 平台组件 ................ 299 12.2.1 AR 应用的开发插件 ........... 299 12.2.3 Vuforia 开发环境的搭建 .... 300 12.3 Vuforia 的核心功能 ........................ 302 12.3.1 图像识别 ............................. 302 12.3.2 多目标识别 ......................... 303 12.3.3 云识别 ................................. 304 12.3.4 水平面识别 ......................... 304 12.4 Vuforia 官方案例 ............................ 305 12.4.1 下载官方案例 ..................... 305 12.4.2 AR Camera .......................... 306 12.5 使用Vuforia 制作AR 项目 ............ 307 12.5.1 添加许可密钥 ..................... 307 12.5.2 Target Manager .................... 309 12.5.3 创建一个ImageTarget ........ 312 本章小结 .................................................... 313 习题 .......................................................... 313 附录A 简易第一人称控制器的实现 .. 314 A.1 了解角色控制器与输入管理器 ....... 314 A.2 创建项目与搭建场景 ....................... 315 A.3 脚本实现FPS Controller .................. 316 参考文献 ......................................... 319
你还可能感兴趣
我要评论
|