震撼细节!《帝国时代3》物理引擎解析
《帝国时代3》早期壁纸,物理引擎已经在炮轰之中显出震撼效果
除了讨论画面和可玩性之外,网上还有一些帖子是关于《帝国时代3》中的一些细节的,比如“炸弹在人群里面爆炸的过程很有趣啊”、“房屋被毁的时候是一点点倒塌的”等等。这些帖子看起来似乎只是饭后闲聊,可它们的背后却是一个被不少人忽略了的重要因素:强大的物理引擎。
“物理引擎”这个概念我们已经不是第一次提起了,早在另一个重量级游戏作品《半条命2》之中,Havok物理引擎就曾经大显身手。如今《帝国时代3》让我们再次看到了Havok引擎的威力,而且这次它在即时战略游戏中的应用效果更加震撼。在今天的文章里面我们就来看看,Havok到底给《帝国时代3》带来了什么样的革命。
与FPS游戏中寥寥几人的情况不同,在策略游戏中会很容易出现上百人的作战场景。使用了Havok Physics引擎的《帝国时代3》,会赋予屏幕上面每个士兵单元,甚至是他们的帽子、枪械以真实的动作和物理特性。这一点都不是夸大其词,不信大家可以看看下面的截图,强烈建议点击放大查看:上面是一个敌军士兵被炮弹击中的全过程,通过截图可以清楚的看到士兵被炮弹击中后飞出很远,而手里握的矛留在了原地(此时士兵手里居然还握着矛,也许是Bug吧),随后炮弹会在地上继续滚动一段距离,而士兵的身体也会翻滚几下。在这整个过程中,矛、身体和炮弹都在不断进行位移,以前的即时战略游戏从未带来过如此真实的体验。
以上是一栋房屋倒塌的过程,可以看到房屋被炮弹击中之后是分裂为很多块,然后渐渐瓦解成为一堆废墟。
这是另一张房屋被炮轰的截图,炮弹击中墙壁之后不仅产生了很多碎屑(非常像《半条命2》中的物体碎片),而且炮弹会穿过房屋继续飞行,直至落地后继续滚动一段距离,达到了前所未有的真实效果。
这是火箭在人群中爆炸的全过程,可以清楚的看到四个农民分别向四个方向飞了出去。更加震撼的是,每只火箭都有自己的飞行轨迹,爆炸之后我们还能看到箭身保持着插入地上时的方向,过几秒钟才会完全消失。
《帝国时代3》中这种依靠物理引擎所达到的震撼效果还有很多,大家只要在玩游戏的时候认真观察就可以发现这些惊人的细节。接下来我们谈谈物理引擎本身,看看它在其他游戏中还有什么出色的应用。
对于如今的3D游戏来说,画面效果并不能代表游戏的全部,物理引擎所扮演的地位已经日趋重要。所谓物理引擎就是负责计算场景里面物体之间互相作用效果的程序,物理引擎越完美,游戏就越显得接近真实。玩家要挪动箱子到窗口下面然后才能跳出去
玩过《半条命2》的朋友们一定记得,很多关卡都需要玩家用一些小的“手腕”来通过。比如将重物放在指定地点来触动机关的开启等,而这些简直就是游戏在对其超强的物理引擎进行炫耀。
拣起罐子可以放到筐里面
拿起筐,你甚至还可以用鼠标将罐子“甩”出来
射击地上的罐子,它会碰撞到墙角之后飞到半空
以上是几个在《半条命2》和《CS:Source》(二者使用的都是Source引擎)中Havok Physics引擎起作用的例子,这些特性给游戏带来了很多的乐趣,例如游戏开始不久就有个保安要求你把地上的一个罐子捡起来放到垃圾箱里面,你完成这个“任务”之后才能通过他把守的通道。
除了物体之间的相互作用之外,《半条命2》和《CS:Source》的引擎中还包含了类似“布娃娃”人体模型系统,专门负责让游戏中的人物动作更加真实。这套系统最大特点是能将人体按照现实情况分为很多相对独立并互相关联的部分,例如人物的手腕受力之后,力量会通过关节传递到小臂甚至大臂上面,使游戏中的人体模型不再是一个“大木桶”。
以上的截图同样来自《半条命2》和《CS:Source》,可以看到布娃娃系统让其中的人体可以根据不同的受力摆出这种姿势,而且完全和周围的地形环境结合在一起,这种真实感是早期的3D游戏根本达不到的。
NovodeX是虚幻引擎3中功能强大的新一代物理引擎,其性能决不输给Havok Physics。NovodeX支持速度、加速度和弹性碰撞等物理概念,并且含有布娃娃系统令人物动作更加逼真。以上是UnrealPhAT对人物和车辆的互动式编辑界面,虚幻引擎3对于创造和管理这两种模型有着更加突出的优势,相信这一点我们会在将来的游戏中感受到。
复杂而强大的声音仿真效果是NovodeX物理引擎的另一亮点,它不仅能够模拟出音调随着发音物体的速度而变化的多普勒效应(最明显的例子是运动着的火车汽笛声调会变的现象),甚至连同一物体中材质不同的位置也能够发出不同的声音。
游戏效果的不断提升同时也是在督促着硬件的升级换代,那么物理引擎的发展会为我们带来什么样的硬件呢:- 物理引擎 vs PPU(物理处理单元)
基于AGEIA PhysX PPU的扩展卡,类似产品目前已经在游戏开发者手中进行测试
说起CPU和GPU大家一定并不陌生,而提起PPU也许就不是每个人都知道了。PPU是“Physics Processing Unit”的缩写,直译就是“物理处理单元”。就像当年GPU从CPU手中接过图形处理的相关工作一样,如今AGEIA发布的世界上第一款PPU:PhysX也要引领一场革命,那就是将物理引擎的运算从CPU之中分离出来。
PPU的一个互动式Demo,液体倾泻到一辆汽车上面的超真实效果
对于如今愈发真实的3D游戏来说,物理引擎的设计越来越复杂,运算量也在不断提高。PPU的诞生无疑为物理引擎的成长提供了坚实的后盾,我们有理由期待一个物理引擎更加辉煌的未来。<