第1章 游戏引擎简介 1
1.1 引擎的原理 1
1.2 开发3D引擎具备的条件 4
总结 6
第2章 数学知识 8
2.1 向量 8
2.1.1 向量加法及运用 9
2.1.2 向量减法及运用 10
2.1.3 向量点积及应用 10
2.1.4 向量的叉乘及应用 12
2.1.5 向量的长度及应用 13
2.1.6 向量的归一化及应用 14
2.2 矩阵运算 14
2.2.1 矩阵加法和减法 14
2.2.2 矩阵乘法及运用 15
2.3 3D坐标系 19
2.4 齐次坐标 19
2.5 四元数 20
总结 20
第3章 材质和光照 22
3.1 材质 22
3.2 光照 23
总结 26
第4章 固定流水线 27
4.1 局部坐标到世界坐标的变换 27
4.2 世界坐标到相机坐标的变换 29
4.3 物体剔除 31
4.4 相机坐标到透视坐标的变换 32
4.5 透视坐标到视口坐标的变换 33
4.6 光栅化 33
总结 34
第5章 游戏引擎架构 35
5.1 模块功能细分 36
5.2 GDI含义 36
5.3 整个引擎渲染思路 37
总结 38
第6章 3D引擎底层封装 39
6.1 自定义结构体 39
6.2 矩阵定义 45
6.3 通用类定义 54
6.4 向量运算 59
6.5 灯光 72
6.6 视景体 77
6.7 矩阵转换 83
6.8 图形渲染系统 89
6.9 材质 100
6.10 坐标系之间的转换 109
总结 158
第7章 3D引擎封装 159
7.1 相机的实现 160
7.2 监听事件 166
7.3 模型分析 168
7.4 模型加载 169
7.5 模型操作 180
7.6 场景管理 191
7.7 绘图接口 206
7.8 游戏窗口 207
总结 217
第8章 游戏设计实现 218
8.1 游戏架构 218
8.2 坦克设计 219
8.3 AI坦克 230
8.4 子弹设计 235
8.5 玩家控制 240
8.6 游戏类封装 246
8.7 游戏管理 253
8.8 主循环 276
总结 278
第9章 地图编辑器 280
9.1 编辑器实现 281
9.2 模型插件实现 282
总结 284
第10章 3D可编程流水线 285
10.1 GPU编程语言 287
10.2 灯光的Shader渲染 287
10.3 CelShading渲染 291
10.4 环境映射 298
10.5 Phong着色 302
10.6 Bloom渲染 305
10.7 PSSM阴影 314
总结 323