第一部分 三维编程基础 3
第1章 DirectX简介 3
1.1 Direct3D程序启动 3
1.2 绘制流水线 8
1.3 面向对象的三维程序开发模块设计 15
1.3.1 D3DUT模块 16
1.3.2 MyD3D模块 20
1.3.3 主文件 22
第2章 基本空间变换 25
2.1 三维向量 25
2.2 空间变换矩阵 26
2.2.1 D3DXMATRIX矩阵定义 26
2.2.2 空间变换矩阵 27
习题 31
第3章 Direct3D的绘制方法 33
3.1 三维图形绘制 33
3.1.1 基于顶点缓存的图形绘制 33
3.1.2 基于索引缓存的图形绘制 37
3.2 自由顶点格式 40
3.3 基于颜色顶点的图形绘制 41
3.3.1 D3D颜色表达 41
3.3.2 颜色顶点的绘制方法 43
3.4 基于纹理顶点的图形绘制 45
3.4.1 纹理映射原理 45
3.4.2 纹理顶点缓存的创建 45
3.4.3 纹理缓存的创建 46
3.4.4 纹理顶点的绘制 48
3.4.5 纹理过滤器 48
习题 50
第4章 Alpha融合 52
4.1 基于Alpha通道的像素融合 52
4.1.1 Alpha融合原理 52
4.1.2 设置Alpha融合渲染状态 52
4.2 纹理内存的访问 54
第5章 光照与材质 57
5.1 光照与光源 57
5.1.1 光照模型 57
5.1.2 常用的光源 58
5.1.3 常用光源案例分析 60
5.2 材质 65
5.3 顶点法向量 66
习题 68
第二部分 三维编程应用 71
第6章 三维网格模型 71
6.1 XFile文件 71
6.1.1 三维网格ID3DXMesh接口 71
6.1.2 网格子集 72
6.1.3 Xfile文件的加载与渲染 73
6.2 XFile的边界体 76
6.2.1 边界体计算方法 76
6.2.2 子集边界体 77
6.3 碰撞检测 80
习题 81
第7章 拾取 82
7.1 计算拾取射线 82
7.2 判断射线与物体是否相交 85
7.3 拾取案例 86
第8章 动画网格模型 88
8.1 骨骼动画相关技术原理 88
8.2 骨骼动画类 89
8.2.1 骨骼动画数据结构 89
8.2.2 分层结构接口 90
8.2.3 骨骼动画类D3DXAnimation 95
8.2.4 骨骼动画实例 101
第9章 使用DirectX绘制文字 105
9.1 二维文字的绘制 105
9.1.1 文字的创建 105
9.1.2 文字的绘制 107
9.1.3 字体类的封装 109
9.1.4 显示中文 109
9.2 三维文字的绘制 110
9.2.1 文字的创建及绘制 110
9.2.2 字体类的封装 113
9.2.3 显示中文 114
第10章 自由摄像机 115
10.1 自由摄像机类的设计 115
10.2 观察矩阵的计算 116
10.3 摄像机的移动 119
第11章 Sprite 124
11.1 Sprite简介 124
11.2 Sprite的创建与绘制 124
11.2.1 Sprite的创建 124
11.2.2 Sprite的绘制 125
11.3 MySprite类设计 129
第12章 粒子系统 131
12.1 二维粒子系统 131
12.1.1 使用Sprite创建粒子 131
12.1.2 绘制粒子 133
12.2 三维粒子系统 135
12.2.1 粒子枪类的设计 135
12.2.2 粒子的创建、更新和销毁 137
12.2.3 绘制粒子 139
第13章 音效播放 144
13.1 WAV格式文件简介 144
13.2 使用DirectSound播放WAV音频文件 145
13.2.1 DirectSound的初始化 145
13.2.2 播放音频文件 149
13.3 SoundPlayer类设计 151
第14章 基于TCP/IP的网络游戏基础 154
14.1 TCP协议简介 154
14.2 使用Socket进行网络通信 155
14.2.1 服务器 155
14.2.2 客户端 161
14.3 应用案例 162
14.3.1 服务器端 163
14.3.2 客户端 167