1.1 数据结构 1
1.1.1 顶点 1
目录出版者的话专家指导委员会译者序前言第一部分 高级游戏系统剖析第1章 高级游戏系统剖析Ⅰ:构造过程和静态光照 1
1.1.2 面 2
1.1.3 包围盒 4
1.2 构造过程 4
1.2.1 从场景几何中创建BSP树 4
1.2.2 路径规划的凸体和PVS计算 11
1.2.3 处理复杂的地形 13
1.2.4 BSP叶节点中的面 16
1.2.5 寻找叶凸体 16
1.2.6 凸体和伪入口 19
1.2.7 潜在可视集 24
1.3.1 生成光照贴图的坐标 28
1.3 光照贴图的构造 28
1.3.2 光照贴图的打包 29
1.3.3 对光照贴图的解释 30
1.4 BSP管理 31
1.5 高级静态光照——辐射度 37
附录1.1 构造实践 49
附录1.2 辐射度理论基础 64
第2章 高级游戏系统剖析Ⅱ:实时处理 69
2.1 视见和BSP 69
2.1.1 生成视见约束体的面 69
2.1.2 远近裁剪面和视见约束体 75
2.2 照相机控制 77
2.3.1 碰撞和BSP遍历 80
2.3 使用BSP的基本碰撞检测和反弹 80
2.3.2 粒子/场景检测和反弹 81
2.4 特殊的碰撞检测和反弹 83
2.4.1 AABB的定义 84
2.4.2 AABB类的定义和静态成员的定义 84
2.4.3 碰撞检测和碰撞反弹 86
2.4.4 使用AABB的伪碰撞反弹 87
2.4.5 使用AABB的碰撞检测 88
2.4.6 AABB顶点与场景面相交 89
2.4.7 场景顶点与AABB面相交 90
2.4.8 AABB边与场景边相交 92
2.4.9 更精确的碰撞检测 95
2.4.10 使用碰撞阈值 95
2.5 基本的路径规划 96
附录2.1 实时处理的演示 102
第3章 高级游戏系统剖析Ⅲ:软件设计与应用编程 105
3.1 应用的种类 105
3.1.1 插件 105
3.1.2 前端 111
3.1.3 工具 115
3.2 Fly3D引擎体系结构 115
3.2.1 FlyMath 115
3.2.2 FlyDirectX 116
3.2.3 FlyRender 118
3.2.4 FlyEngine 120
附录3.1 编写一个插件 130
4.1 简介 145
第二部分 实时渲染第4章 实时渲染 145
4.2 顶点、像素和贴图 146
4.2.1 基本的逐像素着色 146
4.2.2 着色和坐标空间 148
4.2.3 25年来主流的插值着色方法和颜色贴图 149
4.2.4 标量表示 151
4.3 因式分解法 156
4.3.1 使用因式分解着色模型的逐像素着色——各向同性模型 157
4.3.2 使用因式分解着色模型的逐像素着色——各向异性模型 162
4.4 BRDF和真实材质 164
4.5 使用BRDF进行逐像素着色 167
4.6 环境贴图参数化 170
4.6.1 环境贴图参数化:立方映射 170
4.6.2 环境贴图参数化:球面映射 171
4.6.3 环境贴图参数化:对偶抛物面贴图 174
4.6.4 环境贴图——可比点 176
4.6.5 立方贴图和向量规范化 177
4.7 实现BRDF:可分离的近似 177
4.8 着色语言和着色器 181
4.8.1 着色语言:简单的历史回顾 181
4.8.2 RenderMan着色语言 182
4.8.3 实时渲染的着色语言 184
第5章 实时渲染:实践 192
5.1 基本着色器 192
5.1.1 渲染状态 192
5.1.2 着色器排序 193
5.1.3 着色器类的实现 195
5.2 渲染状态 196
5.2.1 全局设定 196
5.2.2 局部设定 196
5.3 着色器实例 200
5.3.1 环境映射和铬映射效果——玻璃、金属和铬 201
5.3.2 移动发光告示牌 202
5.3.3 简单栅栏效果 203
5.3.4 高级栅栏效果 203
5.3.5 监视器效果 204
5.4 实时硬件渲染 207
5.4.1 顶点编程 207
5.4.3 使用寄存结合器的像素编程 219
5.4.2 像素编程 219
5.4.4 纹理地址编程 223
5.4.5 纹理地址编程——Phong映射 224
5.4.6 顶点和像素编程以及多步着色器 224
5.5 动态纹理 224
5.6 特效 228
5.6.1 燃烧尾迹 228
5.6.2 加速器 230
5.6.3 脉冲星 230
附录5.1 使用和探索着色器 233
附录5.2 NVIDIA GeForce 3上的顶点编程 235
附录5.3 NVIDIA寄存结合器操作 237
第6章 几何处理 240
6.1 简介 240
6.2.1 离线和实时阶段 241
6.2 推动因素和定义 241
6.2.2 拓扑因素 242
6.2.3 离散简化与连续简化 242
6.2.4 物体内部分辨率变化 243
6.2.5 对称性/可逆性 243
6.2.6 局部简化操作 243
6.3 排序(误差)标准 244
6.3.1 排序标准——外观相似 244
6.3.2 排序标准——局部体积不变 245
6.3.3 排序标准——二次误差度量 246
6.3.4 排序标准——简化外壳 247
6.4 简化与属性 248
6.4.3 算法框架 250
6.4.1 简化与游戏纹理 250
6.4.2 简化和蒙皮模型 250
6.4.4 顶点去除算法的重新三角形划分 251
6.5 实例分析 252
6.5.1 实例分析1——渐近式网格技术 252
6.5.2 实例分析2——使用微分几何 256
6.5.3 实例分析3——网格重新划分算法MAPS 260
附录6.1 数学背景 264
附录6.2 演示 269
第三部分 动画制作第7章 角色动画 271
7.1 简介 271
7.2 顶点动画与合成 274
7.3 骨架动画 279
7.4 低层次动画管理 284
7.4.1 行进的路径规划 286
7.4.2 骨架动画和面向对象的动画控制 290
7.4.3 对障碍物的躲避 290
7.4.4 路径规划总结 292
附录7.1 用四元数描绘旋转 292
附录7.2 四元数的实现 299
附录7.3 角色动画中效率的考虑 303
第8章 动画成形方法 310
8.1 简介 310
8.2 样条框架 311
8.3 自由形状变形 312
8.4 扩展自由形状变形(EFFD) 315
8.5 曲线变形——铰线 316
8.6.1 面向表面的自由形状变形(SOFFD) 318
8.6 皮肤控制 318
8.6.2 骨架皮肤精致化 319
8.6.3 组合皮肤和形状混合 322
附录8.1 使用径向基函数进行离散数据插值 324
第9章 高级角色动画之要素 325
9.1 引言——一种拟人的游戏界面 325
9.2 将语言表述转变为动画——示例 326
9.2.1 IMPROV(纽约大学媒体研究实验室) 327
9.2.2 PAR体系结构(宾夕法尼亚大学人体建模和仿真中心) 329
9.2.3 具体化的对话界面代理(MIT媒体实验室) 330
9.2.4 游戏结论 331
9.3 面部动画、视觉语音和跟踪 332
9.4 用于控制、渲染和跟踪面部网格的模型 333
9.4.1 基于图像的建模、渲染和跟踪 334
9.4.2 跟踪方法 336
9.4.3 参数化 341
9.4.4 伪肌肉模型 343
9.4.5 面片技术 345
9.5 视觉语音 348
9.6 面部动画和MPEG-4 351
9.7 渲染问题 351
9.8 总结和问题 353
9.8.1 参数化与照片真实性 353
9.8.2 网格表示 353
9.8.3 皮肤的渲染 353
9.8.4 没有声音很多面部动画更好看 353
9.8.5 情感和语音 353
附录9.1 一个伪肌肉模型的实现 355
第10章 基于运动捕捉的角色动画 356
10.1 简介 356
10.2 运动数据 358
10.3 骨架和MoCap——BVH格式 359
10.4 运动数据的基本处理 361
10.4.1 加速和减速运动 361
10.4.2 混合和时间扭曲 362
10.4.3 对齐运动序列 363
10.4.4 运动扭曲 364
10.5 MoCap中的插值 365
10.5.1 B样条表示法 365
10.5.2 运动混合——动词和副词 367
10.6 经典信号处理和MoCap 368
10.6.1 傅里叶理论 369
10.6.2 傅里叶理论和非周期数据 373
10.6.3 傅里叶理论和采样数据 374
10.6.4 采样和走样现象 377
10.6.5 反走样滤波器 379
10.6.6 时间域中的过滤——卷积 379
10.7 信号处理和MoCap数据 380
10.7.1 傅里叶域中的插值/外推法 381
10.7.2 使用拉氏算子的多分辨率滤波 382
10.8 运动编辑:基于约束的方案 383
10.8.1 运动中的动力学约束 384
10.8.2 运动中的运动学约束 386
10.8.3 每帧重定位法 387
附录10.1 示范 390
10.8.4 时空法 390
第11章 反向运动学原理 391
11.1 例子——二链臂 392
11.2 雅可比矩阵 394
11.3 IK方法 396
11.3.1 使用雅可比阵的微分方法 396
11.3.2 最优法 400
11.3.3 循环坐标下降法(CCD) 401
11.4 反向运动学的实践方案 403
11.4.1 混合方法——分析法+约束最优化法 404
11.4.2 混合方法——三阶段:分析法+约束最优化+分析法 404
11.4.3 防止自碰撞 407
11.4.4 IK与运动目标 409
参考文献 410