第1章 面向对象的游戏编程原理 1
1.1 面向对象的游戏设计思想 1
1.1.1 游戏开发基本流程 1
1.1.2 简单的游戏过程模拟程序 1
1.2 面向对象程序设计 4
1.2.1 从C语言到C++ 4
1.2.2 C++的类与对象 11
1.2.3 构造函数和析构函数 12
1.2.4 派生方法 13
1.3 STL标准模板库 14
1.3.1 vector容器 14
1.3.2 iterator迭代器 15
第2章 Windows编程基础 17
2.1 基于事件和消息的Windows操作系统 17
2.1.1 Win32消息机制 17
2.1.2 创建Win32项目 18
2.2 Win32应用程序 19
2.2.1 WinMain()函数 19
2.2.2 设计与注册窗口类 20
2.2.3 创建窗口 23
2.2.4 显示和更新窗口 25
2.2.5 消息循环 25
2.2.6 注销窗口类 28
2.3 窗口过程 28
2.3.1 窗口过程函数 28
2.3.2 键盘消息 29
2.3.3 鼠标消息 31
2.3.4 时间消息 32
第3章 DirectX简介 35
3.1 启动Direct3D 35
3.1.1 Direct3D工作原理 35
3.1.2 Direct3D开发环境配置 36
3.1.3 Direct3D初始化 39
3.1.4 系统响应时间间隔 42
3.2 绘制流水线 43
3.2.1 局部坐标系 44
3.2.2 世界坐标系 44
3.2.3 观察坐标系 46
3.2.4 背面消隐 47
3.2.5 光照 48
3.2.6 裁剪 48
3.2.7 投影 48
3.2.8 视口变换 49
3.2.9 光栅化 50
3.3 代码封装 51
3.3.1 D3DUT模块 51
3.3.2 MyD3D模块 55
3.3.3 主文件 59
第4章 基本空间变换 62
4.1 三维向量 62
4.1.1 三维向量的定义 62
4.1.2 D3DXVECTOR3类 63
4.1.3 点积 65
4.1.4 叉积 66
4.2 矩阵变换 67
4.2.1 基于三维坐标的三维空间变化 67
4.2.2 齐次坐标的引入 68
4.2.3 基于齐次坐标的矩阵变换 69
第5章 Direct 3D的绘制方法 75
5.1 三维图形绘制 75
5.1.1 基于顶点缓存的图形绘制 75
5.1.2 基于顶点索引缓存的图形绘制 89
5.2 自由顶点格式 97
5.3 基于颜色顶点的图形绘制 98
5.3.1 D3D颜色表达 99
5.3.2 颜色顶点的绘制方法 101
5.4 基于纹理顶点的图形绘制 107
5.4.1 纹理映射原理 108
5.4.2 纹理顶点缓存的创建 108
5.4.3 纹理缓存的创建 109
5.4.4 纹理顶点的绘制 111
5.4.5 纹理过滤器 111
5.4.6 纹理顶点绘制的案例分析 113
第6章 Alpha融合 118
6.1 基于Alpha通道的像素融合 118
6.1.1 Alpha融合原理 118
6.1.2 设置Alpha融合渲染状态 119
6.1.3 颜色顶点几何体的透明渲染案例 120
6.1.4 纹理顶点几何体的透明渲染案例 124
6.2 纹理内存的访问 128
第7章 光照与材质 131
7.1 光照与光源 131
7.1.1 光照模型 131
7.1.2 常用的光源 132
7.1.3 常用光源案例分析 133
7.2 材质 139
7.3 顶点法向量 140
7.4 Direct3D的光照渲染案例分析 141
7.4.1 自发光立方体类设计 143
7.4.2 材质平面类设计 146
7.4.3 纹理材质平面类设计 149
7.4.4 多光源初始化及渲染 152
第8章 三维网格模型 157
8.1 XFile文件 157
8.1.1 三维网格ID3DXMESH接口 157
8.1.2 网格子集 158
8.1.3 3dsMax的XFile导出 159
8.1.4 XFile加载与渲染 160
8.1.5 三维网格类D3DXFile设计 162
8.2 XFile的边界体 166
8.2.1 边界体计算方法 166
8.2.2 子集边界体 168
8.2.3 边界体类封装 171
8.3 碰撞检测 176
8.3.1 边界球的碰撞检测 176
8.3.2 边界盒的碰撞检测 179
8.3.3 基于边界体碰撞检测的案例分析 181
第9章 动画网格模型 187
9.1 骨骼动画相关技术原理 187
9.2 带动画的XFile文件导出 189
9.3 骨骼动画类 191
9.3.1 骨骼动画数据结构 191
9.3.2 分层结构接口 192
9.3.3 骨骼动画类D3DXAnimation 197
9.3.4 骨骼动画实例 203