《网络游戏客户端编程》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:信息产业部软件与集成电路促进中心编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121038552
  • 页数:470 页
图书介绍:本书的内容可以分为两个部分:第1部分:第1章——第10章:介绍了3D网络游戏客户端编程的基本技术,包括计算机图形学的基本知识,DirectX基础知识,Direct3D图形渲染,游戏控制的实现,游戏中的音乐与音效的实现,部分游戏基本特效的实现以及简单3D游戏场景的制作。通过本部分的学习,读者可以自己搭建一个简单的3D游戏场景。第2部分:第11章-第18章:网络游戏客户端编程的高级技术及核心算法,包括HLSL语言基础,人工智能,寻路算法,物理模拟,碰撞检测,LOD地形渲染。通过本部分的学习,读者可以深入的学习网络游戏客户端的核心算法。

第1章 计算机图形学基础 1

1.1 3D图形学概述 2

1.1.1 计算机图形学基础 2

1.1.2 计算机图形显示技术 4

1.1.3 计算机图形处理器 4

1.1.4 显卡发展史 6

1.2 向量 11

1.2.1 向量的概念 11

1.2.2 坐标系 12

1.2.3 向量的运算 13

1.3 矩阵 16

1.3.1 矩阵的概念 16

1.3.2 矩阵的运算 17

1.3.3 齐次坐标 20

1.4 图形几何变换 20

1.4.1 图形几何变换的意义 20

1.4.2 二维图形的几何变换 21

1.4.3 三维图形的几何变换 23

1.5 四元数 25

1.5.1 复数理论 25

1.5.2 四元数的运算 26

1.5.3 四元数在图形学中的应用 28

本章小结 30

自测习题 31

课后作业 31

第2章 DirectX基础 33

2.1 DirectX介绍 34

2.1.1 DirectX及其历史 34

2.1.2 DirectX开发库 37

2.1.3 DirectX编程约定和命名规范 37

2.1.4 DirectX环境配置 40

2.2 D3D相关概念 42

2.2.1 HAL和COM 42

2.2.2 D3D中的基础概念 46

2.2.3 空间的概念 47

2.3 T&L渲染流水线 48

2.3.1 T&L的概念 48

2.3.2 空间转换 49

2.3.3 照明与投影 50

2.3.4 投影后的处理 51

2.3.5 渲染中的数据存储 53

2.4 D3D中的图元 54

2.4.1 D3D中图元(Primitive)的概念 54

2.4.2 图元类型 55

2.5 D3D程序基本框架 57

2.5.1 初始化Direct3D程序 58

2.5.2 图形显示 63

本章小结 65

自测习题 65

课后作业 66

第3章 绘制基本图形 67

3.1 绘制基本图形 68

3.1.1 绘制基本图形的完整代码 68

3.1.2 绘制图形的代码分析 72

3.2 索引缓冲绘制矩形 76

3.2.1 使用索引缓冲(Index Buffer)的意义 76

3.2.2 在D3D中如何使用索引缓冲 76

3.3 D3D中的图形学 78

3.3.1 D3D中的图形学基础 78

3.3.2 D3D中的平面 83

3.3.3 D3D中的射线 86

3.3.4 D3D中的图形变换 87

本章小结 89

自测习题 89

课后作业 90

第4章 实现基本光照与纹理 91

4.1 基本纹理绘制 92

4.1.1 纹理的概念 92

4.1.2 D3D的纹理绘制 94

4.2 特殊纹理渲染 99

4.2.1 纹理过滤(Texture Filtering)与采样 99

4.2.2 纹理寻址(Texture Address) 103

4.2.3 纹理包装(Texture Wrapping)与压缩 106

4.3 基本光照模型与表面材质 109

4.3.1 光照模型 109

4.3.2 光源类型 111

4.3.3 光源的属性 112

4.3.4 物体表面材质 114

4.3.5 在Direct3D中实现光照 115

本章小结 117

自测习题 118

课后作业 118

第5章 使用网格模型 119

5.1 使用网格建立基本模型 120

5.1.1 ID3DXMesh接口 120

5.1.2 子集和属性缓冲 121

5.1.3 网格渲染 122

5.1.4 优化网格 122

5.1.5 属性表 123

5.1.6 邻接信息 124

5.1.7 克隆网格 125

5.1.8 创建Mesh(D3DXCreateMeshFVF) 126

5.1.9 创建并渲染Mesh 126

5.2 游戏地形网格 128

5.2.1 高度图的概念 129

5.2.2 高度图的使用 130

5.3 使用模型 134

5.3.1 X文件格式 134

5.3.2 输出.X文件格式 137

5.3.3 在Direct3D程序中载入X文件 139

5.3.4 三维模型动画 141

5.3.5 骨骼动画详解 143

本章小结 148

自测习题 149

课后作业 149

第6章 实现基本游戏特效 151

6.1基 本渲染属性 152

6.1.1 深度缓冲 152

6.1.2 Alpha混合 153

6.1.3 Alpha测试 156

6.1.4 多边形填充和渲染 157

6.1.5 图形反锯齿 158

6.2 多纹理混合 160

6.2.1 多纹理的概念 160

6.2.2 多重纹理的使用 161

6.3 雾化效果 163

6.3.1 D3D中的雾化模型 163

6.3.2 实现雾化效果 165

6.4 2D文字和图形 167

6.4.1 D3D中使用2D文字 167

6.4.2 D3D中使用二维图形 169

6.5 公告板技术 170

6.5.1 公告板技术原理 170

6.5.2 公告板的程序实现 171

6.6 粒子系统 172

6.6.1 粒子系统的概念 172

6.6.2 粒子系统的实现 173

本章小结 178

自测习题 178

课后作业 178

第7章 实现游戏实时阴影 179

7.1 模板技术 180

7.1.1 模板的概念 180

7.1.2 模板的程序实现 181

7.1.3 模板的简单应用 183

7.2 实时阴影技术 188

7.2.1 阴影体 188

7.2.2 实时阴影的技术实现 192

本章小结 199

自测习题 200

课后作业 200

第8章 实现游戏控制 201

8.1 游戏控制概述 202

8.1.1 传统的控制 202

8.1.2 DirectIput 203

8.2 DirectX键盘控制 207

8.2.1 初始化键盘对象 207

8.2.2 设置键盘设备状态 208

8.2.3 获取键盘输入 209

8.2.4 释放设备 212

8.3 DirectX鼠标控制 212

8.3.1 使用鼠标设备的流程 212

8.3.2 使用鼠标控制 217

8.4 游戏控制综合应用 221

8.4.1 游戏角色控制 221

8.4.2 摄像机控制 226

本章小结 228

自测习题 229

课后作业 229

第9章 实现游戏音乐与音效 231

9.1 DirectMusic对音频文件的支持 232

9.1.1 游戏音乐音效概述 232

9.1.2 DirectMusic的特点 233

9.1.3 DirectMusic的编程步骤 234

9.2 DirectSound对音频文件的支持 238

9.2.1 DirectSound的特点 238

9.2.2 DirectSound的编程步骤 239

9.3 DirectShow对流媒体的支持 246

9.3.1 DirectShow的工作原理 246

9.3.2 DirectShow的编程步骤 250

9.3.3 DirectShow播放AVI动画 252

9.4 3D音效的实现 253

9.4.1 3D音效模型 254

9.4.2 3D音效实现 255

本章小结 256

自测习题 256

课后作业 257

第10章 建立基本游戏场景 259

10.1 CGameApp 260

10.2 CMath 262

10.3 CBoundingBox 263

10.4 CCamera 265

10.5 CMesh 267

10.6 CMP3 268

10.7 CParticleSystem 269

10.8 CShadowVolume 272

10.9 CSkyBox 273

10.10 CTerrain 274

10.11 CUnit 275

10.12 CSkinMesh 277

本章小结 282

第11章 HLSL语言基础 283

11.1 HLSL基本概念 284

11.1.1 着色器和高级语言 284

11.1.2 VertexShader和PixelShader 285

11.1.3 HLSL工作模型 286

11.1.4 VertexShader和PixelShader的版本 287

11.1.5 Technique和Pass 288

11.2 HLSL中的变量 288

11.2.1 变量类型 289

11.2.2 变量类型的转换 292

11.2.3 变量的其他修饰用关键字 293

11.2.4 变量重组 294

11.3 HLSL中的基础语法 295

11.3.1 HLSL的函数 295

11.3.2 HLSL中的内置函数 296

11.3.3 数学表达式 296

11.3.4 依赖于不同版本的变量类型 297

11.3.5 HLSL关键字和保留字表 298

本章小结 299

自测习题 299

课后作业 299

本章附录函数定义表 299

第12章 Direct3D与HLSL 309

12.1 HLSL编码入门 310

12.1.1 一个简单的示例 310

12.1.2 获取图形硬件所支持的Shader版本 311

12.1.3 编译HLSL代码 313

12.1.4 定义technique和pass 316

12.1.5 修改渲染状态 316

12.2 HLSL中的语义 317

12.2.1 语义的概念 317

12.2.2 Direct3D中的FVF与多流 318

12.2.3 语义的应用 319

12.2.4 输入/输出语义的其他相关内容 320

12.2.5 语义的作用 322

12.2.6 使用语义的原因 322

12.3 HLSL中的释义 323

12.3.1 释义的概念 323

12.3.2 获取释义信息 325

本章小结 326

自测习题 327

课后作业 327

第13章 HLSL基本应用 329

13.1 D3D与HLSL的交互 330

13.1.1 在D3D中调用HLSL代码 330

13.1.2 与变量交互的方法 331

13.1.3 获取变量的所有信息 335

13.1.4 枚举出代码中的所有变量 338

13.1.5 获取Technqiue和Pass的信息 340

13.2 基本渲染效果 344

13.2.1 顶点变换 344

13.2.2 顶点颜色 348

13.2.3 使用纹理 349

13.2.4 光照效果 351

本章小结 359

自测习题 359

课后作业 359

第14章 寻路算法 361

14.1 图论基础 362

14.1.1 图的定义 362

14.1.2 图的表示结构 363

14.2 基本寻路算法 365

14.2.1 深度优先算法 365

14.2.2 广度优先算法 370

14.3 A*算法 376

14.3.1 A*算法的思想 376

14.3.2 A*算法的逻辑 377

14.3.3 A*算法的实现 379

本章小结 391

自测习题 392

课后作业 392

第15章 人工智能 393

15.1 人工智能概述 394

15.1.1 人工智能的概念及其应用 394

15.1.2 游戏中的人工智能 396

15.1.3 游戏中人工智能的系统结构 398

15.2 有限状态机 399

15.2.1 电脑角色的行为 399

15.2.2 有限状态机 401

15.2.3 模糊状态机 403

15.3 博弈论 403

15.3.1 博弈问题概述 403

15.3.2 完全信息静态博弈 404

15.3.3 完全信息动态博弈 406

15.3.4 不完全信息静态博弈 407

15.3.5 不完全信息动态博弈 408

15.3.6 博弈论的应用 409

本章小结 416

自测习题 416

课后作业 417

第16章 物理模拟 419

16.1 相关物理概念 420

16.1.1 基本物理单位 420

16.1.2 主要物理单位 422

16.2 物理环境模拟 427

16.2.1 动量守恒与传递 427

16.2.2 模拟重力场中的运动 429

16.2.3 模拟摩擦力 432

本章小结 435

自测习题 436

课后作业 436

第17章 碰撞检测 437

17.1 2D环境下的碰撞 438

17.1.1 简单的平面碰撞反应 438

17.1.2 2D物体间的精确碰撞响应 441

17.2 3D环境下的碰撞 448

17.2.1 碰撞检测概述 448

17.2.2 包围球碰撞检测 448

17.2.3 AABB算法 450

本章小结 451

自测习题 452

课后作业 452

第18章 LOD地形渲染 453

18.1 地表的四叉树分割与数据存储 454

18.1.1 四叉树概念及与LOD的关系 454

18.1.2 四叉树的地表分割原理 454

18.1.3 四叉树分割数据的存储 454

18.1.4 四叉树的实现 455

18.2 平截头体对场景的分割 456

18.2.1 平截头体的剔除原理 456

18.2.2 边界球体的剔除原理 456

18.2.3 平截头体的实现 458

18.2.4 四叉树的剔除 458

18.3 视点距离相关的结点评价 462

18.3.1 结点评价系数与结点分割的LOD等级 462

18.3.2 LOD的实现 463

18.4 地形结点渲染网格的生成 464

18.5 LOD地形渲染实现 466

本章小结 469

自测习题 469

课后作业 470