DirectX 3D游戏编程实用教程PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:郑阿奇主编
- 出 版 社:北京:电子工业出版社
- 出版年份:2011
- ISBN:9787121128219
- 页数:485 页
第一篇 3D游戏编程基础 1
第1章 Windows编程基础 1
1.1 简单的Windows应用程序 1
1.1.1 创建Windows应用程序项目 1
1.1.2 配置、生成及运行项目 6
1.2 Windows应用程序结构 8
1.2.1 数据类型 8
1.2.2 入口函数 9
1.2.3 注册窗口类 10
1.2.4 创建并显示窗口 11
1.3 Windows消息机制 12
1.3.1 消息队列 13
1.3.2 消息循环 14
1.3.3 消息处理 14
1.4 匈牙利命名法 15
1.4.1 类型和常量的命名 16
1.4.2 变量的命名 16
1.4.3 函数和参数的命名 16
1.4.4 类的命名 17
1.5 本章小结 17
第2章 Direct3D编程基础 18
2.1 DirectX概述 18
2.1.1 DirectX的发展过程 18
2.1.2 DirectX的组成部分 19
2.1.3 Direct3D与COM 20
2.1.4 Direct3D接口对象 21
2.2 Direct3D渲染流水线 22
2.2.1 渲染流水线 22
2.2.2 灵活顶点格式 23
2.2.3 D3D中的颜色 24
2.2.4 D3D中的图元 25
2.3 Direct3D程序结构 27
2.3.1 简单的Direct3D应用程序 28
2.3.2 创建Direct3D接口对象 32
2.3.3 获取硬件设备信息 33
2.3.4 创建Direct3D设备接口 33
2.3.5 开始Direct3D图形绘制 36
2.3.6 结束并清理对象资源 37
2.4 顶点缓存 38
2.4.1 创建顶点缓存 39
2.4.2 访问顶点缓存 40
2.4.3 使用顶点缓存绘制图形 41
2.4.4 顶点缓存的绘制示例 42
2.5 索引缓存 44
2.5.1 创建索引缓存 44
2.5.2 访问索引缓存 45
2.5.3 使用索引缓存绘制图形 45
2.5.4 索引缓存的绘制示例 46
2.6 Direct3D渲染状态 49
2.6.1 剔除状态 49
2.6.2 着色状态 50
2.6.3 填充状态 51
2.7 本章小结 52
第3章 基本的数学基础 53
3.1 坐标空间 53
3.1.1 3D笛卡儿坐标系 53
3.1.2 多坐标系统 54
3.2 向量 56
3.2.1 向量的基本概念 56
3.2.2 向量的基本运算 57
3.2.3 D3D中的向量 59
3.3 矩阵 60
3.3.1 矩阵的基本概念 60
3.3.2 矩阵的基本运算 61
3.3.3 矩阵的基本变换 63
3.3.4 D3D中的矩阵 66
3.4 平面及射线 67
3.4.1 平面的定义 67
3.4.2 点与平面的关系 68
3.4.3 射线的定义 68
3.4.4 射线与平面的关系 69
3.5 空间坐标变换 69
3.5.1 世界变换 70
3.5.2 取景变换 71
3.5.3 投影变换 72
3.5.4 视口变换 73
3.6 空间坐标变换示例 74
3.7 本章小结 78
第二篇 3D游戏图形渲染 79
第4章 光照与材质 79
4.1 光照模型 79
4.1.1 环境光 79
4.1.2 漫反射光 80
4.1.3 镜面反射光 80
4.2 光源类型 81
4.2.1 点光源 82
4.2.2 方向光 83
4.2.3 聚光灯 83
4.3 物体的材质 85
4.3.1 D3D材质 85
4.3.2 顶点法线 86
4.4 光照与材质示例 87
4.5 本章小结 92
第5章 纹理映射 93
5.1 纹理映射基础 93
5.1.1 纹理坐标 93
5.1.2 创建纹理 95
5.1.3 启用纹理 96
5.1.4 创建纹理示例 96
5.2 纹理过滤 99
5.2.1 最近点采样过滤 99
5.2.2 线性纹理过滤 99
5.2.3 各向异性过滤 100
5.2.4 多级渐进过滤 100
5.2.5 纹理过滤示例 102
5.3 纹理寻址 104
5.3.1 重复寻址 104
5.3.2 镜像寻址 105
5.3.3 夹取寻址 105
5.3.4 边框颜色寻址 106
5.3.5 纹理寻址示例 106
5.4 纹理包装 108
5.4.1 纹理包装原理 108
5.4.2 纹理包装示例 110
5.5 本章小结 113
第6章 网格模型 114
6.1 网格模型基础 114
6.1.1 网格的子集及属性 115
6.1.2 网格的邻接信息 116
6.1.3 网格的创建及绘制 117
6.1.4 创建及绘制网格示例 119
6.2 网格的优化及克隆 122
6.2.1 优化网格 122
6.2.2 克隆网格 123
6.3 X文件格式分析 124
6.3.1 模板的定义 124
6.3.2 常用的模板类型 126
6.3.3 X文件的结构 129
6.4 从X文件创建网格 131
6.4.1 加载网格模型数据 131
6.4.2 获取纹理和材质信息 132
6.4.3 绘制网格模型 133
6.4.4 读取X文件示例 134
6.5 创建渐进网格模型 137
6.5.1 ID3DXPMesh接口 138
6.5.2 创建并绘制渐进网格 138
6.5.3 创建渐进网格示例 140
6.6 D3D中的几何体 142
6.7 本章小结 143
第7章 深度、融合及模板 145
7.1 深度测试 145
7.1.1 深度缓存 145
7.1.2 深度测试 146
7.1.3 深度测试示例 147
7.2 融合技术 150
7.2.1 融合因子 151
7.2.2 Alpha来源 152
7.2.3 启用Alpha融合 153
7.2.4 Alpha融合示例 153
7.3 模板技术 156
7.3.1 模板缓存 156
7.3.2 模板测试 157
7.3.3 更新模板缓存 158
7.4 镜面效果 159
7.4.1 镜面成像原理 159
7.4.2 实现镜面效果 160
7.5 本章小结 163
第8章 HLSL语言基础 164
8.1 HLSL概述 164
8.1.1 可编程管线 164
8.1.2 HLSL工作模型 165
8.2 简单的HLSL程序 167
8.2.1 编写HLSL代码 168
8.2.2 HLSL关键字和保留字 169
8.2.3 HLSL预处理指令 169
8.2.4 输入、输出结构 170
8.2.5 HLSL入口函数 171
8.3 HLSL基本语法 171
8.3.1 HLSL中的变量 171
8.3.2 HLSL中的函数 177
8.4 D3D与HLSL交互 178
8.4.1 编译着色器程序 179
8.4.2 获取常量的句柄 180
8.4.3 设置常量的值 180
8.5 HLSL程序示例 181
8.6 本章小结 184
第9章 着色器与效果 185
9.1 顶点着色器 185
9.1.1 创建顶点声明 185
9.1.2 使用顶点着色器 189
9.1.3 顶点着色器示例 191
9.2 渐变动画效果 196
9.2.1 渐变动画原理 196
9.2.2 实现渐变动画 197
9.3 像素着色器 201
9.3.1 创建像素着色器 201
9.3.2 使用像素着色器 202
9.4 多重纹理混合 203
9.4.1 HLSL采样器 203
9.4.2 多重纹理坐标 205
9.4.3 启用多重纹理 205
9.4.4 多重纹理示例 206
9.5 效果框架 210
9.5.1 通道与手法 210
9.5.2 着色器内置对象 211
9.5.3 效果中的渲染状态 212
9.5.4 创建效果框架 212
9.5.5 效果中常量的设置 214
9.5.6 使用效果框架 214
9.5.7 效果框架示例 216
9.6 本章小结 223
第三篇 3D游戏输入控制 224
第10章 DirectX输入控制 224
10.1 DirectInput接口 224
10.2 使用DirectInput接口 225
10.2.1 DirectInput的初始化 226
10.2.2 创建设备接口对象 227
10.2.3 设置数据格式 227
10.2.4 设置协作级别 228
10.2.5 设置特殊属性 229
10.2.6 获取、轮询设备 230
10.2.7 读取设备数据 231
10.3 使用DirectInput处理键盘 231
10.3.1 初始化键盘设备接口 232
10.3.2 获取输入的键盘数据 233
10.3.3 键盘输入控制示例 233
10.4 使用DirectInput处理鼠标 237
10.4.1 在D3D中移动鼠标 237
10.4.2 初始化鼠标设备接口 238
10.4.3 获取鼠标的移动位置 238
10.4.4 鼠标输入控制示例 239
10.5 使用DirectInput处理游戏杆 242
10.5.1 游戏杆及其控制原理 242
10.5.2 初始化游戏杆设备接口 242
10.5.3 读取游戏杆的状态数据 244
10.5.4 游戏杆输入控制示例 245
10.6 本章小结 249
第四篇 3D游戏应用编程 250
第11章 摄像机、地形及天空 250
11.1 虚拟摄像机 250
11.1.1 摄像机的属性 250
11.1.2 摄像机的变换 253
11.1.3 摄像机的实现 257
11.1.4 摄像机应用示例 259
11.2 三维地形系统 262
11.2.1 地形高度图 262
11.2.2 顶点的计算 264
11.2.3 索引的计算 265
11.2.4 地形的绘制 266
11.2.5 地形类的实现 267
11.2.6 地形绘制示例 268
11.3 球形天空顶 270
11.3.1 顶点的计算 270
11.3.2 索引的计算 272
11.3.3 天空的绘制 273
11.3.4 天空类的实现 274
11.3.5 天空绘制示例 274
11.4 本章小结 276
第12章 文字、拾取及碰撞检测 277
12.1 字体及文本绘制 277
12.1.1 绘制2D文本 277
12.1.2 绘制3D文本 279
12.1.3 文本绘制示例 280
12.2 拾取技术 284
12.2.1 网格外接体 284
12.2.2 拾取技术原理 286
12.2.3 拾取应用示例 289
12.3 碰撞检测 293
12.3.1 边界球碰撞检测 293
12.3.2 AABB碰撞检测 295
12.3.3 OBB树碰撞检测 297
12.3.4 AABB碰撞检测示例 298
12.4 本章小结 301
第13章 骨骼动画 302
13.1 X文件中的骨骼信息 303
13.1.1 骨骼蒙皮信息 303
13.1.2 骨骼层次信息 304
13.1.3 模型动画信息 305
13.2 加载骨骼动画数据 307
13.2.1 扩展结构体 309
13.2.2 加载X文件 310
13.2.3 CAllocateHierarchy类 311
13.2.4 生成蒙皮网格 313
13.3 顶点混合技术 317
13.3.1 顶点混合原理 318
13.3.2 索引顶点混合 320
13.4 骨骼动画的绘制 321
13.4.1 开启顶点混合 321
13.4.2 更新骨骼矩阵 322
13.4.3 绘制骨骼动画 323
13.5 骨骼动画控制器 325
13.5.1 使用动画控制器 326
13.5.2 平滑过渡动画集 327
13.6 骨骼动画示例 329
13.7 本章小结 334
第14章 实时阴影 335
14.1 平面阴影的原理 335
14.1.1 点光源平面阴影 336
14.1.2 方向光平面阴影 337
14.2 平面阴影的实现 337
14.2.1 计算阴影矩阵 337
14.2.2 平面阴影的绘制 338
14.2.3 平面阴影示例 339
14.3 体积阴影的原理 341
14.3.1 模型阴影体 341
14.3.2 阴影锥的计算 342
14.4 体积阴影的实现 344
14.4.1 体积阴影的绘制 347
14.4.2 体积阴影示例 350
14.5 阴影贴图的原理 353
14.6 本章小结 353
第15章 广告牌技术与粒子系统 355
15.1 广告牌技术 355
15.1.1 广告牌的原理 356
15.1.2 广告牌的实现 356
15.1.3 广告牌示例 358
15.2 粒子系统 361
15.2.1 粒子系统的原理 362
15.2.2 粒子系统的实现 362
15.2.3 粒子系统的更新 366
15.2.4 粒子系统的绘制 367
15.3 粒子系统示例 369
15.3.1 烟花示例 370
15.3.2 喷泉示例 373
15.4 本章小结 376
第16章 雾化及LOD地形 378
16.1 雾化效果 378
16.1.1 雾化混合因子 378
16.1.2 顶点雾化 380
16.1.3 像素雾化 381
16.1.4 范围雾化 382
16.2 LOD地形原理 383
16.2.1 LOD四叉树算法 384
16.2.2 LOD地形的实现 386
16.2.3 节点剔除原理 388
16.2.4 节点简化准则 391
16.2.5 地形裂缝的处理 394
16.2.6 地形的更新及绘制 395
16.3 LOD地形示例 400
16.4 本章小结 402
第五篇 3D游戏音频输出 404
第17章 Direct3D音频控制 404
17.1 音频文件格式 404
17.1.1 音频的基本概念 404
17.1.2 WAV音频格式 405
17.1.3 MIDI音频格式 406
17.1.4 MP3音频格式 406
17.2 使用DirectSound处理音频 407
17.2.1 DirectSound的结构 407
17.2.2 DirectSound的初始化 408
17.2.3 DirectSound音频缓冲 409
17.2.4 向缓冲区中写入数据 412
17.2.5 播放声音及音频控制 414
17.2.6 用DirectSound反馈信息 416
17.2.7 DirectSound应用示例 418
17.3 使用DirectMusic处理音频 420
17.3.1 DirectMusic的结构 420
17.3.2 开始使用DirectMusic 421
17.3.3 加载、操作MIDI段 422
17.3.4 DirectMusic应用示例 426
17.4 使用DirectShow处理音频 428
17.4.1 DirectShow的工作原理 428
17.4.2 DirectShow的初始化 429
17.4.3 加载流媒体数据 430
17.4.4 控制流媒体的播放 430
17.4.5 DirectShow应用示例 432
17.5 本章小结 433
第六篇 3D游戏网络通信 434
第18章 Direct3D网络控制 434
18.1 了解网络互联 434
18.1.1 网络会话模型 434
18.1.2 寻址与通信协议 436
18.2 DirectPlay概述 437
18.2.1 创建和管理会话 437
18.2.2 DirectPlay传输协议 437
18.2.3 DirectPlay网络对象 438
18.2.4 玩家与游戏大厅 440
18.3 客户/服务会话 441
18.3.1 初始化网络对象 441
18.3.2 选择服务提供者 443
18.3.3 使用DirectPlay地址 444
18.3.4 建立客户/服务会话 446
18.3.5 发送、接收数据 452
18.3.6 创建并使用分组 455
18.3.7 结束及终止会话 456
18.4 游戏大厅的支持 457
18.4.1 游戏大厅的结构 457
18.4.2 实现游戏大厅客户端 458
18.4.3 实现支持大厅的程序 459
18.5 客户/服务会话示例 460
18.5.1 创建服务端程序 461
18.5.2 创建客户端程序 468
18.6 本章小结 471
附录 472
附录A DirectX9 SDK的安装与配置 472
A.1 安装DirectX 472
A.2 配置开发环境 473
A.3 浏览DirectX示例 474
附录B DXUT程序框架介绍 476
B.1 创建DXUT项目 476
B.2 DXUT框架的初始化 478
B.3 创建应用程序窗口 479
B.4 创建Direct3D设备 480
B.5 DXUT的事件处理 481
B.5.1 框架事件 481
B.5.2 设备事件 482
B.5.3 消息事件 483
B.6 DXUT的错误处理 483
- 《幼儿园游戏 规则性游戏》徐仁吉编 1951
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《激光加工实训技能指导理实一体化教程 下》王秀军,徐永红主编;刘波,刘克生副主编 2017
- 《AutoCAD 2019 循序渐进教程》雷焕平,吴昌松,陈兴奎主编 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《幼儿英语游戏活动指导与实训》苏小菊,任晓琴主编;颜晓芳,覃静,谢恬恬,钟博维副主编 2020
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《英语自学进阶教程全6册 3》爱尔兰迪尔德丽出版社著 2019
- 《高考快速作文指导》张吉武,鲍志伸主编 2002
- 《建筑施工企业统计》杨淑芝主编 2008
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《近代旅游指南汇刊二编 16》王强主编 2017
- 《汉语词汇知识与习得研究》邢红兵主编 2019
- 《黄遵宪集 4》陈铮主编 2019
- 《孙诒让集 1》丁进主编 2016
- 《近代世界史文献丛编 19》王强主编 2017
- 《走出人格陷阱》郑晓斌,徐樟责编;武志红 2020
- 《激光加工实训技能指导理实一体化教程 下》王秀军,徐永红主编;刘波,刘克生副主编 2017
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017