OpenGL游戏程序设计PDF电子书下载
- 电子书积分:16 积分如何计算积分?
- 作 者:(美)K. 霍金,(美)D. 阿斯特著;田昱川译
- 出 版 社:北京:科学出版社
- 出版年份:2006
- ISBN:7030166167
- 页数:550 页
第1篇 OpenGL和DirectX的介绍 1
第1章 而今迈步从头越——OpenGL和DirectX 1
1.1 开发游戏需要理由吗 1
1.2 3D游戏世界 1
1.3 游戏的元素 2
1.4 开发工具 4
1.5 什么是OpenGL 5
1.5.1 OpenGL的历史 6
1.5.2 OpenGL的体系结构 6
1.5.4 什么是GLUT 7
1.5.3 OpenGL实用库 7
1.5.5 轻松一瞥 8
1.6 什么是DirectX 8
1.6.1 DirectX的历史 9
1.6.2 DirectX体系结构 9
1.7 OpenGL与DirectX 11
本章小结 12
第2章 Windows操作系统平台上的OpenGL编程 13
2.1 Windows编程介绍 13
2.1.1 Windows应用程序基础 15
2.1.2 从WinMain()开始 15
2.1.3 Windows Procedure 16
2.1.4 窗口类 17
2.1.5 窗口类的注册 20
2.1.6 窗口的创建 21
2.1.7 消息循环 23
2.1.8 一个完整的Windows应用程序 24
2.2 WGL介绍 28
2.2.1 绘制环境 28
2.2.2 WGL的使用 29
2.3 像素格式 30
2.3.2 dwFlags 31
2.3.1 nSize 31
2.3.3 iPixelType 32
2.3.4 cColorBits 32
2.4 OpenGL Windows应用程序 33
2.5 全屏OpenGLL 40
本章小结 41
第3章 3D图形学理论概览 43
3.1 标量、点和矢量 43
3.1.1 矢量的大小 44
3.1.2 矢量的归一化 44
3.1.3 矢量加法运算 44
3.1.6 叉积运算 45
3.1.5 点积运算 45
3.1.4 矢量与标量的乘法运算 45
3.2 矩阵 46
3.2.1 单位矩阵 46
3.2.2 零矩阵 47
3.2.3 矩阵加法和减法运算 47
3.2.4 矩阵乘法运算 47
3.2.5 矩阵的总体实现 49
3.3 变换 51
3.3.1 平移变换 51
3.3.2 旋转变换 52
3.3.3 缩放变换 53
3.4 投影 54
3.4.1 平行投影 55
3.4.2 透视投影 55
3.5 3D剪裁 57
3.6 光照 58
3.6.1 环境光 58
3.6.2 散射光 58
3.6.3 镜面反射光 59
3.7 纹理映射 59
本章小结 60
4.1 状态函数 61
第4章 OpenGL状态和图元 61
第2篇 使用OpenGL 61
4.2 图元的处理 67
4.2.1 3D空间中点的绘制 68
4.2.2 3D空间中线的绘制 70
4.2.3 3D空间中的多边形的绘制 72
4.2.4 图元的使用 76
本章小结 76
第5章 坐标变换和OpenGL矩阵 77
5.1 理解坐标变换 77
5.1.1 视点和眼坐标 78
5.1.2 视图变换 79
5.1.3 模型变换 82
5.1.4 投影变换 83
5.1.5 视区变换 84
5.2 OpenGL和矩阵 84
5.2.1 模型视图矩阵 84
5.2.2 平移变换 85
5.2.3 旋转变换 86
5.2.4 缩放变换 86
5.2.5 矩阵堆栈 87
5.2.6 机器人例程 89
5.3.1 正交投影变换 99
5.3 投影变换 99
5.3.2 透视投影变换 100
5.3.3 视区的设置 101
5.3.4 投影变换实例 101
5.4 自定义矩阵的使用 103
5.4.1 自定义矩阵的载入 103
5.4.2 矩阵的乘法运算 104
5.4.3 自定义矩阵的实例 104
本章小结 105
第6章 添加颜色、混合与光照 106
6.1 颜色是如何工作的 106
6.2.1 颜色深度 107
6.2 在OpenGL中使用颜色 107
6.2.2 颜色立方体模型 108
6.2.3 OpenGL中的RGBA模式 108
6.2.4 OpenGL中的颜色索引模式 109
6.3 明暗处理 110
6.4 OpenGL中的光照 111
6.4.1 OpenGL光照和现实世界 111
6.4.2 材质 112
6.4.3 法线 112
6.4.4 OpenGL光照的使用 116
6.5 颜色混合 136
透明度 137
本章小结 142
第7章 位图、图像与OpenGL 143
7.1 OpenGL位图 143
7.1.1 位图的定位 144
7.1.2 位图的绘制 144
7.1.3 一个OpenGL位图例程 145
7.2 图像的使用 147
7.2.1 图像数据的绘制 147
7.2.2 屏幕的读取 148
7.3 像素存储的管理 149
7.2.4 放大、缩小和翻转 149
7.2.3 屏幕数据的复制 149
7.4 Windows位图 150
7.4.1 BMP文件格式 150
7.4.2 BMP文件的载入 151
7.4.3 BMP文件的输出 152
7.5 Targa图像文件 154
7.5.1 Targa文件格式 154
7.5.2 Targa文件的载入 155
7.5.3 Targa文件的输出 156
本章小结 158
8.1 纹理映射的概览 160
第8章 纹理映射 160
8.2 纹理图的应用 166
8.2.1 2D纹理 166
8.2.2 1D纹理 166
8.2.3 3D纹理 167
8.3 纹理对象 167
8.3.1 纹理名字的生成 167
8.3.2 纹理对象的创建和使用 168
8.4 纹理的过滤处理 168
8.6 纹理坐标 169
8.5 纹理模式 169
8.6.1 重复和夹持纹理 170
8.6.2 mipmap和细节层次 172
8.6.3 mipmap的自动生成 173
8.7 例程——飘动的旗帜 173
8.7.1 例程的解释说明 173
8.7.2 例程的实现 174
8.8 例程——高程纹理地形 184
8.8.1 例程的解释说明 184
8.8.2 例程的实现 188
本章小结 196
9.1 多纹理映射 197
第9章 高级纹理映射 197
9.1.1 多纹理支持的验证 198
9.1.2 扩展函数的访问 199
9.1.3 纹理单元的建立 199
9.1.4 纹理坐标的设置(指定) 201
9.1.5 综合应用 202
9.2 环境映射 210
9.3 纹理矩阵 213
9.4 光照映射 215
9.5 多通道多纹理映射 221
本章小结 225
第10章 显示列表与顶点数组 226
10.1 显示列表 226
10.1.1 显示列表的创建 227
10.1.2 向显示列表中填充命令 227
10.1.3 显示列表的执行 228
10.1.4 显示列表的注意事项 229
10.1.5 显示列表的销毁 229
10.1.6 显示列表与纹理 230
10.1.7 例程:使用显示列表的机器人演示程序 231
10.2 顶点数组 232
10.2.1 顶点数组的启用 233
10.2.2 数组的使用 234
10.2.3 顶点数组与多纹理映射 236
10.2.4 数组的锁定 237
10.2.5 例程:再建地形演示程序 237
本章小结 240
第11章 文本的显示 241
11.1 位图字体 241
11.2 轮廓字体 245
11.3 纹理映射字体 248
本章小结 254
12.1.1 像素格式的设置 256
第12章 OpenGL缓存 256
12.1 什么是OpenGL缓存 256
12.1.2 缓存的清理 259
12.2 颜色缓存 259
12.2.1 双缓存系统 260
12.2.2 立体缓存 260
12.3 深度缓存 261
12.3.1 深度比较程序 261
12.3.2 深度缓存的使用 261
12.4 模板缓存 271
12.5 累积缓存 279
本章小结 280
第13章 OpenGL二次曲面 282
13.1 OpenGL二次曲面的基础 282
13.1.1 绘制风格 283
13.1.2 法线 283
13.1.3 指向 283
13.1.4 纹理坐标 283
13.1.5 清理 284
13.2 圆盘 284
13.3 圆柱 285
13.4 球 286
13.5 例程:飞掠一个二次世界 287
本章小结 290
第14章 曲线与曲面 291
14.1 曲线与曲面的描述 291
14.1.1 参数方程 292
14.1.2 控制点与连续性 292
14.2 求值程序 293
14.3 曲面 297
14.4 NURBS 303
本章小结 307
15.1 标志板 309
第15章 特殊效果 309
15.2 粒子系统的使用 312
15.2.1 粒子 313
15.2.2 粒子系统 315
15.2.3 粒子系统管理器 318
15.2.4 实例 318
15.2.5 粒子系统的效果 321
15.2.6 例程:暴风雪 322
15.3 雾 326
15.3.1 OpenGL的雾 326
15.3.2 体积雾 327
15.4 镜像 328
15.4.1 光照的镜像 328
15.4.2 深度缓存的处理 328
15.4.3 使用模板缓存来处理有限的平面 329
15.4.4 对于非常规镜像表面的处理 330
15.4.5 对任意指向的平面的处理 330
15.5 阴影 331
15.5.1 静态阴影 331
15.5.2 投射阴影 332
15.5.3 模板阴影体 334
15.5.5 例程:镜像与阴影 335
15.5.4 其他的方法 335
本章小结 338
第3篇 建立一个游戏 339
第16章 DirectX的使用:Directlnput 339
16.1 为什么要使用DirectInput 339
16.1.1 Windows消息 339
16.1.2 Win32 341
16.1.3 DirectInput 343
16.2 DirectInput的初始化 344
16.3 DirectInput的使用 345
16.3.1 设备的添加 346
16.3.2 输入的获取 353
16.3.3 关闭 354
16.4 动作映射 355
16.5 输入子系统的建立 355
16.6 输入系统例程 364
本章小结 366
第17章 DirectX Audio的使用 367
17.1 声音的基础 367
17.2 什么是DirectX Audio 370
17.2.1 DirectX Audio的功能部件 371
17.2.2 音频数据流 373
17.3 使用DirectMusic加载和演奏音频 374
17.3.2 创建与初始化演奏对象 375
17.3.1 初始化COM 375
17.3.3 创建loader对象 376
17.3.4 载入一个segment对象 376
17.3.5 下载波段 377
17.3.6 演奏segment 377
17.3.7 停止一个segment的播放 378
17.3.8 segment是否正在播放 378
17.3.9 segment循环的控制 379
17.3.10 清理 379
17.4 一个简单的例程 380
17.5.1 默认的Audiopath 391
17.5 Audiopath的使用 391
17.5.2 标准Audiopath 392
17.5.3 在Audiopath上播放声音 392
17.5.4 从Audiopath获取对象 394
17.6 3D声音 394
17.6.1 3D声音坐标 395
17.6.2 感知 395
17.6.3 DirectSound 3D缓存 395
17.6.4 3D参数的设置 396
17.6.5 DirectSound 3D听者 398
17.6.6 3D音效文本例程 399
本章小结 412
第18章 3D模型的处理 414
18.1 3D模型文件格式 414
18.2 MD2文件格式 415
18.2.1 MD2的实现 417
18.2.2 MD2的载入 421
18.2.3 MD2的显示 425
18.2.4 添加纹理 427
18.2.5 模型的动画 429
18.2.6 开发一个CMD2Model类 434
18.2.7 模型动画的控制 445
18.3 最后的一点小资料 448
本章小结 452
第19章 OpenGL物理建模 453
19.1 物理学的回顾 453
19.1.1 时间 453
19.1.2 距离、位移和位置 454
19.1.3 速度 456
19.1.4 加速度 457
19.1.5 作用力 458
19.1.6 动量 459
19.1.7 摩擦力 461
19.2 真实世界的模拟 463
19.2.2 定时 464
19.2.1 任务的分解 464
19.2.3 矢量 469
19.2.4 平面 474
19.2.5 物体 478
19.2.6 物体碰撞的处理 480
19.2.7 一个例程:空中曲棍球 486
本章小结 509
第20章 建立一个游戏引擎 510
20.1 SimpEngine的设计 510
20.1.1 利用CNode管理数据 511
20.1.2 对象的处理:CObject 515
20.2 引擎核 520
20.2.1 输入系统 522
20.2.2 CEngine类 523
20.2.3 游戏循环 524
20.2.4 输入的处理 525
20.2.5 SimpEngine 526
20.3 视点 527
20.4 场景 530
20.5 模型的添加 530
20.6 音频系统 531
20.7 粒子系统 533
本章小结 534
第21章 创建一个游戏:杀戮时刻 535
21.1 初始设计 535
21.2 游戏场景 535
21.3 敌人 538
21.4 火箭与爆炸 542
21.5 用户的交互 543
21.6 运行游戏 544
21.7 建立EXE可执行文件 544
本章小结 545
A.1 游戏开发 546
附录A 在线资源 546
第4篇 附录 546
A.2 OpenGL 547
A.3 DirectX 547
A.4 其他的资源 548
附录B 随书所附资料的使用 549
B.1 用户界面 549
B.2 文件结构 549
B.3 系统要求 549
B.4 安装 549
B.5 其他相关问题与疑难解答信息 550
B.6 是否仍旧需要帮助 550
- 《幼儿园游戏 规则性游戏》徐仁吉编 1951
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《幼儿英语游戏活动指导与实训》苏小菊,任晓琴主编;颜晓芳,覃静,谢恬恬,钟博维副主编 2020
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《近代体育游戏教育史料汇编 第1辑 1》王强主编 2016
- 《花样民游 幼儿园民间传统游戏的创新与指导》刘娟 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《《走近科学》精选丛书 中国UFO悬案调查》郭之文 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《中医骨伤科学》赵文海,张俐,温建民著 2017
- 《美国小学分级阅读 二级D 地球科学&物质科学》本书编委会 2016
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《强磁场下的基础科学问题》中国科学院编 2020
- 《小牛顿科学故事馆 进化论的故事》小牛顿科学教育公司编辑团队 2018
- 《小牛顿科学故事馆 医学的故事》小牛顿科学教育公司编辑团队 2018
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019