Ultimate game programming with DirectX

副标题:无

作   者:(美)Allen Sherrod著;狄东宁译

分类号:

ISBN:9787302172864

微信扫一扫,移动浏览光盘

简介

  开发计算机游戏充满了挑战性,需要开发人员具备大量的技能,富有奉献和创新精神。本书向读者介绍了如何将自身的技能与一些基本的C++编程技能结合起来,开发出自己的游戏。本书涵盖了游戏开发过程和方方面面,书中以一个名为Straned的第一人称射击游戏开发过程为主题展开介绍,首先介绍了DirectX 和Direct3D图形学,然后逐章介绍了游戏引擎和完整游戏的开发过程。主要内容涉及到基本的图形学技术、最基本的数学知识、碰撞检测和响应、声音回放、场景管理、动画以及模型/角色的加载和绘制。    一旦读者开发出该游戏,就可以轻松地对其功能进行扩展,并定制该游戏,添加一些特有的功能。如果读者已经具备了基本编程 技能且热爱游戏开发出自己的游戏,那么可以在本书中找到大量所需的素材。    本书适合于想实践游戏开发的学生、游戏编程的初学者以及想要学习游戏开发的C++程序员。

目录

第1章 DirectX导论 .1
1.1 本书概述 2
1.1.1 编写本书的目的 2
1.1.2 读者对象 3
1.1.3 工具和资源 3
1.2 游戏规划 3
1.2.1 项目Stranded概述 4
1.2.2 设计概述 4
1.2.3 引擎设计概述 5
1.2.4 渲染系统 6
1.2.5 输入系统 6
1.2.6 声音系统 6
1.2.7 物理系统 7
1.2.8 动画系统 7
1.2.9 人工智能(AI)系统 7
1.3 DirectX背景 8
1.3.1 DirectGraphics 8
1.3.2 DirectInput 9
1.3.3 DirectPlay 9
1.3.4 DirectMusic 9
1.3.5 DirectSound 10
1.3.6 安装DirectX 9.0 SDK 10
1.4 手动设置窗口 11
1.4.1 创建和显示Direct3D
窗口 13
1.4.2 使用Direct3D绘制图元 21
1.4.3 Direct3D顶点缓存 22
1.4.4 坐标系 23
1.5 演示程序 24
1.5.1 Lines演示程序 24
1.5.2 Triangle演示程序 32
1.5.3 Quad演示程序 35
1.5.4 Ortho Matrix演示程序 36
1.5.5 Perspective Projection Matrix演示程序 38
1.5.6 World Matrix演示程序 40
1.5.7 View Matrix演示程序 41
1.5.8 深度测试 42
1.5.9 模板源文件 43
1.5.10 使用DirectX框架设置Direct3D 47
1.6 总结 48
第2章 游戏:Stranded 49
2.1 游戏规划导论 50
2.2 游戏规划 50
2.1.1 角色模型 50
2.1.2 菜单和界面 51
2.1.3 环境 53
2.1.4 游戏剧本 53
2.3 引擎规划 53
2.3.1 渲染系统 54
2.3.2 输入系统 54
2.3.3 声音系统 55
2.3.4 人工智能 55
2.3.5 数学库 55
2.4 游戏项目概述 55
2.4.1 游戏项目第1部分 56
2.4.2 游戏项目第2部分 56
2.4.3 游戏项目第3部分 56
2.4.4 游戏项目第4部分 56
2.4.5 游戏项目第5部分 56
2.4.6 游戏项目第6部分 56
2.4.7 游戏项目第7部分 57
2.4.8 游戏项目第8部分 57
2.4.9 游戏项目第9部分 57
2.4.10 游戏项目第10部分 57
2.4.11 游戏项目第11部分 57
2.4.12 游戏项目第12部分 58
2.5 游戏项目第1部分:启动项目 58
2.5.1 游戏源文件 59
2.5.2 引擎源文件和头文件 63
2.5.3 D3DRenderer.cpp 67
2.6 总结 77
第3章 Direct3D光照和物体 79
3.1 Direct3D光照导论 80
3.1.1 光源 80
3.1.2 反射模型 82
3.1.3 光照和绘影技术 85
3.2 使用Direct3D函数创建物体 87
3.3 在Direct3D中创建光照 91
3.4 游戏项目第2部分:增加对硬件光照的支持 97
3.5 总结 101
第4章 纹理 103
4.1 Direct3D中的纹理介绍 105
4.2 创建和使用纹理 106
4.2.1 纹理坐标 109
4.2.2 Mipmap 110
4.2.3 纹理质量 111
4.2.4 Textures演示程序 111
4.2.5 多纹理贴图 115
4.2.6 Multitexture贴图演示程序 116
4.2.7 透明度 121
4.2.8 Transparency演示程序 121
4.2.9 立方体贴图纹理 122
4.3 sprite(子图形) 123
4.3.1 点状sprite 124
4.3.2 Point Sprites演示程序 125
4.4 凸凹贴图 127
4.5 保存纹理 130
4.6 幕外渲染 133
4.7 游戏项目第3部分:增加对纹理的支持 141
4.8 总结 152
第5章 Direct3D文本和图形用户界面 153
5.1 在屏幕上显示文本 154
5.2 计算帧率 159
5.3 创建和显示图形用户界面 161
5.3.1 状态显示界面(HUD) 161
5.3.2 GUI演示程序 162
5.3.3 main源文件 178
5.4 游戏项目第4部分:添加文本和GUI支持 183
5.4.1 游戏源文件 183
5.4.2 游戏项目引擎文件 191
5.5 总结 204
第6章 特效 207
6.1 多采样 207
6.2 雾 211
6.3 细节映射 214
6.4 粒子系统 219
6.5 游戏项目第5部分:增加特效 230
6.6 总结 ..237
第7章 基本脚本系统 239
7.1 脚本介绍 239
7.2 属性脚本系统 241
7.3 命令脚本系统 258
7.4 令牌流 273
7.5 其他类型的脚本系统 280
7.6 游戏项目第6部分:增加对脚本的支持 280
7.7 总结 281
第8章 游戏数学回顾 283
8.1 游戏数学介绍 284
8.2 矢量数学和回顾 285
8.3 矩阵数学 288
8.3.1 矩阵复习 289
8.3.2 Direct3D矩阵 293
8.4 四元组数学 293
8.5 射线数学 296
8.6 平面数学 296
8.6.1 平面复习 297
8.6.2 Direct3D平面 302
8.7 三角形和多边形 303
8.8 物理 304
8.9 游戏项目第7部分:创建数学库 304
8.10 总结 337
第9章 碰撞检测 339
9.1 碰撞介绍 340
9.2 边界框 340
9.3 边界球 344
9.4 平面碰撞 346
9.5 演示程序 347
9.5.1 边界框碰撞 348
9.5.2 球碰撞 354
9.5.3 平面碰撞 360
9.6 游戏项目第8部分:添加碰撞检测 366
9.7 总结 376
第10章 输入检测和响应 377
10.1 使用DirectInput 377
10.2 DirectInput演示程序 380
10.3 游戏项目第9部分:添加输入系统 396
10.4 总结 413
第11章 声音 415
11.1 声音介绍 416
11.1.1 DirectSound 416
11.1.2 DirectMusic 417
11.2 使用DirectMusic和DirectSound 417
11.3 声音演示程序 422
11.3.1 main源文件 422
11.3.2 演示程序的头文件和源文件 426
11.4 游戏项目第10部分:添加声音 432
11.5 总结 441
第12章 模型加载 443
12.1 模型加载介绍 443
12.2 使用X文件 445
12.2.1 X文件格式介绍 445
12.2.2 Material模板 447
12.2.3 Mesh模板 447
12.2.4 MeshMaterialList模板 448
12.2.5 MeshTextureCoords模板 448
12.2.6 加载和渲染X模型 449
12.2.7 X Model Loading演示程序 450
12.3 使用OBJ文件 455
12.3.1 OBJ文件格式介绍 456
12.3.2 OBJ Model Loading演示程序 458
12.4 使用UMF文件 471
12.4.1 UMF文件格式介绍 471
12.4.2 UMF模型加载演示程序 473
12.5 游戏第11部分:加载模型 485
12.5.1 添加模型加载支持 486
12.5.2 加载和渲染等级 487
12.6 总结 511
第13章 模型动画 513
13.1 动画介绍 514
13.2 动画路径 514
13.2.1 直线路径 514
13.2.2 曲线路径 520
13.2.3 圆形路径 526
13.2.4 路线 531
13.3 骨骼动画 543
13.4 X模型动画 550
13.5 游戏项目第12部分:添加对动画的支持功能 571
13.6 总结 573
第14章 场景管理 575
14.1 场景管理介绍 575
14.2 场景管理技术 576
14.2.1 状态管理 576
14.2.2 闭塞物和平截头体选择 577
14.2.3 八叉树和四叉树 578
14.2.4 二叉搜索树 579
14.2.5 可能可见度集合 580
14.3 总结 581
第15章 完成游戏引擎设计 583
15.1 日志系统 584
15.2 3D摄像机系统 588
15.3 平截头体选择 595
15.4 游戏项目第13部分:完成引擎设计 605
15.5 总结 610
第16章 开发游戏:Stranded 611
16.1 本章概述 612
16.2 组织游戏资源 613
16.3 加载和显示最终的游戏 625
16.4 摄像机移动和碰撞检测 634
16.5 游戏元素 641
16.6 代理角色 654
16.7 打包 664
16.8 总结 664
第17章 结束语 667
17.1 最后的思考 667
17.2 下一步的工作 668
附录A 推荐的书籍和网站 669
A.1 推荐的书籍 669
A.1.1 游戏和图形编程 669
A.1.2 通用编程 671
A.1.3 人工智能(AI)和数学 671
A.2 推荐的网站 671
附录B C++入门 675
B.1 C++基础 675
B.2 动态内存和文件输入/输出 683
B.3 结构和类 687
B.4 总结 689
附录C 关于光盘 691
C.1 文件夹 691
C.2 一般系统要求 ...691

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Ultimate game programming with DirectX
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon