编辑推荐
这是一本专为虚拟现实开发初中级读者打造的教程,也是经Unity公司审定的官方教程。
《Unity 2017虚拟现实开发标准教程》作者邵伟是Unity官方认证的优秀老师,不论是项目开发还是虚拟现实教学,经验都非常丰富,书中案例的讲解和开发思路的介绍深入浅出,不论是初级学习者还是有一定经验的Unity用户,都能学到有益的知识。
另外,为了让读者学习更加有效,特单独提供了本书案例资源。读者可以扫描封面勒口出的二维码,按照说明步骤进行下载。
内容简介
Unity是一款虚拟现实开发软件,功能强大,操作简单,界面友好。使用Unity可以轻松实现各种虚拟现实素材的整合,如材质、UI、光照、模型、贴图、动画特效、音频等,结合Unity完美的引擎和友好的程序开发平台,可以很容易制作出适合各种平台发布的虚拟现实应用产品。本书共设计了20 章内容,包含虚拟现实基础知识、Unity 软件编辑器基础知识、材质技术、UI技术、光照技术、动画/电影内容创作技术、滤镜效果技术、音频技术、主流硬件平台设备介绍,以及Unity虚拟现实开发参考案例、开发流程、注意原则、官方项目学习示例、全景视频技术和在各硬件平台上的开发示范案例和项目性能优化等。在本书的第20章还剖析了一个目前使用较广的地产室内项目,以便读者能综合书中所学知识,实际应用在具体项目中。
作者简介
邵伟,淄博木子信息科技有限公司创始人,淄博文正软件科技有限公司联合创始人兼技术总监,蛮牛教育认证VR技术讲师。参与国家电网基于全息投影交互技术实训平台、国网技术学院配网三维仿真培训系统、国家电网李家站3D操作演示程序、HTC VIVE房产项目实战教程、VR瓷砖展厅等多个项目的开发,经验丰富。
目录
- 第1章 虚拟现实基础知识
- 1.1 什么是虚拟现实 2
- 1.2 虚拟现实的发展历史 2
- 1.3 虚拟现实的现状 3
- 1.4 虚拟现实的未来 4
- 1.5 虚拟现实技术基础知识 4
- 1.5.1 虚拟现实技术原理 4
- 1.5.2 虚拟现实常见术语 5
- 1.5.3 体验虚拟现实过程中会遇到的挑战 5
- 1.5.4 虚拟现实(VR)与增强现实(AR)的区别 6
- 第2章 Unity编辑器基础知识
- 2.1 Unity产品介绍 8
- 2.1.1 Unity简介 8
- 2.1.2 获取Unity 9
- 2.2 Unity 编辑器学习页 12
- 2.3 视图 15
- 2.3.1 项目(Project)面板 15
- 2.3.2 场景(Scene)面板 16
- 2.3.3 游戏(Game)面板 16
- 2.3.4 属性(Inspector)面板 17
- 2.3.5 层级(Hierarchy)面板 17
- 2.4 Unity开发的常用工具 17
- 2.4.1 Visual Studio 18
- 2.4.2 Visual Studio Code 20
- 2.4.3 Git 22
- 2.4.4 Unity Collaborate 23
- 2.5 Unity 脚本基础 26
- 2.5.1 概述 26
- 2.5.2 Unity 事件函数执行顺序 26
- 2.5.3 Unity 事件系统 29
- 第3章 Unity在 VR 中的材质技术
- 3.1 基于物理的渲染理论(PBR) 32
- 3.1.1 PBR / PBS 概述 33
- 3.1.2 PBR 主要贴图类型 34
- 3.2 Unity 材质基础知识 36
- 3.2.1 概述 36
- 3.2.2 Standard Shader 36
- 3.3 使用 PBR 材质的环境设置 38
- 3.3.1 色彩空间(Color Space):Linear 与 Gamma 38
- 3.3.2 开启摄像机HDR模式 39
- 3.4 Look Dev 和 PBR Material Validator 工具 39
- 3.4.1 Look Dev 39
- 3.4.2 PBR Material Validator 41
- 第4章 Unity 在 VR 中的 UI 技术
- 4.1 UGUI 系统简介 43
- 4.2 VR 中的 UI 46
- 4.2.1 World Space UI 46
- 4.2.2 VR 中的 UI 交互 48
- 第5章 Unity 在 VR 中的光照技术
- 5.1 Unity 2017 的光照系统概述 50
- 5.2 主要光照管理工具 50
- 5.2.1 Lighting 面板 50
- 5.2.2 Light Explorer 51
- 5.3 全局照明(Global Illuminatio) 51
- 5.4 光照模式(Lighting Modes) 52
- 5.4.1 实时模式和实时全局照明 53
- 5.4.2 混合模式和混合照明(Mixed Lighting) 54
- 5.4.3 Baked 模式和烘焙光照贴图(Baked Lightmaps) 55
- 5.5 光照探头(Light Probes) 58
- 5.6 VR 中的全局照明策略 59
- 5.7 The Lab Renderer 简介 60
- 5.7.1 来自The Lab 的渲染器 60
- 5.7.2 The Lab Renderer 应用步骤 60
- 第6章 动画/电影内容创作技术:Timeline
- 6.1 Timeline简介 63
- 6.2 Timeline Asset 与 Timeline Instance 64
- 6.3 Timeline编辑器窗口 64
- 6.3.1 预览和选择Timeline 65
- 6.3.2 播放控制 66
- 6.3.3 轨道列表(Track List) 67
- 6.4 录制动画片段 68
- 6.4.1 录制 68
- 6.4.2 转换为动画片段 69
- 6.4.3 使用曲线视图 70
- 6.5 使用现存动画片段 71
- 6.6 Playable Director组件 71
- 6.6.1 Playable Director 简介 71
- 6.6.2 通过脚本控制Timeline 72
- 6.7 实例制作 72
- 6.7.1 为红色坦克制作动画 73
- 6.7.2 为绿色坦克制作动画 74
- 6.7.3 使用脚本实现动画逻辑 75
- 第7章 滤镜效果技术集合:Post Processing Stack
- 7.1 概述 78
- 7.2 在项目中应用 Post Processing Stack 79
- 7.3 在 VR 中可用的 Post-Processing Stack 80
- 7.3.1 Anti-aliasing(抗锯齿) 80
- 7.3.2 Ambient Occlusion(环境光遮蔽) 81
- 7.3.3 Depth of Field(景深) 81
- 7.3.4 Eye Adaptation(人眼调节/自动曝光) 81
- 7.3.5 Bloom(泛光) 82
- 7.3.6 Color Grading(颜色分级) 83
- 7.3.7 Chromatic Aberration(色差) 83
- 7.3.8 Grai(胶片颗粒) 84
- 7.3.9 Vignette(晕影) 84
- 7.3.10 User LUT (用户自定义 LUT) 85
- 第8章 Unity 在 VR 中的音频技术
- 8.1 概述 87
- 8.2 Unity Audio 基本元素 87
- 8.3 在 Unity 中使用空间音频 89
- 8.4 环绕立体声音频 89
- 8.5 VR 空间化音频开发工具 90
- 8.5.1 Google Resonance Audio 90
- 8.5.2 Oculus Spatializer Unity 91
- 第9章 主流 VR 硬件平台设备介绍
- 9.1 概述 94
- 9.2 HTC VIVE 94
- 9.3 Oculus Rift 95
- 9.4 PS VR 95
- 9.5 Windows Mixed Reality 96
- 9.6 Gear VR 96
- 9.7 Cardboard 97
- 9.8 Daydream 97
- 9.9 Oculus Go 和小米 VR 一体机 98
- 9.10 Unity 2017 对 VR 硬件平台的支持 99
- 第10章 用Unity 制作的 VR 参考案例
- 10.1 The Lab 101
- 10.2 Tilt Brush 101
- 10.3 Blocks 101
- 10.4 Job Simulator 102
- 第11章 用Unity 制作 VR 内容的工作流程
- 11.1 概述 104
- 11.2 资源准备 104
- 11.3 将资源导入Unity 106
- 11.4 场景构建 108
- 11.5 在 Unity 中启用 VR 支持 109
- 11.6 导入VR开发工具包 110
- 11.7 交互开发 110
- 11.8 测试及优化 110
- 11.9 导出项目 111
- 第12章 VR 交互设计需要注意的原则
- 12.1 声音相关 113
- 12.2 移动相关 113
- 12.3 互动相关 115
- 12.4 控制器相关 116
- 12.5 环境相关 117
- 12.6 UI相关 118
- 12.7 用户定位和位置追踪相关 118
- 第13章 示例项目学习:VR Samples解析
- 13.1 概述 120
- 13.2 交互的实现 120
- 13.3 VR中的UI 126
- 13.4 交互体验:基于时间进度的点击 127
- 13.5 交互体验:在VR场景中引导用户视线 129
- 13.6 交互体验:切换场景时的黑屏效果 130
- 第14章 Unity 中的全景视频技术
- 14.1 全景视频 134
- 全景视频的制作方式 134
- 14.2 Video Player组件 135
- 14.3 实例:在 VR 中观看全景视屏 136
- 14.3.1 在场景中播放全景视频 136
- 14.3.2 在 VR 中观看全景视频 138
- 14.3.3 添加 CG 内容 138
- 第15章 HTC VIVE开发
- 15.1 HTC VIVE硬件介绍 141
- 15.1.1 头显硬件规格 142
- 15.1.2 VIVE实现跟踪的原理 142
- 15.1.3 控制器按键介绍 143
- 15.1.4 HTC VIVE 开发推荐 PC 规格 144
- 15.2 OpenVR 145
- 15.3 SteamVR 145
- 15.3.1 安装SteamVR 145
- 15.3.2 SteamVR Unity Plugin 146
- 15.3.3 键值映射及获取按键输入 151
- 15.3.4 使用SteamVR Plugin实现与物体交互 152
- 15.3.5 SteamVR交互系统——InteractioSystem 156
- 15.4 VRTK使用指南 174
- 15.4.1 VRTK插件简介 174
- 15.4.2 获取VRTK 176
- 15.4.3 VRTK的配置 177
- 15.4.4 VRTK中的指针 181
- 15.4.5 VRTK中的传送 184
- 15.4.6 使用VRTK实现与物体的交互 192
- 15.4.7 VRTK中的高亮和振动 202
- 15.4.8 VRTK中与UI的交互 205
- 15.4.9 实例:实现攀爬功能 209
- 15.4.10 实例:实现开关门操作 210
- 15.4.11 头显穿透模型的用户体验优化 213
- 第16章 Gear VR开发
- 16.1 Gear VR硬件环境准备 216
- Gear VR 手柄控制器介绍 216
- 16.2 Gear VR开发环境配置 217
- 16.2.1 软件准备 217
- 16.2.2 Unity编辑器设置 221
- 16.2.3 Oculus Utilities for Unity 223
- 16.3 Gear VR的输入 225
- 16.3.1 手柄输入 225
- 16.3.2 头显输入 226
- 16.4 第一个 Gear VR 应用 227
- 16.4.1 概述 227
- 16.4.2 初始化项目 227
- 16.4.3 构建场景 228
- 16.4.4 控制物体移动 230
- 16.4.5 发布Gear VR项目 231
- 16.5 Gear VR 开发优化原则 231
- 第17章 Cardboard开发
- 17.1 Cardboard硬件准备 233
- 17.2 Cardboard开发环境配置 233
- 17.2.1 设置 Player Settings 参数 233
- 17.2.2 下载并导入Google VR SDK for Unity 234
- 17.2.3 在Unity编辑器中预览应用程序 234
- 17.3 第一个Cardboard应用 235
- 第18章 VR社交
- 18.1 Unity 网络引擎 243
- 18.1.1 概述 243
- 18.1.2 High Level API 243
- 18.1.3 Unity Multiplayer服务 243
- 18.1.4 HLAPI 组件 244
- 18.2 多人联网VR开发(基于Cardboard平台) 248
- 18.2.1 概述 248
- 18.2.2 初始化环境 248
- 18.2.3 添加网络管理组件 249
- 18.2.4 制作玩家预制体并注册 250
- 18.2.5 自定义网络连接逻辑 251
- 18.2.6 处理用户输入 253
- 18.2.7 同步用户状态 254
- 18.2.8 使用百度语音接口实现语音转文字功能 255
- 第19章 VR 项目性能优化
- 19.1 VR 性能优化最佳实践 264
- 19.1.1 概述 264
- 19.1.2 Unity VR 性能优化建议 264
- 19.1.3 Unity VR 性能优化技术 267
- 19.2 Unity性能分析工具 272
- 19.2.1 Profiler 272
- 19.2.2 Frame Debugger 275
- 19.2.3 Memory Profiler 276
- 19.3 其他 VR 硬件平台调试工具 277
- 第20章 综合项目分析——以地产室内项目为例
- 20.1 项目简介 280
- 20.2 初始化VR场景设置 280
- 20.3 添加按键提示 281
- 20.4 显示家具提示信息 282
- 20.5 查看户型图 283
- 20.6 切换家具 286
- 20.7 切换地面材质 288