目录 1
第1章 认识DirectX/DirectX SDK 1
1.1 DirectX/Direct3D的历史与最新发展 1
1.2 DirectX SDK组成介绍 2
1.3 理解HAL与COM 2
1.4 DirectX SDK安装与开发环境配置 3
1.4.1 DirectX SDK的安装 3
1.4.2 Visual Studio.net 2003环境配置 6
1.4.3 编译运行你的第一个DirectX程序 7
1.5 小结 12
第2章 理解Direct3D世界的基本元素 13
2.1 世界坐标系 13
2.1.1 三维立体空间坐标系中的点 13
2.1.2 三维立体空间坐标系中的直线和平面 14
2.2 顶点的表示 15
2.3 面与多边形 16
2.4 物体的朝向 17
2.5 纹理映射初步 17
2.6 小结 18
3.1.1 Direct3D中的向量定义 20
3.1 向量运算 20
第3章 Direct3D数学基础 20
3.1.2 Direct3D中的向量运算 21
3.2 矩阵运算与操作 26
3.2.1 Direct3D中的矩阵定义 27
3.2.2 Direct3D中的矩阵运算 28
3.2.3 单位化矩阵(Identity Matrix) 29
3.2.4 平移矩阵(Translation Matrix) 29
3.2.5 旋转矩阵(Rotation Matrix) 31
3.2.7 混合变换(Multiply Matrix) 32
3.2.6 放缩矩阵(Scaling Matrix) 32
3.3 矩阵变换综合使用实例 33
3.4 其他常用数学函数与变换介绍 34
3.5 小结 36
第4章 理解Direct3D渲染管线 37
4.1 顶点和像素处理 37
4.2 世界矩阵 38
4.3 摄像机矩阵 39
4.4 投影矩阵 41
4.4.1 摄像机观察平截头体 41
4.4.2 投影矩阵 42
4.5 剪切和视口放缩 44
4.6 小结 45
第5章 Direct3D程序结构 46
5.1 优化的Win32程序结构 46
5.1.1 建立新的Win32程序项目 46
5.1.2 主流程函数解析及其优化 47
5.2 Direct3D设备基础知识 51
5.2.1 获取显示设备 51
5.2.2 配置D3DPRESENT_PARAMETERS结构体 52
5.2.3 创建IDirect3DDevice设备对象 54
5.3 初始化Direct3D设备流程 55
5.4 可变顶点结构 58
5.5 顶点缓冲区与索引缓冲区 59
5.5.1 创建顶点缓冲区 60
5.5.2 创建索引缓冲区 63
5.6 理解三角形图元渲染方式 65
5.7 渲染一个基本三维图形 68
5.7.1 准备工作 68
5.7.2 渲染 69
5.8 Common框架 77
5.8.1 Common结构 77
5.8.2 CD3DApplication类 78
5.9 使用Common框架 81
5.9.1 茶壶示例程序 81
5.9.2 移植彩色立方体程序 87
5.10 小结 92
第6章 使用网格模型构建复杂场景与角色 94
6.1 X模型存储格式 94
6.1.1 MeshViewer工具 95
6.1.2 X文件的组织形式 98
6.2 Mesh基础知识与接口介绍 105
6.3 加载和渲染Mesh模型 110
6.3.1 加载老虎实例(不用Common结构) 111
6.3.2 加载宫殿实例(使用Common结构) 116
6.3.3 CD3DMesh类分析引导 118
6.4 Optimizing Mesh介绍与示例 123
6.5 Progressive Mesh介绍与示例 134
6.5.1 Progressive Mesh介绍 134
6.5.2 应用举例 136
6.6 小结 141
第7章 在Direct3D中实现光照 142
7.1 Direct3D中的光照 142
7.1.2 光照模式 143
7.1.1 开启和关闭光照 143
7.2 简单光照实例 145
7.1.3 材质与光照 145
7.3 小结 146
第8章 显示字体 147
8.1 ID3DXFont字体类 147
8.2 简化的CFont字体类 149
8.3 小结 150
9.1 三角形选取(Pick)实例演练 151
9.1.1 实现实例的理论基础 151
第9章 综合演练实例 151
9.1.2 实例分析 153
9.2 封装摄像机类实现场景漫游 164
9.3 封装对象模型实现任意控制 169
9.4 用封装的类完成实例 174
9.5 小结 178
第10章 Direct3D动画基础 179
10.1 蒙皮骨骼动画原理 179
10.2 使用3ds max制作蒙皮骨骼动画 188
10.3 蒙皮骨骼动画在X文件中的存储和加载 202
10.4 蒙皮骨骼动画的渲染 216
10.5 蒙皮骨骼动画范例分析 225
10.6 Morphing动画原理与实践 228
10.7 小结 233
第11章 Direct3D特效技术 234
11.1 公告牌技术 234
11.1.1 公告牌技术原理 234
11.1.2 公告牌技术实例分析 237
11.2 粒子系统特效原理与实践 247
11.2.1 粒子系统原理分析 247
11.2.2 粒子系统实例分析 248
11.3 Lighting Map技术 256
11.3.1 Vertex Lighting(顶点光照模式) 257
11.3.2 Real Time Per-Pixel Lighting(实时每像素光照模式) 258
11.3.3 Per-Pixel Render With Lighting Map(光度图每像素渲染) 259
11.4 精灵特效实例 261
11.5 凹凸映射技术(Bump Map) 268
11.5.1 Bump Map原理介绍 268
11.5.2 Dot3 Bump Map实例分析 273
11.6 环境映射(Environment Map) 280
11.6.1 环境映射原理 280
11.6.2 立方体环境映射实例 281
11.7 阴影图技术(Shadow Map) 287
11.8 体积阴影技术(Shadow Volume) 290
11.9 小结 295
第12章 地形渲染技术 296
12.1 地形渲染概述 296
12.1.1 室内场景型 296
12.1.2 大规模室外场景型 297
12.2 室内渲染核心BSP技术初步 299
12.3.1 初始化 310
12.3 基于Brute Force方法的Height Map技术示例 310
12.3.2 渲染 312
12.3.3 创建纹理 316
12.3.4 添加光照 319
12.4 Fault Formation Midpoint Displacement高度表生成 322
12.5 Texture Blending技术 326
12.6 LightingMap SlopeLighting光照技术 330
12.7 CLOD技术 331
12.8 小结 331
13.1 Shader的含义 333
13.1.1 可编程渲染管线 333
第13章 High Level Shader Language基础 333
13.1.2 Vertex Shader 334
13.1.3 Pixel Shader 334
13.2 Shader的使用 334
13.3 HLSL规范 339
13.3.1 数据类型 339
13.3.2 表达式 354
13.3.3 语句 359
13.3.4 函数说明 363
13.4 Vertex Shader Pixel Shader示例 371
13.5 小结 374
第14章 大型游戏实例Donuts4分析与介绍 375
14.1 Donuts4游戏规则介绍 375
14.2 Donuts4程序框架分析 377
14.2.1 程序入口 377
14.2.2 创建窗口与初始化 379
14.2.3 运行过程 382
14.3 Donuts4模型系统分析 390
14.4 Donuts4地形系统分析 392
14.5 Donuts4碰撞检测系统分析 405
14.6 小结 411