本书以《虚拟现实应用开发职业技能等级标准》为编写依据,围绕虚拟现实技术的人才需求与岗位能力进行内容设计。在初级、中级内容的基础上,本书介绍了高级三维技术、项目架构设计、高级应用编程、基于虚拟现实引擎的高级开发、性能优化等内容,涵盖了次世代建模、角色动画制作和三维特效制作等技术,以及项目架构需求分析与设计、面向过程和面向对象的高级编程技术、网络编程技术、动画合成技术、运动学原理运用和渲染系统运用等基于虚拟现实引擎的高级开发、性能分析与优化等内容。本书以模块化的结构组织章节,以任务驱动的方式安排内容。本书可作为1+X证书制度试点工作中虚拟现实应用开发职业技能等级证书培训的教材,也可作为期望从事虚拟现实应用开发工作的人员和视觉传达、数字媒体技术、影视制作、动漫游戏开发等相关专业的学生的参考书。
北京大学无线电电子学系硕士毕业,曾在高科技企业从事办公自动化系统的开发应用,是国家计算机和通信专业技术资格考试标准的主要起草或审定者,主持开发过考务管理系统、上机考试系统、阅卷系统。
目 录
第1章 高级三维技术 1
1.1 制作次世代模型 2
1.1.1 导入参考图 2
1.1.2 创建模型基本体 2
1.1.3 模型的UVW展开 5
1.1.4 烘焙 7
1.1.5 绘制高度贴图 8
1.1.6 绘制材质贴图 10
1.1.7 输出贴图 13
1.1.8 添加贴图 13
1.2 制作角色动画 14
1.2.1 蒙皮的概念 14
1.2.2 骨骼绑定 20
1.2.3 添加蒙皮 33
1.2.4 分配整体权重 34
1.2.5 设定动画 37
1.2.6 细致调节权重 38
1.2.7 制作行走动画 46
1.3 制作三维特效 60
1.3.1 Unity粒子系统 60
1.3.2 制作篝火火焰特效 74
1.3.3 制作目的地提示特效 87
1.4 本章小结 94
第2章 项目架构设计 95
2.1 项目架构的需求分析 97
2.1.1 需求的梳理 97
2.1.2 功能和子系统的划分 98
2.1.3 子系统层级结构的设计 99
2.1.4 业务框架的抽象 101
2.1.5 系统架构的规划及优化 102
2.2 项目架构的概要设计 102
2.2.1 模块功能的划分 103
2.2.2 子系统之间交互关系的定义 103
2.2.3 系统架构的描述 105
2.2.4 架构图的搭建 106
2.3 项目架构的详细设计 107
2.3.1 系统框架的搭建 107
2.3.2 公共组件的提取 107
2.3.3 系统框架的完善与优化 108
2.3.4 基础框架的封装 109
2.3.5 基础框架结构的描述 110
2.3.6 业务框架的封装 111
2.3.7 模块功能的开发 112
2.4 本章小结 121
第3章 高级应用编程 122
3.1 面向过程高级编程 123
3.1.1 日志输出与代码调试 123
3.1.2 枚举与结构体 126
3.1.3 位运算 128
3.1.4 函数应用详解 131
3.2 面向对象高级编程 133
3.2.1 构造函数 133
3.2.2 继承 136
3.2.3 多态 139
3.2.4 委托 144
3.2.5 设计模式 145
3.2.6 重载 152
3.2.7 事件 152
3.2.8 接口 154
3.3 网络编程 157
3.3.1 网络编程中的基本概念 157
3.3.2 Socket API简介 160
3.3.3 TCP流式套接字编程 164
3.4 本章小结 175
第4章 基于虚拟现实引擎的高级开发 176
4.1 动画合成 178
4.1.1 动画的创建 178
4.1.2 动画过渡的实现 183
4.1.3 动画中事件的插入 188
4.1.4 动画的混合 189
4.1.5 动画层的使用 193
4.1.6 复杂动画的组合 197
4.1.7 逆运动组件的使用 200
4.1.8 复杂逆运动动画的实现 203
4.2 运动学原理的运用 204
4.2.1 三维坐标函数类的运用——物体位置、旋转和缩放的表示 204
4.2.2 三维坐标函数类的运用——物体移动和旋转效果的实现 205
4.2.3 三维坐标函数类的运用——向量大小和长度的计算 206
4.2.4 三维坐标函数类的运用——插值计算和平滑效果的实现 206
4.2.5 三维坐标函数类的运用——局部坐标与世界坐标的变换 207
4.2.6 运动方向及方向调整的表示 208
4.2.7 向量夹角的计算 209
4.2.8 矩阵函数的运用——物体坐标变换的实现 210
4.2.9 四元数的运用——物体旋转的实现 210
4.2.10 鼠标拖动物体效果的实现 211
4.2.11 摄像机函数的运用——摄像机坐标和世界坐标变换的实现 212
4.3 渲染系统的运用 213
4.3.1 常见的着色器类型 213
4.3.2 着色器代码的基本结构 214
4.3.3 顶点动画的编写及顶点位移的实现 215
4.3.4 片段动画的编写及贴图滚动的实现 217
4.3.5 光照模型的编写及光照变化的实现 219
4.3.6 物体边缘高光效果的实现 221
4.3.7 噪声贴图的代码采样及物体溶解效果的实现 222
4.3.8 运用着色器进行画质颜色的修改 225
4.3.9 着色器代码的优化 229
4.4 本章小结 230
第5章 性能优化 232
5.1 性能优化分析 233
5.1.1 运用性能优化工具进行性能分析 233
5.1.2 帧率性能影响因素分析 237
5.1.3 画面渲染原理及渲染过程的分析 238
5.2 基本性能优化 239
5.2.1 对CPU性能的优化 239
5.2.2 对GPU性能的优化 242
5.2.3 对内存性能的优化 243
5.3 高级性能优化 245
5.3.1 渲染模块的优化 245
5.3.2 内存频繁申请及占用过高的规避 262
5.3.3 用户界面组件的优化 263
5.3.4 物理引擎组件的优化 264
5.3.5 内存泄漏的防止 265
5.4 本章小结 266