第一部分 基本内容 3
第1章 Windows程序设计介绍 3
1.1 基于事件驱动的程序设计 3
1.2 第一个Windows程序 4
1.3 小结 23
1.4 示例程序 24
1.5 练习 24
第2章 高级Win32 API程序设计 25
2.1 Windows GDI 25
2.2 错误检查 48
2.3 使用资源 50
2.4 制作对话框 54
2.5 小结 60
2.6 示例程序 60
2.7 练习 61
第3章 DirectX 62
3.1 什么是DirectX 62
3.2 应该使用DirectX吗 63
3.3 使用DirectX的基本规则 63
3.4 DirectInput 68
3.5 DirectAudio 84
3.6 DirectPlay 98
3.7 DirectShow 114
3.8 小结 116
3.10 练习 117
3.9 示例程序 117
第4章 三维数学基础 119
4.1 欢迎来到三维世界 119
4.2 向量 126
4.3 矩阵 134
4.4 四元数 144
4.5 小结 146
4.6 示例程序 147
4.7 练习 147
第5章 三维概念 148
5.1 三维模型 148
5.2 高级三维模型技术 152
5.3 摄像机和视口 158
5.4 三维几何流水线 163
5.5 深度缓冲区 166
5.6 小结 171
5.7 示例程序 171
5.8 练习 171
第6章 DirectGraphics介绍 173
6.1 DirectGraphics基础 173
6.2 第一个三维程序 184
6.3 图像的淡入、淡出、颜色闪烁——gamma控制 196
6.4 小结 201
6.5 示例程序 201
6.6 练习 201
7.1 自然界中的光 202
7.2 Direct3D的光照概念 202
第7章 光照 202
7.3 Direct3D光照属性 204
7.4 Direct3D材质属性 207
7.5 Direct3D光照编程 208
7.6 Direct3D材质编程 211
7.7 小结 212
7.8 示例程序 213
7.9 练习 213
第8章 基本纹理 214
8.1 基本纹理的概念 214
8.2 基本纹理程序设计 228
8.4 示例程序 238
8.3 小结 238
8.5 练习 239
第9章 高级纹理 240
9.1 多重纹理混合 240
9.2 光照映射 248
9.3 环境映射 250
9.4 多重纹理映射的其他用处 252
9.5 使用效果 253
9.6 小结 257
9.7 示例程序 257
9.8 练习 257
第10章 顶点和像素着色器 258
10.1 为什么使用着色器 258
10.2 顶点着色器 259
10.3 像素着色器 274
10.4 小结 279
10.5 示例程序 280
10.6 练习 280
第二部分 二维效果 283
第11章 火焰 283
11.1 工作原理 283
11.2 编写代码 286
11.3 调整火焰效果 298
11.4 火焰效果的用途 299
11.5 优化火焰效果 300
11.6 小结 301
11.7 示例程序 301
11.8 练习 302
12.1 工作原理 303
第12章 二维水 303
12.2 编写代码 313
12.3 改进水面效果 319
12.4 水面效果的用途 322
12.5 优化水面效果 323
12.6 小结 324
12.7 示例程序 325
12.8 练习 325
第13章 图像反馈 326
13.1 工作原理 327
13.2 编写代码 328
13.3 调整图像反馈效果 336
13.6 示例程序 337
13.7 练习 337
13.5 小结 337
13.4 图像反馈的用途 337
第14章 图像扭曲 338
14.1 工作原理 338
14.2 编写代码 339
14.3 调整图像扭曲 346
14.4 图像扭曲的用途 347
14.5 优化图像扭曲 347
14.6 小结 347
14.7 示例程序 347
14.8 练习 348
15.1 工作原理 349
第15章 云 349
15.2 编写代码 354
15.3 调整云的效果 358
15.4 云效果的用途 359
15.5 优化云效果 360
15.6 小结 361
15.7 示例程序 361
15.8 练习 361
第16章 模糊和其他形式的图像处理 362
16.1 工作原理 362
16.2 编写代码 365
16.3 图像处理的用途 371
16.4 优化图像处理 371
16.6 示例程序 372
16.7 练习 372
16.5 小结 372
第17章 渐变、擦除及其他过渡 374
17.1 简单过渡 374
17.2 高级过渡 381
17.3 用于过渡的类层次 388
17.4 小结 389
17.5 示例程序 389
17.6 练习 389
第三部分 三维效果 393
第18章 雨、烟、魔法及更多:粒子系统的乐趣 393
18.1 粒子系统 393
18.2 粒子系统要设计得多么复杂 395
18.3 粒子核心属性 396
18.4 粒子系统核心属性 397
18.5 编程实现一个基本粒子系统 398
18.6 制作粒子系统编辑器 414
18.7 小结 425
18.8 示例程序 425
18.9 练习 427
第19章 高级粒子系统 428
19.1 制作高级粒子系统 428
19.2 可编脚本粒子系统的用途 456
19.3 优化可编写脚本的粒子系统 460
19.4 其他可能的改进 460
19.5 小结 461
19.6 示例程序 461
19.7 练习 462
20.1 从简单开始:爆炸精灵 463
第20章 爆炸效果 463
20.2 爆炸群 473
20.3 加入粒子系统代码 475
20.4 添加冲击波 481
20.5 天空盒 486
20.6 小结 489
20.7 示例程序 490
20.8 练习 490
第21章 枪支和炮弹 491
21.1 火力范围框架 491
21.2 机枪 497
21.3 离子炮 500
21.4 光电武器 504
21.5 小结 508
21.7 练习 509
21.6 示例程序 509
第22章 镜头光晕 510
22.1 什么是镜头光晕 510
22.2 概念 511
22.3 镜头光晕对象 513
22.4 渲染二维镜头光晕 516
22.5 渲染三维镜头光晕 520
22.6 计算是否需要绘制镜头光晕 523
22.7 效果:不仅仅是镜头光晕 527
22.8 小结 527
22.9 示例程序 528
22.10 练习 528
23.1 概念 529
第23章 三维水 529
23.2 代码 530
23.3 小结 545
23.4 示例程序 546
23.5 练习 546
第24章 顶点和像素着色器效果 547
24.1 漫画着色 547
24.2 在漫画着色中添加笔划 552
24.3 使用像素着色器进行图像处理 555
24.4 小结 559
24.5 示例程序 559
24.6 练习 559
A.1 精选的C++主题 560
附录A 高级C++和STL 560
A.2 标准模板库 587
A.3 示例程序 597
A.4 练习 598
附录B DevStudio介绍 599
B.1 创建项目和工作区 599
B.2 添加源代码文件 601
B.3 设置编译选项 602
B.4 库和包含文件的搜索路径 606
B.5 建立和运行程序 608
B.6 调式 609
B.7 获取帮助 610
B.8 DevStudio内容总结 611
附录C 本书光盘所附带的资料 612