《DirectX游戏编程基础教程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:王德才等编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2010
  • ISBN:9787111315612
  • 页数:282 页
图书介绍:本书系统全面地介绍了DirectX编程的各个方面,全书共16章,内容涵盖了学习DirectX之前必需掌握的基础知识、DirectX与相关图形技术以及Windows系统本身的关系、Direct3D三维图形和动画开发、DirectX Audio音频开发、DirectInput输入处理以及DXUT程序框架等内容。此外,每章都提供了精心设计的示例程序和课后练习,以及相应的源代码和多媒体课件。本书非常适合作为高等院校相关专业以及培训机构的教学用书。对于希望进入DirectX游戏开发领域的人员,本书是一本非常好的自学教材。对于希望了解新一代Windows操作系统(Windows Vista和Windows7)图形引擎、以及新一代图形界面开发技术(WPF)底层基础的开发人员,本书也是一本优秀的参考用书。

第1章 DirectX与游戏编程简介 1

1.1 DirectX介绍 1

1.2 OpenGL、XNA与WPF 2

1.2.1 OpenGL 2

1.2.2 XNA 2

1.2.3 WPF 3

1.3 DirectX功能组件 4

1.3.1 DirectX Graphics 5

1.3.2 DirectX Audio 5

1.3.3 DirectX Input 6

1.3.4 其他组件 6

1.4 DirectX与游戏开发 7

1.5 DirectX安装与配置 7

1.5.1 系统配置要求 7

1.5.2 DirectX安装 8

1.5.3 选择调试库和发布库 8

1.5.4 在Visual Studio IDE中配置DirectX 9

1.5.5 浏览DirectX SDK示例程序 10

1.6 小结 11

练习 12

第2章 预备知识 13

2.1 数学基础 13

2.1.1 向量 13

2.1.2 矩阵 15

2.1.3 平面 18

2.2 Win32 API编程基础 19

2.2.1 开发Win32 API程序的基本步骤 20

2.2.2 Win32 API程序解析 23

2.3 COM使用基础 28

2.3.1 COM对象概述 28

2.3.2 创建COM对象 30

2.3.3 使用COM接口 30

2.3.4 管理COM对象的生命期 31

2.4 小结 31

练习 32

第3章 Direct3D编程入门 33

3.1 Direct3D体系结构 33

3.1.1 硬件抽象层 33

3.1.2 软件参考层 33

3.1.3 Direct3D系统集成 34

3.2 Direct3D表面 34

3.2.1 IDirect3DSurface接口 35

3.2.2 宽度和间距 35

3.2.3 像素格式 35

3.2.4 交换链与表面翻转 35

3.3 Direct3D设备对象 36

3.3.1 Direct3D设备类型 36

3.3.2 顶点运算 37

3.3.3 创建Direct3D设备对象 37

3.3.4 设备丢失与恢复 41

3.4 最简单的Direct3D程序 41

3.4.1 程序基本结构 42

3.4.2 常用宏定义 42

3.4.3 初始化Direct3D 42

3.4.4 渲染图形 43

3.4.5 结束Direct3D程序 45

3.5 Direct3D 9Ex扩展编程 45

3.5.1 WDDM和Direct3D 9Ex介绍 45

3.5.2 Direct3D 9Ex初始化 46

3.6 小结 47

练习 47

第4章 基本图元和文本绘制 48

4.1 Direct3D坐标系 48

4.2 Direct3D基本图元 48

4.3 Direct3D中的颜色表示 49

4.3.1 使用D3DCOLOR定义颜色 50

4.3.2 使用D3DCOLORVALUE定义颜色 50

4.3.3 使用D3DXCOLOR定义颜色 50

4.4 使用顶点缓存绘制图形 51

4.4.1 顶点结构和顶点格式 51

4.4.2 内存池类型 52

4.4.3 创建顶点缓存 52

4.4.4 渲染顶点缓存图形 54

4.5 使用索引缓存绘制图形 55

4.5.1 创建顶点缓存和索引缓存 56

4.5.2 使用索引缓存绘制图形 57

4.6 二维文本绘制 58

4.6.1 创建ID3DXFont对象 58

4.6.2 使用ID3DXFont接口绘制二维文本 59

4.6.3 帧速率计算 60

4.7 渲染状态 60

4.7.1 着色模式 61

4.7.2 多边形填充模式 61

4.8 图形反锯齿 62

4.8.1 查询设备是否支持多重采样 62

4.8.2 创建使用多重采样的Direct3D设备对象 62

4.8.3 启用多重采样 63

4.9 小结 63

练习 63

第5章 顶点坐标变换 64

5.1 顶点坐标变换和光照流水线概述 64

5.2 矩阵类型 65

5.2.1 D3DMATRIX 65

5.2.2 D3DXMATRIX 65

5.2.3 D3DXMATRIXA16 67

5.3 坐标变换 67

5.3.1 世界变换 67

5.3.2 观察变换 70

5.3.3 投影变换 71

5.3.4 视区变换 72

5.4 坐标变换示例程序 72

5.5 小结 74

练习 75

第6章 光照 76

6.1 光照计算模型 76

6.1.1 环境光 76

6.1.2 漫反射光 76

6.1.3 镜面反射光 77

6.1.4 自发光 77

6.2 光源 78

6.2.1 光源类型 78

6.2.2 光源属性 79

6.2.3 设置与启用光源 80

6.2.4 对光源的几点说明 81

6.3 材质 81

6.4 光照和材质示例程序 82

6.5 对光照和材质的几点说明 84

6.6 小结 84

练习 84

第7章 纹理映射 85

7.1 纹理元素与纹理坐标 85

7.2 创建纹理对象 85

7.3 纹理过滤方式 86

7.3.1 最近点采样 86

7.3.2 线性纹理过滤 86

7.3.3 各向异性纹理过滤 87

7.3.4 多级渐进纹理过滤 87

7.4 纹理寻址模式 88

7.4.1 重叠纹理寻址模式 89

7.4.2 镜像纹理寻址模式 89

7.4.3 夹取纹理寻址模式 90

7.4.4 边框颜色纹理寻址模式 90

7.5 纹理映射示例程序 91

7.6 纹理阶段混合状态 92

7.6.1 纹理阶段混合状态设置 92

7.6.2 纹理阶段混合状态示例程序 93

7.7 多层纹理映射 94

7.8 小结 96

练习 97

第8章 Direct3D渲染技巧 98

8.1 Alpha混合 98

8.1.1 Alpha混合原理 98

8.1.2 Alpha混合系数 99

8.1.3 Alpha混合示例 99

8.2 雾化效果 101

8.2.1 雾化效果实现原理 101

8.2.2 基于范围的雾化 102

8.2.3 雾化效果示例程序 103

8.2.4 对雾化效果的几点说明 104

8.3 模板测试 104

8.3.1 模板测试过程 104

8.3.2 模板缓存 105

8.3.3 模板测试设置 106

8.3.4 平面阴影 107

8.4 小结 110

练习 110

第9章 网格模型 111

9.1 网格模型基础 111

9.1.1 几何信息 111

9.1.2 网格子集和属性缓存 112

9.1.3 邻接信息 113

9.1.4 绘制网格模型 113

9.1.5 克隆网格模型 114

9.1.6 创建网格模型 114

9.2 简单几何体和三维文本网格模型 115

9.2.1 创建简单几何体网格模型 115

9.2.2 创建三维文本网格模型 116

9.3 文件网格模型 117

9.3.1 模型文件格式 117

9.3.2 使用.X文件网格模型 118

9.3.3 对网格模型的几点说明 121

9.4 网格模型优化 122

9.4.1 优化函数和优化方式 122

9.4.2 属性表 123

9.4.3 其他网格模型处理函数 124

9.4.4 网格优化示例程序 125

9.5 文件网格模型类 126

9.5.1 CXFileMesh类的定义 126

9.5.2 CXFileMesh的实现 127

9.5.3 使用CXFileMesh类渲染文件网格模型 129

9.6 物体空间状态的控制 130

9.7 蒙皮骨骼动画网格模型 132

9.7.1 骨骼动画基本原理 133

9.7.2 图形混合技术 134

9.7.3 蒙皮骨骼动画网格模型类介绍 136

9.8 小结 141

练习 141

第10章 点精灵与粒子系统 143

10.1 粒子系统基本原理 143

10.2 粒子和点精灵 144

10.2.1 点精灵顶点结构和顶点格式 144

10.2.2 点精灵的大小 144

10.2.3 点精灵的纹理坐标 145

10.2.4 点精灵的渲染 145

10.3 粒子系统的具体实现 146

10.3.1 粒子结构与顶点结构 146

10.3.2 粒子系统类的定义 146

10.3.3 粒子系统的创建和销毁 147

10.3.4 粒子系统的更新 148

10.3.5 粒子系统的渲染 150

10.3.6 粒子系统示例程序 152

10.4 雪景模拟 154

10.4.1 雪花粒子结构 154

10.4.2 雪花粒子运动的控制 154

10.4.3 渲染雪花粒子 155

10.5 小结 156

练习 156

第11章 基本虚拟场景构造 157

11.1 三维地形模拟 157

11.1.1 基本地形网格的构造 157

11.1.2 高度图与高程数据 161

11.1.3 地形上任意点高度的计算 162

11.1.4 法线的计算 163

11.1.5 地形模拟示例程序 164

11.2 天空绘制 165

11.2.1 矩形天空 165

11.2.2 天空盒 166

11.2.3 球形天空 167

11.3 虚拟摄像机与虚拟场景漫游 168

11.3.1 虚拟场景漫游基本原理 168

11.3.2 CCamera类 169

11.3.3 虚拟场景漫游的实现 172

11.4 小结 173

练习 174

第12章 HLSL高级着色语言 175

12.1 数据类型 175

12.1.1 标准数据类型 175

12.1.2 向量 176

12.1.3 矩阵 177

12.1.4 复杂数据类型 179

12.1.5 变量的前缀 181

12.2 运算符和语句 181

12.2.1 运算符 181

12.2.2 类型转换 182

12.2.3 语句 182

12.3 函数 183

12.3.1 自定义函数 183

12.3.2 内置函数 183

12.4 语义 183

12.5 编写HLSL着色器 185

12.5.1 添加文件 185

12.5.2 编写着色器代码 185

12.5.3 编译着色器代码 186

12.6 小结 187

练习 187

第13章 着色器和效果 188

13.1 顶点着色器 188

13.1.1 顶点着色器介绍 188

13.1.2 顶点声明 189

13.1.3 使用HLSL顶点着色器的基本步骤 190

13.1.4 使用顶点着色器实现基本光照模型 194

13.2 像素着色器 199

13.2.1 像素着色器介绍 199

13.2.2 使用像素着色器的基本步骤 199

13.2.3 使用像素着色器实现纯亮度显示 202

13.3 效果 203

13.3.1 效果介绍 203

13.3.2 创建效果 203

13.3.3 使用效果 205

13.3.4 多手法效果 206

13.3.5 使用效果管理状态 209

13.4 小结 212

练习 212

第14章 DirectX Audio音频编程 214

14.1 DirectX Audio介绍 214

14.1.1 DirectX Audio技术架构 214

14.1.2 DirectX Audio支持的音频格式 215

14.2 XACT 216

14.2.1 XACT介绍 216

14.2.2 使用XACT GUI制作声音 218

14.2.3 XACT初始化 219

14.2.4 使用XACT播放声音 221

14.2.5 使用XACT播放流声音 225

14.2.6 代码驱动的XACT API介绍 229

14.3 XAudio2 229

14.3.1 XAudio2介绍 229

14.3.2 XAudio2初始化 231

14.3.3 使用XAudio2加载音频数据 232

14.3.4 使用XAudio2播放声音 235

14.4 小结 237

练习 237

第15章 DirectInput与场景交互 239

15.1 DirectInput初始化 239

15.1.1 创建DirectInput对象 239

15.1.2 枚举输入设备 240

15.1.3 创建Directlnput设备对象 241

15.1.4 设置设备对象 241

15.1.5 获取输入设备的访问权 243

15.2 键盘输入处理 244

15.3 鼠标输入处理 246

15.4 游戏杆输入处理 249

15.5 拾取 251

15.5.1 拾取射线的计算 252

15.5.2 拾取射线的变换 253

15.5.3 拾取射线与物体交点的计算 254

15.5.4 拾取示例程序 254

15.6 小结 255

练习 255

第16章 DXUT程序框架 256

16.1 DXUT程序框架剖析 256

16.1.1 DXUT框架文件组成和功能 256

16.1.2 DXUT框架回调函数 257

16.2 使用DXUT框架 260

16.2.1 实现并设置回调函数 260

16.2.2 初始化DXUT 261

16.2.3 其他DXUT设置 261

16.2.4 创建窗口 262

16.2.5 创建Direct3D设备 262

16.3 使用DXUT绘制文本 263

16.4 使用DXUT控件 265

16.4.1 初始化对话框 265

16.4.2 渲染控件 266

16.4.3 处理控件事件 267

16.4.4 释放对话框 267

16.5 综合实例 268

16.5.1 生成程序框架 269

16.5.2 构造基本场景 269

16.5.3 添加背景音乐 271

16.5.4 添加输入处理 271

16.5.5 实现场景漫游 272

16.6 小结 273

练习 274

附录A Direct3D 10与Direct3D 11介绍 275

参考文献 282