资源大小: 72.43MB
发布时间: 2013-01-31
文件格式: pdf
下载次数: 6
分享到:

下载地址:

下载地址1
(本站为飞网专业下载站,域名:down.cfei.net)

资源简介:

中文名: 游戏编程精粹5原名: GAME Programming Gems 5别名: 游戏开发, 游戏编程作者: (美)Kim Pallister译者: 孟宪武资源格式: PDF版本: 扫描版出版社: 人民邮电出版社书号: 9787115163950发行时间: 2007年9月1日地区: 大陆语言: 简体中文简介: 内容介绍:本书是著名技术丛书“游戏编程精粹”系列书的第5卷,由全球60多位优秀游戏开发精英撰写的文章汇集而成。书中每篇文章都针对游戏编辑中的某一特定问题给出解决方案,并提供实用算法和源代码。全书由7章组成,包括通用编程、数学、人工智能、物理、图形图像、音频以及网络和多人游戏,覆盖了当前游戏开发中的所有关键技术领域。本书附光盘一张,提供书中所有的源程序和演示程序。  本书适合游戏开发专业人员阅读。专家级开发人员可以立刻应用书中介绍的技巧,而初中级程序员通过阅读本书将增强其技能和知识。本书是游戏程序员必备的参考资料。作者介绍:Kim Pallister英特尔公司软件与解决方案小组中的一名技术市场经理。他现在主要关注的是实时3D图形技术与游戏的开发。他为“游戏编程精粹”撰写了大量文章,并曾担任《游戏编程精粹3》通用编程部分的编辑。Mark DeLoura“游戏编程精粹”系列书创始人。他现任索尼(美国)计算机娱乐公司开发关系经理,关注于游戏平台和未来娱乐产品。 目录: 第1章 通用编程引言 2William E.Damon Ⅲ1.1 面向编辑器的上下文相关HUD 3Grex游戏公司,Adm Martin1.1.1 问题 31.1.2 解决方案 61.1.3 实现 71.1.4 用户控制 101.1.5 总结 111.1.6 参考文献 111.2 在游戏中解析文本数据 12Aurelio Reis1.2.1 开始之前 121.2.2 token到底是什么 121.2.3 编写词法分析器 131.2.4 工作原理 141.2.5 制定自己的格式 151.2.6 解析token列表 171.2.7 总结 181.2.8 参考文献 181.3 基于组件的对象管理 19Circle Studio公司,Bjarne Rene1.3.1 除旧迎新 191.3.2 组件 201.3.3 系统的创建 231.3.4 总结 291.4 用模板实现一个可在C++中使用的反射系统 30Artificial Mind & Movement公司,Dominic Fillion1.4.1 需求 311.4.2 第1部分:运行时类型信息 311.4.3 在RTTI的实现中使用模板 331.4.4 关于RTTI的其他修改建议 351.4.5 第2部分:属性对象 361.4.6 属性的存储 381.4.7 属性类型 381.4.8 属性注册钩子(Hook)函数 391.4.9 属性的注册 401.4.10 脚本应用 411.4.11 Tweaker应用 421.4.12 其他应用 421.4.13 总结 421.4.14 参考文献 431.5 可加速BSP算法的球体树 44Artificial Mind & Movement公司,Dominic Filion1.5.1 BSP算法 441.5.2 创建BSP树 451.5.3 优化最初步骤 461.5.4 总结 511.5.5 参考文献 511.6 改进后的视锥剔除算法 52Frank Puig Placeres1.6.1 视锥剔除 521.6.2 传统的六面法 531.6.3 雷达法 541.6.4 这个点在视锥内部吗? 541.6.5 球体在哪里? 561.6.6 其他应用 571.6.7 进一步的改造 581.6.8 总结 601.6.9 参考文献 601.7 通用的分页管理系统 61Ignacio Incera Cruz1.7.1 老式的分页解决方案:一查到底 611.7.2 GP分页解决方案:只检查需要的 621.7.3 索引是关键 621.7.4 GPtile:空间中的块 651.7.5 The world:搜索空间 671.7.6 窗口:在GPworld中航行 691.7.7 多窗口,多用户 701.7.8 优化:多线程分页 711.7.9 总结 711.7.10 参考文献 711.8 基于栈的大规模状态机 72James Boer1.8.1 传统状态机编码及相关问题 721.8.2 用C++方法解决游戏状态难题 741.8.3 状态接口类 751.8.4 状态的堆迭管理:为什么三维比二维好用 751.8.5 状态对象管理系统 761.8.6 总结 781.8.7 参考文献 791.9 使用BSP树构造CSG几何体 80Octavian Marius Chincisan1.9.1 CSG的布尔运算 801.9.2 为什么要使用BSP树 841.9.3 BSP树的实现 851.9.4 组合装配 861.9.5 总结 881.9.6 参考文献 891.10 在游戏中集成Lua 90eV Interactive公司,Matthew Harmon1.10.1 Lua的概况 901.10.2 Lua与C语言的接口 921.10.3 在游戏中嵌入Lua 941.10.4 实时性方面的考虑 971.10.5 脚本管理框架 991.10.6 总结 1021.10.7 参考文献 1021.11 用基于policy的设计改进Freelist 103Nathan Mefford1.11.1 Freelist概述 1031.11.2 Policy:雷霆救兵 1041.11.3 分解Freelist 1061.11.4 实现Freelist:这是它吗? 1071.11.5 选择最佳的policy 1091.11.6 可能性 1111.11.7 总结 1131.11.8 参考文献 1131.12 实时远程调试信息日志生成器 114Microids Canada公司,Patrick Duquette1.12.1 对标准化的调试日志的需求 1141.12.2 数据表示:你可看到我所看到的 1151.12.3 本文提议的解决方案 1151.12.4 游戏日志模块 1171.12.5 可能的改进和扩展 1181.12.6 总结 1181.12.7 参考文献 1181.13 透明的类的保存和加载技巧 119Patrick Meehan1.13.1 小窍门 1191.13.2 FreezeMgr的实现 1201.13.3 其他几个特性 1241.13.4 如何使用范例 1251.13.5 总结 1261.13.6 参考文献 1261.14 高效且忽略缓存的ABT树实现方法 128瑞士联邦理工学院(Swiss Federal Institute of Technology,简称EPFL),虚拟现实实验室(virtual Reality Lab,简称VRLab),Sébastien Schertenleib1.14.1 计算机内存结构 1281.14.2 ABT树 1291.14.3 确认阶段 1341.14.4 总结 1341.14.5 参考文献 1341.15 状态机的可视化设计 136Scott Jacobs1.15.1 为什么需要代码生成 1361.15.2 让“可视”成为可能 1371.15.3 状态的管理 1381.15.4 系统组装 1381.15.5 总结 1411.15.6 参考文献 1411.16 泛型组件库 142Warrick Buchanan1.16.1 类型识别系统 1421.16.2 工厂 1431.16.3 工厂单例与子工厂 1451.16.4 DLL工厂 1451.16.5 组件 1461.16.6 组件接口 1471.16.7 接口版本管理 1471.16.8 定义组件及其接口 1491.16.9 组件的使用 1501.16.10 配置组件库 1511.16.11 总结 1511.16.12 参考文献 1511.17 选择自己的路线——菜单系统 152Wendy Jones1.17.1 为什么需要菜单系统 1521.17.2 菜单系统的对象 1531.17.3 总结 1581.17.4 参考文献 159第2章 数学引言 162Naughty Dog公司,Eric Lengyel2.1 在计算机图形学中使用几何代数 163Chris Lomont2.1.1 引言 1632.1.2 几何代数 1642.1.3 线性代数 1692.1.4 词典 1712.1.5 实例 1722.1.6 总结以及将来的方向 1762.1.7 参考文献 1772.2 最小加速度Hermite曲线 178Tony Barrera, Barrera Kristiansen AB;G?vle大学创意媒体实验室Anders Hast;乌普萨拉大学图像分析中心, Ewert Bengtsson2.2.1 连接具有C1连续的最小弯曲曲线 1802.2.2 封闭的最小弯曲的曲线 1812.2.3 总结 1822.2.4 参考文献 1822.3 动画中基于样条的时间控制 183Red Storm Entertainment公司,James M. Van Verth2.3.1 开始 1832.3.2 一般的距离-时间函数 1842.3.3 根据样条构造距离-时间函数 1852.3.4 接口选择 1912.3.5 总结 1912.3.6 参考文献 1912.4 快速四元数近似插值 193Andy Thomason2.4.1 使用四元数来表示旋转 1932.4.2 四元数旋转插值 1952.4.3 近似算法 1962.4.4 算法之间的比较 2062.4.5 Squad相关的计算 2072.4.6 延伸阅读 2082.4.7 总结 2082.4.8 参考文献 2082.5 极小极大数值近似 209Christopher Tremblay2.5.1 众所周知的优化 2092.5.2 什么是理想的近似 2102.5.3 极小极大近似的介绍 2112.5.4 误差分析 2142.5.5 进一步改进近似 2152.5.6 参考文献 2162.6 应用于镜面和入口的斜视锥 217Eric Lengyel2.6.1 平面的表示 2172.6.2 投影矩阵 2182.6.3 裁剪面的修改 2192.6.4 OpenGL实现 2212.6.5 Direct3D实现 2242.6.6 致谢 2252.6.7 参考文献 225第3章 人工智能引言 228美国西北大学,Robin Hunicke3.1 利用导航网格实现自动掩体寻找 230Radical Entertainment公司,Borut Pfeifer3.1.1 导航网格 2303.1.2 开放目标寻路 2313.1.3 搜索掩体位置 2323.1.4 在掩体间行进 2333.1.5 团队掩护行为 2343.1.6 其他功能 2353.1.7 总结 2353.1.8 参考文献 2363.2 使用人工势场实现快速目标评级 237Factor 5公司,Markus Breyer3.2.1 基本思想 2373.2.2 公式 2383.2.3 势值函数的评估 2403.2.4 可视化 2403.2.5 方向场的应用 2413.2.6 多维扩展 2423.2.7 总结 2433.3 利用Lanchester损耗模型来预测战斗结果 244Page 44 Studios有限责任公司,John Bolton3.3.1 概述 2443.3.2 场景1:全体混战 2453.3.3 场景2:狭窄的石阶 2473.3.4 场景3:炮战 2483.3.5 场景4:关底Boss 2503.3.6 关于战斗力的再讨论 2513.3.7 局限性 2523.3.8 总结 2523.3.9 参考文献 2523.4 为游戏AI实现一个实用的智能规划系统 254Relic Entertainment公司,Jamie Cheng;加拿大阿尔伯塔大学计算机科学系,Finnegan Southey3.4.1 规划系统的框架 2553.4.2 规划域 2553.4.3 一个多主体规划器的例子 2583.4.4 规划的搜索 2623.4.5 几个应用问题 2633.4.6 优化 2653.4.7 总结 2663.4.8 参考文献 2663.5 针对多线程架构的决策树查询算法优化 268Intel公司,Chuck DeSylva3.5.1 概述 2683.5.2 注意事项 2693.5.3 优化 2703.5.4 总结 2733.5.5 参考文献 2733.6 利用并行虚拟机实现AI系统的并行开发 2752015公司,Michael Ramsey3.6.1 功能强大,但不白给 2753.6.2 核心术语及概念 2763.6.3 任务的创建 2773.6.4 任务管理 2793.6.5 PVM的实现 2823.6.6 实际应用:即时战略游戏 2833.6.7 强化游戏性 2843.6.8 总结 2853.6.9 参考文献 2863.7 超越A*算法 287Xtrem Strategy游戏公司,Mario Grimani;Monolith Productions公司,Matthew Titelbaum3.7.1 问题的定义 2873.7.2 算法 2883.7.3 算法的改进 2903.7.4 实现的细节 2923.7.5 应用实例 2923.7.6 性能方面的考虑 2973.7.7 几个前沿问题 2983.7.8 总结 2993.7.9 参考文献 2993.8 实现最小重新规划开销的先进寻路算法:动态A*(D*)算法 301Marco Tombesi3.8.1 D*算法 3023.8.2 D*算法的实现细节 3023.8.3 实例 3033.8.4 在游戏中又如何呢? 3053.8.5 总结 3053.8.6 参考文献 305第4章 物理学引言 308Red Storm娱乐公司,Mike Dickheiser4.1 游戏物理中空气动力学的近似计算 310美国应用研究联营公司(Applied Research Associates Inc.),Graham Rhodes4.1.1 背景知识 3104.1.2 钝体上的作用力 3134.1.3 流线体上的作用力 3154.1.4 应用实例 3184.1.5 总结 3194.1.6 参考文献 3204.2 动态青草的模拟和其他自然环境特效 321沃特卢大学,Rishi Ramraj4.2.1 水面特效 3214.2.2 青草的模拟 3234.2.3 变化传播模型 3244.2.4 树叶的模拟:模型的应用 3254.2.5 总结 3274.2.6 参考文献 3274.3 使用质点-弹簧模型获得真实的布料动画 328塞维利亚大学,Juan M. Cordero4.3.1 布料的离散表示 3284.3.2 作用力 3304.3.3 动态系统方法 3334.3.4 仿真模拟 3344.3.5 结论 3344.3.6 参考文献 3354.4 适合游戏开发的实用柔体动画技术:受压柔体模型 336波兰弗罗茨瓦夫大学,Maciej Matyka4.4.1 简化的质点-弹簧模型 3374.4.2 PSB模型背后的物理学 3384.4.3 PSB模型的实现 3394.4.4 典型的质点-弹簧模型 3404.4.5 PSB步骤 3414.4.6 体积计算 3414.4.7 采用预估修正法的Heun积分 3424.4.8 时间步长的计算速度 3424.4.9 几个仿真实例 3434.4.10 进一步的发展 3444.4.11 总结 3444.4.12 源代码说明 3454.4.13 致谢 3454.4.14 参考文献 3454.5 使用反馈控制系统让“布娃娃”活起来 347苹果公司,Michael Mandel4.5.1 现有的研究成果 3474.5.2 仿真过程的控制 3484.5.3 行为动作的创建 3504.5.4 总结 3514.5.5 致谢 3514.5.6 参考文献 3514.6 预定式物理系统的设计 353Daniel F.Higgins4.6.1 什么是预定式物理系统 3534.6.2 预定式物理引擎 3564.6.3 打磨上光 3604.6.4 龙卷风:一个好的开始 3634.6.5 总结 3654.6.6 参考文献 3664.7 预定式物理系统:相关技术及应用 367Shawn Shoemaker4.7.1 为什么要使用预定式物理系统 3674.7.2 预定式物理系统 3684.7.3 应用1:RTS游戏中建筑物的毁坏 3694.7.4 应用2:跳跃 3694.7.5 应用3:爆炸特效中的物体运动 3704.7.6 应用4:浮力 3714.7.7 应用5:伞兵 3714.7.8 总结 3734.7.9 参考文献 3734.8 三维汽车模拟器中真实的摄像机运动 374匈牙利布达佩斯技术经济大学,控制工程与信息技术系,图形图像小组,Barnabás Aszódi,Szabolcs Czuczor4.8.1 我们需要什么?物理法则 3744.8.2 我们得到的是什么?偶尔不够真实的运动 3754.8.3 考察摄像机的控制 3764.8.4 终极决策:实现人类的行为 3774.8.5 编程中涉及的问题 3794.8.6 总结 3824.8.7 关于演示程序 382第5章 图形图像引言 384ATI公司,Jason L. Mitchell5.1 在现代GPU上渲染逼真的云彩 386育碧公司,Jean-Fran?ois Dubé5.1.1 制造噪音 3865.1.2 云彩的密度 3885.1.3 云彩的光照处理 3895.1.4 优化 3905.1.5 总结 3905.1.6 参考文献 3915.2 下雪吧,下雪吧,下雪吧(下雨吧) 392微软公司(现就职于Google公司),Niniane Wang;微软公司, Bretton Wade5.2.1 使用纹理为粒子束建模 3935.2.2 渲染雪或雨的视差 3935.2.3 用锥体模拟摄像机的移动 3945.2.4 合并到一个矩阵中 3945.2.5 增加美工控制 3955.2.6 总结 3955.2.7 参考文献 3955.3 Widget:快速渲染和持久化小物体 396Martin Brownlow5.3.1 Widget的网格 3965.3.2 高效地绘制widget 3975.3.3 裁剪widget 4015.3.4 总结 4035.3.5 参考文献 4045.4 逼真的树木和森林的2.5维替用物 405布达佩斯理工大学, Gábor Szijártó5.4.1 引言 4055.4.2 以前的基于图像的方法 4065.4.3 改进以前的方法 4075.4.4 算法 4085.4.5 实现 4095.4.6 总结 4125.4.7 参考文献 4135.5 无栅格的可控火焰 414佛罗里达中心大学,计算机科学学院,Neeharika Adabala;佛罗里达中心大学,计算机科学学院和电影与数字媒体学院,Charles E. Hughes5.5.1 建模火焰 4155.5.2 实时渲染 4185.5.3 实例和讨论 4195.5.4 总结 4205.5.5 参考文献 4205.6 使用公告牌粒子构建强大的爆炸效果 422美国任天堂公司,Steve Rabin5.6.1 最初的闪光 4225.6.2 放射的火苗 4235.6.3 白色的热核心 4245.6.4 强烈的火球 4245.6.5 散发的烟雾 4255.6.6 碎片 4265.6.7 效果表 4265.6.8 额外的感觉 4265.6.9 效率问题 4275.6.10 总结 4285.6.11 参考文献 4285.7 渲染宝石的简单方法 429ATI研究院公司,Thorsten Scheuermann5.7.1 技术概览 4295.7.2 法线和cubemap采样问题 4305.7.3 传递的光能 4305.7.4 反射 4325.7.5 光斑 4335.7.6 总结 4365.7.7 参考文献 4365.8 体积化的后期处理 437A2M公司,Dominic Filion;摩托罗拉公司,Sylvain Boissé5.8.1 体积化的后期处理 4375.8.2 深度知识 4385.8.3 使用shader作z比较 4385.8.4 像素完美的裁剪 4395.8.5 后期处理 4405.8.6 最后一遍 4405.8.7 多个体 4405.8.8 总结 4415.8.9 参考文献 4415.9 过程式关卡生成 442北得克萨斯大学,Timothy Roden和Ian Parberry5.9.1 大致的方法 4425.9.2 关卡设计 4425.9.3 使用预制的几何体 4435.9.4 图的生成 4445.9.5 把预制件映射到图中 4465.9.6 可见性和碰撞检测 4485.9.7 增加关卡内容 4485.9.8 总结 4495.9.9 参考文献 4495.10 重组shader 450A2M公司,Dominic Filion5.10.1 组合效果 4505.10.2 处理组合爆炸 4515.10.3 通过HLSL生成shader变体 4525.10.4 整合重组的shader 4545.10.5 通过shader建立完整的流水线 4555.10.6 其他问题 4555.10.7 总结 4565.10.8 参考文献 456第6章 网络和多玩家引言 460Shekhar Dhupelia6.1 保持大型多人在线游戏大型、在线和永存 461Tantrum游戏公司,Shea Street6.1.1 快速浏览 4616.1.2 大型化 4626.1.3 保持在线 4646.1.4 保持永存 4656.1.5 总结 4666.1.6 参考文献 4666.2 实现一个无缝的世界服务器 467育碧公司,Patrick Duquette6.2.1 一些定义 4676.2.2 实现 4686.2.3 远程控制器,或如何管理服务器的启动时期 4686.2.4 代理服务器 4686.2.5 登录服务器 4696.2.6 节点服务器 4696.2.7 世界管理器 4726.2.8 由此而往何处 4736.2.9 IOCP 4736.2.10 参考文献 4736.3 设计一个脏话过滤系统 475Shekhar Dhupelia6.3.1 语法与内容 4756.3.2 字典 4756.3.3 解析器 4766.3.4 过滤 4766.3.5 最好的过滤实践 4776.3.6 人工干涉 4786.3.7 总结 4786.3.8 参考文献 4786.4 远程过程调用系统的快速和高效实现 480Hyun-jik Bae6.4.1 RPC:简介 4836.4.2 RPC:设计 4846.4.3 RPC:实现 4866.4.4 RPC:使用 4896.4.5 样例程序 4906.4.6 更多特性 4906.4.7 总结 4926.4.8 参考文献 4926.5 在对等通信中克服网络地址转换 493Jon Watte6.5.1 读者 4936.5.2 IP地址 4946.5.3 套接字使用 4946.5.4 路由器、点、协议 4956.5.5 UDP包图 4966.5.6 什么是NAT 4966.5.7 NAT是如何破坏客户/服务协议的 4996.5.8 NAT是如何破坏对等协议的 5016.5.9 用于游戏的端到端解决方案 5036.5.10 总结 5096.5.11 参考文献 5096.6 一个可靠的消息协议 510Martin Brownlow6.6.1 术语定义 5106.6.2 为什么要可靠的消息 5106.6.3 传统的可靠消息 5116.6.4 一个简单的方法 5116.6.5 总结 5146.6.6 延伸阅读 5156.7 安全的随机数系统 516Shekhar Dhupelia6.7.1 随机数影响在线游戏 5166.7.2 网络模型 5176.7.3 随机数池 5176.7.4 随机数发生器 5186.7.5 重载标准的rand()和srand() 5206.7.6 下一步:记录和调试 5206.7.7 下一步:即时重放 5206.7.8 总结 5216.7.9 参考文献 5216.8 安全的设计 522Adam Martin, Grex游戏公司6.8.1 安全问题真的如此重要么? 5226.8.2 目标 5236.8.3 术语 5236.8.4 威胁模型:测试不安全性 5246.8.5 安全策略:让威胁无效 5276.8.6 同时修订两个文档 5276.8.7 该技术的其他优势 5286.8.8 延伸阅读 5286.8.9 总结 5296.8.10 参考文献 529第7章 音频引言 532Mark DeLoura7.1 多线程音频编程技巧 533James Boer7.1.1 多线程编程简介 5337.1.2 线程的术语和机制 5347.1.3 鉴别适合多线程编程的音频任务 5357.1.4 Intel的超线程技术是什么 5367.1.5 线程编程技巧和操作 5367.1.6 多线程的示例程序 5377.1.7 实时流数据机制 5417.1.8 流和线程 5417.1.9 总结 5437.1.10 参考文献 5437.2 基于组的声音管理 544eV Interactive 公司,Matthew Harmon7.2.1 API包装预览 5447.2.2 能力 5457.2.3 定义组 5467.2.4 实现细节 5487.2.5 结论 5497.3 利用三维曲面作为音频发生器 550Sami hamlaoui7.3.1 方法 5507.3.2 点发生器: 5517.3.3 线发生器 5527.3.4 球体发生器 5537.3.5 方体发生器 5547.3.6 总结 5557.3.7 光盘上的内容 5557.3.8 参考文献 5557.4 基于回馈延迟网络(FDN)的快速环境反响 556Phenomic游戏开发公司,Christian Schüler7.4.1 怎样将FDN作为资源来利用 5567.4.2 什么是反响 5577.4.3 回馈延迟网络(Feedback Delay Network) 5577.4.4 选择正确的回馈矩阵 5597.4.5 选择正确的延迟长度 5607.4.6 控制回响时间 5607.4.7 sweeping和细部延迟问题 5617.4.8 总结和可能的改进 5637.4.9 感谢 5647.4.10 参考文献 5647.5 单演讲者语音识别简介 566Julien Hamaide7.5.1 引言 5667.5.2 识别系统 5677.5.3 特征提取 5687.5.4 即时配对匹配 5707.5.5 训练 5717.5.6 局限性 5727.5.7 总结 5727.5.8 参考文献 572


飞网下载站,免费下载共享资料,内容涉及教育资源、专业资料、IT资源、娱乐生活、经济管理、办公文书、游戏资料等。