注:光盘中包含的软件可在任何Microsoft Windows系统上运行,但需要完全支持OpenGL的三维视频卡。如果要对源代码作改动,则需要Microsoft Visual C++ 6.0。为了顺利创建场景,光盘中还包含3D Studio Max 3.x和4.x的插件。另外,在http://www.fly3d.com.br上有Fly3D SDK的文档、更新资料、新的演示、FAQ和讨论区。
无
这本书的目的在于介绍游戏制作中一些先进的技术。主要分为三个部分: (1) 一般过程,包括 构造过程――游戏系统所需要的离线处理过程 实时过程――游戏引擎执行的应用无关的过程 软件设计――如何用科学的设计把所有相关元素整合起来,如何将应用和游戏引擎结合。 (2) 实时渲染过程。实时渲染的理论和目前已有的实践将在各自的章节中加以介绍。另一章介绍几何处理,也就是多边形网格理论中一些重要的和容易忽略的问题。 (3) 角色动画的理论和实践。 在文章中这些问题将结合一个具体的游戏系统Fly3D SDK 2.0 加以讲述,这样做的目的是在一个实际的游戏系统中尽可能多的引出文中介绍的那些技术。由于这里考虑了理论又考虑了实践,所以我们必须选择一个特殊的设计方式。我们希望这种特殊化不会对读者理解整体原理造成较大影响。 并不是所有文中介绍的技术都在Fly3D中得到实现,一些章节是纯理论的。然而,就是在这些理论的章节中,大多数的重要方法也已被独立的实现了。对此,我们希望感兴趣的读者能得到足够的知识,从而可以在我们提供的引擎或者他们自己的引擎上实现这些技术。 在书写本书的时候(2002年8月),游戏与其他应用结合的潜力很大。用较低的处理代价实现较复杂的场景现在已经可行了。文中所提到的一个今后的发展目标就是编制工具用于除游戏以外的其他应用。 引擎就是执行游戏的系统,应用程序就是像编辑器、BSP构造器等那样的工具。通过这些工具,游戏能够被设计,并进行一些必要的预处理操来为引擎实时处理准备好游戏数据。游戏引擎用来执行游戏,使用离线阶段构造好的有效数据结构。除了有效地渲染静态内容,引擎必须也能处理动态物体间的交互以及游戏与玩家间的交互。 介绍了一个基本的游戏引擎和相关的BSP理论。文中我们还涉及了用在Fly3D第二版中的更先进的技术。这些发展体现了一种经验的演化和新的不断优化的过程。我们希望这些结果代表了游戏系统发展的现状。 系统的特性有: -/+ 完全插件导向 -/+ 支持复杂地形和封闭环境的BSP/PVS绘制管理。BSP的一般递归。 + 通过使用凸集的伪入口和A*算法自动的寻找路径 + 至多有8通道的固定功能的着色器 - 多纹理支持 + 着色器集成了硬件化的顶点编程和像素编程。 -/+ 为静态的几何结构创制带有柔和阴影的光照贴图 - 带有雾贴图的三维雾 - 考虑距离衰减的动态变色光源被用来重绘光照贴图和动态物体 + 动态网格(带有动画混合(animation blending)的顶点变形) + 带有骨架的动态网格(带有动画混合(animation blending)的骨骼/皮肤) + 用反向动力学进行Mocap的重定位 O 支持着色器的网格文件格式(.F3D) O 活动骨架的网格文件形式(.K3G) + 几种面片的类型:大面片(超过三个顶点),三角形带,三角形扇,三角形汤(tri-soup)和曲面片。 - 对于使用双二次曲面的曲面片进行动态的LOD + 硬件渲染选项,包括卡通/侧影轮廓线渲染 - 动态阴影—使用stencil的容积阴影。 - 采用客户/服务器架构的多用户支持(使用DirectPlay) O 立体声和3维音效支持(使用DirectSound) - 鼠标键盘输入(使用DirectInput) - Intel奔腾3的矢量和矩阵算数优化 O 直接从zip文件中读取数据 + 带有实时预览的.fly文件脚本编辑器 + 带有实时预览的.shr文件的着色器编辑器 O 带有3D Studio Max版本2,3,4的插件,用于输出包含任意数量动画的.F3D和.K3G文件。 O 带有3D Studio Max版本3,4的插件,用于输入输出.FMP(Fly3D Map)文件。 O flyBuild map应用程序和flyBuild构造前端。 O Quake的关卡转换器,以使用与Quake3兼容的关卡编辑器