图书介绍

游戏编程精粹 62025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

游戏编程精粹 6
  • (美)迪克黑森尔(Dickheiser,M.)编;孟宪武等译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115167265
  • 出版时间:2007
  • 标注页数:508页
  • 文件大小:48MB
  • 文件页数:561页
  • 主题词:游戏-应用程序-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

游戏编程精粹 6PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 通用编程2

简介&Adam Lake 2

1.1 Lock-Free算法&Toby Jones4

1.1.1 Compare-And-Swap及其他通用原语4

1.1.2 Lock-Free参数化的堆栈6

1.1.3 Lock-Free参数化的队列9

1.1.4 Lock-Free参数化的Freelist11

1.1.5 总结13

1.1.6 参考文献13

1.1.7 相关资源14

1.2 通过OpenMP来充分利用多核处理器的能力&Pete Isensee 15

1.2.1 OpenMP应用实例:粒子系统15

1.2.2 好处16

1.2.3 性能16

1.2.4 OpenMP应用实例:碰撞检测17

1.2.5 线程组18

1.2.6 函数的并行化18

1.2.7 缺陷19

1.2.8 结论20

1.2.9 参考文献21

1.2.10 相关资源21

1.3 用OpenCV库实现游戏中的计算机视觉&Arnau Ramisa、Enric Vergara、Enric Marti 22

1.3.1 引子22

1.3.2 游戏中的计算机视觉22

1.3.3 开放的计算机视觉库22

1.3.4 计算机视觉在游戏中一个简单的应用23

1.3.5 未来的工作31

1.3.6 参考文献31

1.4 游戏对象的地理网格注册&Roger Smith 33

1.4.1 引子33

1.4.2 四叉树和八叉树34

1.4.3 游戏对象的组织形式35

1.4.4 总结39

1.4.5 参考文献39

1.5 BSP技术&Octavian Marius Chincisan 40

1.5.1 什么是BSP?为什么要使用BSP?40

1.5.2 基于节点的BSP41

1.5.3 渲染一个基于节点的BSP树43

1.5.4 基于节点的BSP树(不进行分割)43

1.5.5 凸状叶子BSP树44

1.5.6 凸状叶子BSP树出入口生成47

1.5.7 凸状叶子BSP树潜在可视集48

1.5.8 PVS压缩51

1.5.9 地形BSP53

1.5.10 总结53

1.5.11 参考文献54

1.6 最相似字串匹配算法&James Boer 55

1.6.1 基于字符串的ID查找难题55

1.6.2 问题的定义56

1.6.3 现有的一些解决方案56

1.6.4 我们自己定制的字串匹配解决方案56

1.6.5 解决方案的实际应用62

1.6.6 总结63

1.6.7 参考文献63

1.7 利用CppUnit实现单元测试&Blake Madden 64

1.7.1 单元测试技术概览64

1.7.2 CppUnit概述65

1.7.3 运行测试夹具67

1.7.4 利用CppUnit进行模型类测试68

1.7.5 私有函数的单元测试74

1.7.6 用CppUnit测试底层功能75

1.7.7 总结79

1.7.8 参考文献80

1.8 为游戏的预发布版本添加数字指纹,威慑并侦测盗版行为&Steve Rabin 81

1.8.1 威慑策略81

1.8.2 利用水印和指纹来进行侦测82

1.8.3 添加数字指纹的流程83

1.8.4 数字指纹添加过程的安全性83

1.8.5 数字指纹的添加策略83

1.8.6 破解数字指纹85

1.8.7 总结86

1.8.8 参考文献86

1.9 通过基于访问顺序的二次文件排序,实现更快速的文件加载&David Koenig 87

1.9.1 问题的提出87

1.9.2 解决方案88

1.9.3 基于访问的二次文件排序的工作流程89

1.9.4 优化效果90

1.9.5 影响最终优化结果的因素90

1.9.6 潜在的问题91

1.9.7 其他一些通用的最佳实践方法91

1.9.8 总结92

1.9.9 参考文献92

1.10 你不必退出游戏:资产热加载技术可以实现快速的反复调整&Charles Nicholson 93

1.10.1 资产热加载的工作流程93

1.10.2 资产热加载过程的剖析94

1.10.3 实际应用中需要考虑的事项97

1.10.4 示范程序98

1.10.5 总结99

1.10.6 进阶参阅99

第2章 数学与物理102

简介&Jim Van Verth 102

2.1 浮点编程技巧&Chris Lomont 104

2.1.1 浮点数的格式105

2.1.2 例程的设计108

2.1.3 总结117

2.1.4 参考文献118

2.2 利用齐次坐标实现投影空间中的GPU计算&Vaclav Skala 119

2.2.1 相关的数学背景知识119

2.2.2 利用齐次坐标进行计算121

2.2.3 直线交叉124

2.2.4 总结125

2.2.5 附录A125

2.2.6 附录B126

2.2.7 致谢127

2.2.8 参考文献127

2.3 利用叉乘积求解线性方程组&Anders Hast 128

2.3.1 简介128

2.3.2 隐式直线130

2.3.3 高效的扫描转换的设置运算132

2.3.4 求解三元一次方程组134

2.3.5 总结135

2.3.6 致谢135

2.3.7 参考文献135

2.4 适用于游戏开发的序列索引技术&Palem GopalaKrishna 137

2.4.1 相关术语137

2.4.2 序列138

2.4.3 范围序列139

2.4.4 排列序列142

2.4.5 组合序列144

2.4.6 总结147

2.4.7 参考文献149

2.5 多面体浮力的精确计算&Erin Catto 150

2.5.1 浮力150

2.5.2 多边形的面积152

2.5.3 多面体的体积153

2.5.4 物体部分没入水中的情况154

2.5.5 算法的鲁棒性157

2.5.6 阻力158

2.5.7 关于源代码159

2.5.8 总结159

2.5.9 致谢159

2.5.10 参考文献159

2.6 带有刚体交互作用的基于粒子的实时流体仿真系统&Takashi Amada 161

2.6.1 流体仿真与平滑粒子的流体动力学161

2.6.2 扩展SPH方法,以支持流体和刚体的交互作用165

2.6.3 与动态刚体的交互作用:仿真更新169

2.6.4 具体的实现细节170

2.6.5 相关的优化173

2.6.6 总结174

2.6.7 参考文献174

第3章 人工智能176

引言&Brain Schwab 176

3.1 游戏的制作方法——应用基于模型的决策——在雷神之锤Ⅲ中应用蝗虫人工智能引擎&Armand Prieditis Mukesh Dalal 178

3.1.1 引言178

3.1.2 目前的游戏人工智能:基于规则179

3.1.3 规则的问题180

3.1.4 基于模型的游戏人工智能方法182

3.1.5 对游戏的接口182

3.1.6 对游戏人工智能开发者的好处和推论183

3.1.7 雷神之锤Ⅲ竞技场和蝗虫人工智能引擎184

3.1.8 相关工作185

3.1.9 结论和未来的工作186

3.1.10 参考文献186

3.2 独立非玩家角色合作行为的实现&Diego Garcés 187

3.2.1 可能的解决方案187

3.2.2 非玩家角色的结构189

3.2.3 合作的机制189

3.2.4 例子:合作寻找玩家194

3.2.5 结论195

3.2.6 参考文献195

3.3 针对游戏的基于行为的机器人架构&HugoPinto、Luis Otavio Alvares 196

3.3.1 包容体结构196

3.3.2 扩展的行为网络199

3.3.3 讨论201

3.3.4 结论201

3.3.5 参考文献202

3.4 使用模糊感知器、有限状态自动机和扩展的行为网络为虚幻竞技场游戏构建一个目标驱动的机器人&Hugo Pinto、Luis Otavio Alvares 203

3.4.1 扩展的行为网络设计203

3.4.2 层次模糊感知器208

3.4.3 有限状态自动机行为模块210

3.4.4 结论211

3.4.5 参考文献212

3.5 一个目标驱动的虚幻竞技场游戏角色程序:使用扩展的行为网络制作目标驱动的具有个性的代理&Hugo Pinto、Luis Otavio Alvares 213

3.5.1 扩展的行为网络214

3.5.2 行为选择的质量216

3.5.3 个性设计218

3.5.4 结论220

3.5.5 参考文献221

3.6 用支持向量机为短期记忆建模&Julien Hamaide 223

3.6.1 支持向量机简介223

3.6.2 短期记忆模型化226

3.6.3 CPU的消耗限制227

3.6.4 结论228

3.6.5 参考文献228

3.7 使用战力值评估模型进行战争役分析&Michael Ramsey 229

3.7.1 基本公式229

3.7.2 计算兵力230

3.7.3 计算潜在兵力230

3.7.4 为武器效力进行建模231

3.7.5 获得一个理论上的战争结局232

3.7.6 关于CEV232

3.7.7 一个QJM系统的例子232

3.7.8 局限性233

3.7.9 结论234

3.7.10 参考文献234

3.8 设计一个多层可插拔的AI引擎&Sebastien Schertenleib 235

3.8.1 相关工作235

3.8.2 AI引擎架构236

3.8.3 数据驱动类和属性237

3.8.4 分优先级的任务管理器240

3.8.5 性能问题和技术241

3.8.6 工具243

3.8.7 结论244

3.8.8 参考文献245

3.9 一个管理场景复杂度的模糊控制方法&Gabriyel Wong、Jialiang Wang 247

3.9.1 关键思想247

3.9.2 为什么使用模糊控制?247

3.9.3 工具248

3.9.4 系统设计249

3.9.5 游戏中的应用251

3.9.6 假设251

3.9.7 实现考虑252

3.9.8 测试和结果252

3.9.9 结论254

3.9.10 致谢254

3.9.11 参考文献254

第4章 脚本和数据驱动系统256

简介&Graham Rhodes 256

4.1 脚本语言总述&Diego Garcés 258

4.1.1 为什么要使用脚本语言258

4.1.2 简介258

4.1.3 语言编码259

4.1.4 与C++的整合262

4.1.5 性能特点267

4.1.6 开发支持特点269

4.1.7 总结271

4.1.8 参考文献271

4.2 把C++对象绑定到Lua&Waldemar Celes、Luiz Henrique de Figueiredo Roberto Ierusalimschy 273

4.2.1 绑定函数273

4.2.2 绑定宿主对象和Lua数值276

4.2.3 绑定宿主对象和Lua对象278

4.2.4 宿主和Lua表绑定282

4.2.5 总结283

4.2.6 参考文献285

4.3 使用LUA协同程序实现高级控制机制&Luiz Henrique de Figueiredo、Waldemar Celes Roberto Ierusalimschy 286

4.3.1 Lua协同程序286

4.3.2 过滤器287

4.3.3 迭代器288

4.3.4 任务安排291

4.3.5 协作式多线程291

4.3.6 总结296

4.3.7 参考文献296

4.4 在多线程环境里处理高级脚本执行&Sebastien Schertenleib 297

4.4.1 基于组件的软件和脚本的解释程序297

4.4.2 协同程序与微线程程序298

4.4.3 微线程管理器298

4.4.4 嵌入Python300

4.4.5 试验和结果304

4.4.6 总结305

4.4.7 参考文献305

4.5 使用非插入型代理导出角色属性&Matthew Campbell、Curtiss Murphy 306

4.5.1 角色、代理和属性306

4.5.2 非插入型和动态体系结构308

4.5.3 角色属性308

4.5.4 角色代理311

4.5.5 从理论到实践313

4.5.6 总结314

4.5.7 参考文献314

4.6 基于组件的游戏对象系统&Chris Stoy 315

4.6.1 游戏对象315

4.6.2 基本的游戏对象组件316

4.6.3 在游戏对象中实现组建管理317

4.6.4 组件间的通信319

4.6.5 游戏组件模板320

4.6.6 游戏对象模板322

4.6.7 数据驱动的游戏对象创建323

4.6.8 总结324

第5章 图形学326

简介&Paul Rowan326

5.1 交互角色真实的静止动作合成&Arjan Egges,Thomas Di Giacomo和Nadia Magnenat-Thalmann 328

5.1.1 简介328

5.1.2 人体动画的主分量329

5.1.3 姿势变换331

5.1.4 姿势的连续微小变化334

5.1.5 总结337

5.1.6 参考文献337

5.2 用自适应二叉树进行空间剖分&Martin Fleisz 339

5.2.1 如何建立自适应二叉树339

5.2.2 ABT实现细节340

5.2.3 找到合适的分割面343

5.2.4 在动态场景中使用ABT345

5.2.5 渲染ABT346

5.2.6 总结347

5.2.7 致谢348

5.2.8 参考文献348

5.3 用有向包围盒增强对象裁减&Ben St.John 349

5.3.1 方法概要349

5.3.2 传统技术350

5.3.3 针对二维的有效解决方案350

5.3.4 传统技术上的改进352

5.3.5 对包围盒进行筛选354

5.3.6 进一步改进355

5.3.7 总结356

5.3.8 参考文献356

5.4 皮肤分离的优化渲染&Dominic Filion 357

5.4.1 简介357

5.4.2 分割的概念358

5.4.3 权重分割的启发式算法359

5.4.4 骨骼调色板的启发式算法359

5.4.5 启发式算法的细节361

5.4.6 总结364

5.5 GPU地形渲染&Harald Vistnes 365

5.5.1 算法365

5.5.2 细节层次366

5.5.3 避免裂缝368

5.5.4 视锥体裁减369

5.5.5 法线计算369

5.5.6 碰撞检测370

5.5.7 实现细节370

5.5.8 运行结果371

5.5.9 总结372

5.5.10 参考文献372

5.6 基于GPU的交互式流体动力学与渲染&Frank Luna 373

5.6.1 数学背景知识374

5.6.2 GPU实现376

5.6.3 流体互动382

5.6.4 补充材料383

5.6.5 总结384

5.6.6 参考文献384

5.7 基于多光源的快速逐像素光照渲染&Frank Puig Placeres 386

5.7.1 延迟解决方案386

5.7.2 高端硬件的延迟着色实现387

5.7.3 基本存储优化389

5.7.4 着色器优化和硬件限制391

5.7.5 扩展图像空间(Extending Image-Space)的后处理特效(Post-Processing Effects)394

5.7.6 总结394

5.7.7 参考文献394

5.8 路标渲染的清晰化&J?rn Loviscach 395

5.8.1 反走样阈值划分纹理(Antialiasing Thresholded Textures)396

5.8.2 阈值划分的优化纹理(Optimal Textures for Thresholding)400

5.8.3 创作程序(The Authoring Application)403

5.8.4 总结与展望405

5.8.5 参考文献405

5.9 天空渲染在游戏中的实际运用&Aurelio Reis 407

5.9.1 所需与所得相悖407

5.9.2 天空的组成408

5.9.3 瓶颈409

5.9.4 立方体天空贴图概要411

5.9.5 特殊时间412

5.9.6 演示程序的黎明413

5.9.7 进入地平线之下414

5.9.8 总结414

5.9.9 参考文献415

5.10 基于OpenGL帧缓冲区对象的高动态范围渲染&Allen Sherrod 416

5.10.1 帧缓冲区对象简介416

5.10.2 设置帧缓冲区对象417

5.10.3 基于帧缓冲区对象的高动态范围渲染419

5.10.4 总结421

5.10.5 补充材料421

5.10.6 参考文献422

第6章 音频424

简介&Alexander Brandon 424

6.1 由可变形网格(Deformable Meshes)实时生成声音&Marq Singer 426

6.1.1 对《游戏编程精粹4》的回顾426

6.1.2 概述427

6.1.3 对模态分析的简要回顾427

6.1.4 声音要求429

6.1.5 从变形到声音429

6.1.6 总结430

6.1.7 进一步阅读430

6.1.8 参考文献431

6.2 实时音效轻量级生成器&Frank Luchs 432

6.2.1 环境声引擎432

6.2.2 声音合成432

6.2.3 真实世界范例434

6.2.4 总结435

6.2.5 范例436

6.2.6 参考文献436

6.3 实时混音总线&James Boer 437

6.3.1 并非不重要的任务437

6.3.2 实现音量总线链438

6.3.3 以比率或分贝的形式来表示音量440

6.3.4 执行效率问题440

6.3.5 其他增强441

6.3.6 总结441

6.3.7 参考文献441

6.4 可听集(Potentially Audible Sets)&Dominic Filion 442

6.4.1 PVS入门442

6.4.2 PAS基础443

6.4.3 直接声音路径443

6.4.4 为门窗创建动态PAS447

6.4.5 PAS扩展:传导(transmission)448

6.4.6 PAS扩展:反射449

6.4.7 总结450

6.4.8 参考文献450

6.5 一种开销较低的多普勒效果&Julien Hamaide 451

6.5.1 多普勒效果451

6.5.2 编写多普勒效果程序454

6.5.3 线性插值454

6.5.4 根据R来计算下标455

6.5.5 非恒定速度456

6.5.6 信号对齐(Aliasing)457

6.5.7 实现457

6.5.8 总结457

6.5.9 资源458

6.6 仿造实时DSP效果&Robert Sparks 459

6.6.1 仿造459

6.6.2 例子:收音机在房间中播放音乐459

6.6.3 声音能量恒定曲线(Constant Power Volume Curve)461

6.6.4 对声道音量进行进一步控制461

6.6.5 在DirectSound中播放多声道文件462

6.6.6 代价和好处462

6.6.7 总结462

6.6.8 致谢462

第7章 网络及多人在线464

简介&Scott Jacobs 464

7.1 3D动画角色数据的动态自适应流&Thomas Di Giacomo、HyungSeok Kim、Stephane Garchery和Nadia Magnenat-Thalmann Chris Joslin 465

7.1.1 简介465

7.1.2 背景介绍与相关方法465

7.1.3 处理可缩放3D数据的准备和实施466

7.1.4 自适应数据的传输471

7.1.5 总结473

7.1.6 参考文献473

7.2 大规模多人在线游戏基于复杂系统的高阶架构&Viknashavaran Narayanasamy、Kok-Wai Wong和Chun Che Fung 475

7.2.1 复杂系统和突发性事件475

7.2.2 多重架构476

7.2.3 基于回馈的决策系统484

7.2.4 总结485

7.2.5 参考文献485

7.3 为游戏物件生成全局唯一标识符&Yongha Kim 487

7.3.1 游戏物件GUID建立的需求487

7.3.2 生成GUID488

7.3.3 对于特殊情况的处理489

7.3.4 总结490

7.3.5 参考文献490

7.4 利用Second Life为大规模多人在线游戏原形设计游戏概念原形&Peter A.Smith 491

7.4.1 简介491

7.4.2 为什么要用到Second Life491

7.4.3 初试“第二人生(Second Life)”494

7.4.4 在Second Life中的设计要点495

7.4.5 原形的开发496

7.4.6 一个成功的例子498

7.4.7 总结499

7.4.8 参考文献499

7.5 稳定的P2P游戏TCP连接及敏感NAT&Larry Shi 501

7.5.1 问题501

7.5.2 技术水平502

7.5.3 方法503

7.5.4 应用方面507

7.5.5 局限性507

7.5.6 结论508

7.5.7 参考文献508

热门推荐