DirectX游戏编程PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:周国庆,陈洪,冯人果编著
- 出 版 社:北京:清华大学出版社
- 出版年份:2010
- ISBN:9787302215936
- 页数:366 页
第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 初始化Direct3D 44
2.4.1 获得IDirect3D9接口 45
2.4.2 确认硬件顶点处理能力 45
2.4.3 填充D3DPRESENT_PARAMETERS结构 46
2.4.4 创建一个IDirect3DDevice9接口 48
2.5 示例:初始化Direct3D 49
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::DrawPrimitive 78
4.4.2 IDirect3DDevice9::DrawIndexedPrimitive 78
4.4.3 Begin/End Scene 80
4.5 D3DX自带的几何物体 80
4.6 示例:三角形、立方体、茶壶、D3DXCreate 81
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 示例:Picking 256
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 Shader 292
18.3.2 创建Vertex Shader 292
18.3.3 设置Vertex Shader 293
18.3.4 销毁Vertex Shader 293
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 Shader 314
19.3.3 设置一个Pixel Shader 315
19.3.4 销毁一个Pixel Shader 315
19.4 HLSL取样对象 315
19.5 示例:通过Pixel Shader实现多重纹理 317
19.6 小结 324
第20章 特效框架(Effects Framework) 325
20.1 Technique与Pass 326
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 设置当前的渲染Pass 337
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
- 《幼儿园游戏 规则性游戏》徐仁吉编 1951
- 《幼儿英语游戏活动指导与实训》苏小菊,任晓琴主编;颜晓芳,覃静,谢恬恬,钟博维副主编 2020
- 《近代体育游戏教育史料汇编 第1辑 1》王强主编 2016
- 《花样民游 幼儿园民间传统游戏的创新与指导》刘娟 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《近代体育游戏教育史料汇编 第2辑 2》王强主编 2016
- 《近代体育游戏教育史料汇编 第1辑 6》王强主编 2016
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《近代体育游戏教育史料汇编 第2辑 3》王强主编 2016
- 《近代体育游戏教育史料汇编 第2辑 8》王强主编 2016
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019