第1章 游戏模型 1
1.1游戏制作流程 1
1.2多边形网格 4
1.2.1创建多边形网格 6
1.2.2多边形网格的表达方式 9
1.2.3表面法线 13
1.3模型导出和导入 15
1.4坐标系统 17
本章练习 19
第2章 顶点处理机制 20
2.1世界转换 21
2.1.1仿射转换以及齐次坐标 21
2.1.2世界矩阵 24
2.1.3欧拉转换 28
2.1.4表面法线的转换 29
2.2视见转换 31
2.2.1相机空间 31
2.2.2空间转换和视见矩阵 32
2.3逐顶点光照 37
2.4投影转换 38
2.4.1视见体 38
2.4.2投影矩阵 40
2.4.3投影矩阵的推导过程 44
本章练习 47
第3章 光栅化操作 49
3.1剪裁操作 49
3.2透视除法 50
3.3背面剔除操作 51
3.4再访坐标系统 55
3.4.1 3ds Max至OpenGL——翻转坐标轴 55
3.4.2 OpenGL至Direct3D——反射 57
3.4.3 OpenGL至Direct3D——顶点重排列 61
3.5视口转换 62
3.6扫描转换 65
3.7应用:对象拾取操作 70
3.7.1计算世界空间中的光线 70
3.7.2光线-对象相交测试 76
本章练习 82
第4章 片元处理和输出合并 83
4.1纹理操作 83
4.1.1纹理坐标 84
4.1.2表面参数化操作 86
4.1.3纹理坐标与纹素地址 87
4.2输出合并 89
4.2.1 z缓冲区机制 89
4.2.2 Alpha混合 91
4.3 z剔除操作 93
4.3.1单元(tile)剔除 93
4.3.2预写Z值 96
本章练习 96
第5章 光照和着色 98
5.1 Phong光照模型 98
5.1.1漫反射 99
5.1.2镜面反射 101
5.1.3环境反射 103
5.1.4发射光 104
5.2着色和着色语言 104
5.2.1顶点和片元着色器 104
5.2.2高级着色语言 105
5.3管线中的光照机制 107
5.3.1 HLSL中的逐顶点光照机制 107
5.3.2逐顶点光照与逐片元光照 109
5.3.3 HLSL中的逐片元光照 111
5.4全局光照 113
5.4.1光线跟踪 113
5.4.2辐射度 117
本章练习 119
第6章 参数曲线和表面 121
6.1参数曲线 121
6.1.1 Bezier曲线 121
6.1.2 Hermite曲线和Catmull-Rom样条 126
6.2应用:相机路径 127
6.3 Bezier表面 130
6.3.1双线性面片 130
6.3.2双二次Bezier面片 134
6.3.3双三次Bezier面片 138
6.3.4 Bezier三角形 140
本章练习 144
第7章 着色器模型 146
7.1着色器模型4和几何体着色器 146
7.2应用:动态粒子系统 147
7.2.1粒子的物理模拟 148
7.2.2焰火模拟 150
7.2.3渲染焰火 153
7.3着色器模型5和拼接操作 155
7.4应用:PN三角形 156
7.4.1计算控制点 157
7.4.2计算控制法线 160
7.4.3 PN三角形拼接操作 163
本章练习 165
第8章 图像纹理 166
8.1纹理寻址模式 166
8.2纹理过滤机制 168
8.2.1放大操作 169
8.2.2缩小操作 170
8.3纹理链 171
8.3.1纹理链的构建过程 172
8.3.2纹理链过滤机制 173
8.3.3纹理链过滤的选取方案 175
8.4各向异性过滤机制 179
本章练习 184
第9章 凹凸贴图 186
9.1高度场 187
9.2法线贴图原理 188
9.2.1法线贴图 188
9.2.2法线贴图算法 190
9.3切空间法线贴图 194
9.3.1切空间法线贴图算法 194
9.3.2切空间计算 198
9.4法线贴图应用 200
9.5视差贴图 203
9.6偏置贴图 206
本章练习 210
第10章 高级纹理操作 211
10.1环境贴图 211
10.1.1立方体贴图 211
10.1.2立方体贴图访问机制 214
10.1.3动态立方体贴图 216
10.2光照贴图 217
10.2.1漫反射光照贴图 217
10.2.2辐射度法线贴图 218
10.3阴影贴图 222
10.3.1阴影贴图算法 224
10.3.2基于阴影贴图的着色器代码 228
10.3.3阴影贴图过滤机制 231
10.4环境遮挡 234
10.5延迟着色 238
本章练习 240
第11章 角色动画 241
11.1关键帧动画 241
11.2旋转 244
11.2.1欧拉角插值 244
11.2.2四元数表达方式 245
11.2.3基于四元数的旋转 246
11.2.4四元数插值 250
11.3层次结构建模以及空间变换 252
11.3.1层次结构模型 252
11.3.2骨骼间的空间变换 256
11.3.3世界空间至骨骼空间的转换 258
11.4前向运动学 260
11.5蒙皮和关键帧动画 263
11.5.1蒙皮 263
11.5.2关键帧动画中的蒙皮 265
11.6逆向运动学 268
11.6.1解析法 269
11.6.2循环坐标下降法 270
本章练习 272
第12章 物理模拟 274
12.1惩罚方案 274
12.2冲量方案 276
12.2.1冲量 277
12.2.2基于冲量的碰撞求解方案 278
12.3碰撞检测 282
12.3.1色围体及其层次结构 283
12.3.2三角形-三角形相交测试 286
本章练习 288
参考文献 289