图书介绍
DirectX游戏编程PDF|Epub|txt|kindle电子书版本网盘下载
![DirectX游戏编程](https://www.shukui.net/cover/50/33247091.jpg)
- 周国庆,陈洪,冯人果编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302215936
- 出版时间:2010
- 标注页数:366页
- 文件大小:43MB
- 文件页数:387页
- 主题词:多媒体-软件工具,DirectX-高等学校-教材;游戏-应用程序-程序设计-高等学校-教材
PDF下载
下载说明
DirectX游戏编程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1部分 必备的数学知识第1章 基本的数学概念3
1.1 三维空间中的向量3
1.1.1 向量的相等6
1.1.2 向量模的计算7
1.1.3 向量归一化8
1.1.4 向量加法8
1.1.5 向量减法9
1.1.6 数乘10
1.1.7 点乘10
1.1.8 叉乘11
1.2 矩阵12
1.2.1 矩阵的相等、矩阵数乘和矩阵加法13
1.2.2 矩阵乘法13
1.2.3 单位矩阵15
1.2.4 逆矩阵15
1.2.5 矩阵的转置16
1.2.6 D3DX中的矩阵16
1.2.7 基本变换19
1.2.8 平移变换20
1.2.9 旋转矩阵21
1.2.10 缩放矩阵23
1.2.11 组合变换23
1.2.12 一些用于向量变换的函数25
1.3 平面25
1.3.1 D3DX中的平面26
1.3.2 点和平面之间的关系27
1.3.3 构建平面27
1.3.4 标准化一个平面28
1.3.5 对平面进行变换操作29
1.3.6 求到一个指定点距离最短的平面上的点29
1.4 射线30
1.4.1 射线的表达式30
1.4.2 射线与平面的相交31
1.5 小结31
第2部分 Direct3D基础知识第2章 Direct3D初始化35
2.1 Direct3D体系结构35
2.1.1 REF设备36
2.1.2 D3D设备类型36
2.2 组件对象模型37
2.3 预备知识37
2.3.1 表面缓冲区(Surface)37
2.3.2 重采样39
2.3.3 像素格式40
2.3.4 存储池40
2.3.5 交换链和页面翻转41
2.3.6 深度缓冲区42
2.3.7 顶点处理43
2.3.8 设备性能43
2.4 初始化Direct3D44
2.4.1 获得IDirect3D9接口45
2.4.2 确认硬件顶点处理能力45
2.4.3 填充D3DPRESENT_PARAMETERS结构46
2.4.4 创建一个IDirect3DDevice9接口48
2.5 示例:初始化Direct3D49
2.5.1 d3dUtility.h/cpp文件50
2.5.2 程序框架52
2.5.3 D3D初始化示例52
2.6 小结55
第3章 渲染管道57
3.1 描述的模型57
3.1.1 顶点格式58
3.1.2 三角形59
3.1.3 索引60
3.2 虚拟摄像机60
3.3 渲染管道61
3.3.1 本地空间62
3.3.2 世界空间62
3.3.3 视图空间63
3.3.4 背面裁剪65
3.3.5 光照66
3.3.6 裁剪66
3.3.7 投影67
3.3.8 视口变换69
3.3.9 光栅化70
3.4 小结70
第4章 在Direct3D中绘制图形71
4.1 顶点/索引缓冲区71
4.1.1 创建顶点缓冲区和索引缓冲区71
4.1.2 访问缓冲区内存74
4.1.3 获得顶点缓冲区以及索引缓冲区的相关信息75
4.2 渲染状态76
4.3 渲染前的准备工作77
4.4 使用顶点/索引缓冲区进行渲染78
4.4.1 IDirect3DDevice9::DrawPrimitive78
4.4.2 IDirect3DDevice9::DrawIndexedPrimitive78
4.4.3 Begin/End Scene80
4.5 D3DX自带的几何物体80
4.6 示例:三角形、立方体、茶壶、D3DXCreate81
4.7 小结85
第5章 颜色87
5.1 颜色的描述方法87
5.2 顶点颜色90
5.3 着色处理90
5.4 示例:带颜色的三角形91
5.5 小结93
第6章 光照95
6.1 光的组成95
6.2 材质96
6.3 顶点法线98
6.4 光源100
6.5 示例:光照104
6.6 其他例子106
6.7 小结107
第7章 纹理109
7.1 纹理坐标109
7.2 创建并应用纹理111
7.3 纹理过滤112
7.4 多纹理映射113
7.4.1 多纹理映射过滤113
7.4.2 在Direct3D中使用多纹理映射114
7.5 纹理坐标寻址模式114
7.6 程序示例:带纹理的四边形116
7.7 小结118
第8章 混合技术119
8.1 混合方程119
8.2 混合因子121
8.3 透明121
8.3.1 Alpha通道122
8.3.2 指定源像素的Alpha值122
8.4 用DirectX的纹理工具创建Alpha通道123
8.5 示例:透明效果124
8.6 小结127
第9章 模板缓冲区129
9.1 使用模板缓冲区130
9.1.1 获取模板缓冲区131
8.1.2 模板测试131
9.1.3 模板测试的控制131
9.1.4 更新模板缓冲区133
9.1.5 模板写入掩码134
9.2 示例:镜子134
9.2.1 镜面反射的相关数学知识134
9.2.2 镜面效果的实现概述136
9.2.3 代码和解释137
9.3 示例:平面阴影140
9.3.1 平行光阴影141
9.3.2 点光源阴影142
9.3.3 阴影矩阵142
9.3.4 用模板缓冲区来防止二次混合143
9.3.5 代码和解释144
9.4 小结146
第3部分 Direct3D的应用第10章 文字处理149
10.1 ID3DXFont、ID3DXFont接口149
10.1.1 创建一个ID3DXFont接口149
10.1.2 文字输出150
10.1.3 计算帧速(FPS)151
10.2 CD3DFont、CD3DFont类152
10.2.1 构造CD3DFont对象152
10.2.2 DrawText输出文字153
10.2.3 销毁CD3DFont对象153
10.3 三维网格(3D Mesh)在文字显示中的应用154
10.3.1 D3DXCreateText方法154
10.4 小结155
第11章 网格(1)157
11.1 几何信息157
11.2 网格子集(Subset)和属性缓冲区158
11.3 网格的渲染160
11.4 网格优化160
11.5 网格属性表162
11.6 邻接信息164
11.7 网格的克隆(Cloning)165
11.8 网格的创建(D3DXCreateMeshFVF)166
11.9 示例:创建并渲染一个网格168
11.10 小结173
第12章 网格(2)175
12.1 ID3DXBuffer接口175
12.2 .X文件176
12.2.1 读取.X文件177
12.2.2 X文件中的材质178
12.2.3 X文件实例178
12.2.4 生成顶点法线181
12.3 渐进式网格182
12.3.1 生成渐进式网格183
12.3.2 顶点属性权重184
12.3.3 ID3DXPMesh接口的相关方法185
12.3.4 示例:渐进式网格186
12.4 包围体189
12.4.1 新的常量191
12.4.2 各种不同的包围体191
12.4.3 包围体示例192
12.5 小结194
第13章 构建一个灵活的摄像机类195
13.1 设计摄像机195
13.2 摄像机类的实现细节197
13.2.1 计算视图矩阵197
13.2.2 绕任意轴的旋转200
13.2.3 俯仰、偏转和翻滚200
13.2.4 行走、平移和飞行203
13.3 示例:摄像机204
13.4 小结206
第14章 基本地形渲染207
14.1 高度图208
14.1.1 高度图的创建208
14.1.2 读取RAW文件209
14.1.3 高度图的访问和修改210
14.2 生成地形几何数据210
14.2.1 计算顶点212
14.2.2 计算索引——定义三角形214
14.3 纹理216
14.3.1 用程序生成纹理数据216
14.4 光照218
14.4.1 概述219
14.4.2 计算方格的阴影219
14.4.3 计算地形阴影221
14.5 在地形上“行走”221
14.6 Terrain示例程序225
14.7 一些改进措施226
14.8 小结227
第15章 粒子系统229
15.1 粒子和点精灵229
15.1.1 结构格式230
15.1.2 Point Sprite渲染状态230
15.1.3 粒子及其属性232
15.2 粒子系统组件233
15.2.1 粒子系统的渲染238
15.2.2 粒子的随机性241
15.3 实现三个具体的粒子系统:雪景、焰火和粒子枪242
15.3.1 示例:雪景242
15.3.2 示例:焰火244
15.3.3 示例:粒子枪246
15.4 小结248
第16章 捡取249
16.1 屏幕到投影窗口的变换251
16.2 计算Picking射线252
16.3 变换射线253
16.4 射线与物体的相交检测254
16.5 示例:Picking256
16.6 小结257
第4部分 Shader和特效261
第17章 高级Shader语言的介绍261
17.1 使用HLSL编写Shader程序262
17.1.1 全局变量263
17.1.2 输入输出结构264
17.1.3 入口点函数265
17.2 编译一个HLSL Shader程序266
17.2.1 常量表266
17.2.2 编译HLSL Shader程序270
17.3 变量类型272
17.3.1 标量类型272
17.3.2 向量类型272
17.3.3 矩阵类型273
17.3.4 数组275
17.3.5 结构275
17.3.6 typedef关键字276
17.3.7 变量前缀276
17.4 关键字、语句和类型转换277
17.4.1 关键字277
17.4.2 基本的程序流程277
17.4.3 类型转换278
17.5 运算符279
17.6 用户自定义函数280
17.7 内建函数282
17.8 小结284
第18章 Vertex Shader的介绍285
18.1 顶点声明(Vertex Declaration)286
18.1.1 顶点声明的描述286
18.1.2 创建顶点声明289
18.1.3 启用一个顶点声明289
18.2 顶点数据的用途290
18.3 使用Vertex Shader的步骤292
18.3.1 编写与编译Vertex Shader292
18.3.2 创建Vertex Shader292
18.3.3 设置Vertex Shader293
18.3.4 销毁Vertex Shader293
18.4 示例:散射光293
18.5 示例:卡通渲染(Cartoon Rendering)299
18.5.1 卡通着色(Cartoon Shading)300
18.5.2 卡通着色的Vertex Shader代码301
18.5.3 勾画出物体的轮廓303
18.6 小结308
第19章 Pixel Shader入门309
19.1 多重纹理概述309
19.1.1 启用多重纹理311
19.1.2 多重纹理坐标312
19.2 Pixel Shader的输入和输出313
19.3 使用Pixel Shader的步骤314
19.3.1 编写并编译Pixel Shader程序314
19.3.2 创建一个Pixel Shader314
19.3.3 设置一个Pixel Shader315
19.3.4 销毁一个Pixel Shader315
19.4 HLSL取样对象315
19.5 示例:通过Pixel Shader实现多重纹理317
19.6 小结324
第20章 特效框架(Effects Framework)325
20.1 Technique与Pass326
20.2 更多的HLSL内建对象327
20.2.1 texture对象327
20.2.2 取样器(sampler)对象和取样器状态328
20.2.3 Vertex Shader对象和Pixel Shader对象328
20.2.4 字符串(string)329
20.2.5 注解(Annotations)330
20.3 特效文件中的设备状态330
20.4 创建一个特效331
20.5 设置常量333
20.6 使用特效335
20.6.1 获得特效句柄335
20.6.2 激活特效336
20.6.3 启用特效336
20.6.4 设置当前的渲染Pass337
20.6.5 关闭特效337
20.6.6 示例337
20.7 示例:通过特效文件实现光照效果和纹理贴图338
20.8 示例:雾化效果343
20.9 示例:卡通效果345
20.10 特效编辑器(EffectEdit)347
20.11 小结347
附录A Windows程序设计简介349
A.1 概述349
A.1.1 资源350
A.1.2 事件、消息队列、消息和消息循环350
A.1.3 图形用户接口(GUI)351
A.2 简单的Windows应用程序352
A.3 一个更好的消息循环364
A.4 小结365
参考文献366