游戏物理引擎开发

游戏物理引擎开发

ID:9798953

大小:132.00 KB

页数:10页

时间:2018-05-10

游戏物理引擎开发_第1页
游戏物理引擎开发_第2页
游戏物理引擎开发_第3页
游戏物理引擎开发_第4页
游戏物理引擎开发_第5页
资源描述:

《游戏物理引擎开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第1章概述第1章概述物理学一直是计算机游戏的热点,若缺乏物理引擎的支持,动作类游戏便会黯然失色。同时,这一趋势也逐渐蔓延至其他风格的游戏中,包括战略游戏以及猜谜类游戏。针对这一发展趋势,多家中间件公司均提供了高性能的物理模拟器。另外,多款大制作游戏均体现了商业级物理引擎之特征。然而,商业级软件包通常价格不菲,对于广大开发者而言,“定制型”物理解决方案通常兼具经济性、操控性以及灵活性。尽管如此,物理学依然充满了神秘感,且与数学密不可分,因而令人望而生畏。2000年,我曾着手设计通用物理引擎,当时的情况可描述为:资料匮

2、乏且无代码可用,同时,该领域内充斥着诸多自相矛盾的信息。天道酬勤,经过不懈的努力,一款商业级物理引擎终于诞生。当然,这一经历本身也是一个自我提高和学习的过程。在随后的5年中,它与其他商业级物理系统频繁地出现于多款游戏中。本书直接体现了作者多年的努力成果和开发经验。关于游戏物理,相关书籍、网站和文章不胜枚举,然而却鲜有资料介绍物理引擎的解决方案,即适用于游戏中的、较为全面的模拟技术。本书旨在引领读者构建物理引擎,并以循序渐进的方式对其进行分析,进而体现构建过程中的设计决策。在本书的指导下,读者可对示例物理引擎实施进一

3、步扩展,构建自己的物理系统,进而展示不同的设计理念。1.1游戏物理物理学包含了丰富内容,并可进一步划分为数百个子学科,各学科对物理学中的不同问题予以关注,例如光学或星球中的核反应。其中,某些内容适用于游戏,例如光学原理。据此,读者可尝试模拟光线的传播和反射行为,以使图像具有更为真实的外观——这正是光线跟踪的用武之地,在多个场合中均可看到它的身影。然而,尽管上述内容隶属于物理学范畴,但并非是本书所讨论的游戏物理学,本书将对此加以深度考察。某些物理学知识与本书并不存在直接关联,例如,如果游戏的卖点并非是展示核反应这一复

4、杂的技术,核物理模拟往往较少出现于游戏中。·9·第1章概述实际上,游戏物理仅涉及物理学中的某些经典理论,即重力和其他作用力模式下的用于控制物体运动方式的物理定律。在学术领域内,部分定律已被最新理论所替代,例如相对论和量子论。在游戏中,此类定律常用于展示实体对象的真实运动行为,包括质量、惯性、反弹行为以及浮力。游戏物理学基本上与首批游戏同时诞生,并用于模拟粒子的运动方式,包括火花、爆竹、弹道模拟、焰火以及爆炸效果;近30年来,物理模拟还用于飞行模拟器中;近期,物理模拟广泛出现于汽车工业中,进而提升轮胎、悬挂系统以及发

5、动机模型的精度。随着处理性能的不断提升,视觉效果体现了更为丰富的内容。例如,箱体可随意移动、堆放;墙体被摧毁时所展现的灰飞烟灭效果——此类视效均属于刚体物理学范畴,读者可稍加扩展,即可获得“软物体”的行为方式,例如布料、旗帜以及绳索。近期出现的布娃娃系统即模拟了人类骨骼系统的行为方式,包括绊倒、跌倒以及挣扎时的各种动作。本书将对物理学内容进行系统、全面的介绍,并不断完善物理引擎中的相关组件,进而支持粒子效果、飞行模拟、车辆物理行为、箱体对象的运动、对象被摧毁时的视效、布料以及布娃娃系统等内容。1.2物理引擎尽管游戏

6、物理学可视为一类新生事物,但近30年来,其实现方式发生了显著的变化。最初,各类视效仅对自身内容进行编程设计,对应物理学内容仅局限于某一游戏作品。例如,弓箭沿某一轨迹运行,开发人员针对该轨迹方程予以编程实现。除此之外,该方程别无他用。针对简单的模拟操作(代码量较少且物理应用范围有限),该过程工作良好。稍后将会看到,基本的粒子系统将包含数百行代码,随着复杂度的不断增加,直接获取令人可信的物理效果将变得越发困难。例如,在首款Half-Life游戏中,当玩家移动箱体时,错误的物理实现代码使得箱体对象以一种奇怪的方式运动。物

7、理效果的实现难度以及多款游戏中的同一效果迫使开发人员寻找通用的解决方案,进而实现代码的复用。复用技术体现了某种通用特征,例如,弹道模拟器仅处理弓箭的运动轨迹,并于随后对其进行硬编码。若同一段代码需要处理子弹的运动行为,则软件系统须对特定的弹道轨迹进行抽象,进而生成具有某种共性的物理方案——这体现了物理引擎的含义,即基于物理学的公共代码段,而非针对各游戏方案进行程序设计。这里的问题是,若存在特定代码对弓箭对象进行模拟,则该操作可胜任模拟过程中的全部任务;若采用通用引擎模拟任意弹道轨迹,针对当前弓箭对象,则需向引擎提供

8、该对象的各类特征,因而需要设定弓箭、子弹以及箱体的属性。这一重要差别须引起读者的关注。通常情况下,物理引擎可视为一类大型计算器,即执行数学运算并对物理行为进行模拟,且并不了解模拟的具象内容。对此,除了引擎自身之外,读者还需提供表达游戏关卡的特定游戏数据。·9·第1章概述尽管各类游戏数据将贯穿于本书中,但本书重点并非讨论数据的获取方式。在商业级引擎中,关卡编辑

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。