● 物理加速并非PhysX专属
物理引擎通过为刚性物体赋予真实的物理属性的方式来计算它们的运动、旋转和碰撞反映。为每个游戏使用物理引擎并不是完全必要的——简单的“牛顿”物理(比如加速和减速)也可以在一定程度上通过编程或编写脚本来实现。
然而当游戏需要比较复杂的物体碰撞、滚动、滑动或者弹跳的时候(比如赛车类游戏或者保龄球游戏),通过编程的方法就比较困难了。物理引擎使用对象属性(动量、扭矩或者弹性)来模拟刚体行为,这不仅可以得到更加真实的结果,对于开发人员来说也比编写行为脚本要更加容易掌握。
目前活跃的几大物理引擎及其后方厂商
Havok引擎,全称为Havok游戏动力开发工具包(Havok Game Dynamics SDK),一般称为Havok,是一个用于物理系统方面的游戏引擎,为电子游戏所设计,注重在游戏中对于真实世界的模拟。使用撞击监测功能的Havok引擎可以让更多真实世界的情况以最大的拟真度反映在游戏中。
Havok的1.0版本是在2000年的游戏开发者大会(GDC)上面发布的;2.0版本在2003年的GDC大会上发布;4.5版本在2007年3月释出。原始码在取得引擎用户许可证之后便会收到。目前,Havok可以在微软的窗口操作系统、Xbox与Xbox360,任天堂的GameCube与Wii、新力的PS2、PS3与PSP、苹果计算机的Mac OS X、Linux等操作系统或游戏主机上使用。此游戏引擎是用C语言/C++语言所撰写而成。
最新的5.5版本在2008年2月释出。新版本的SDK更完善,更人性化。亦加入了新的物理效果,例如布料的摆动效果。在示范中,Havok利用了斗篷来表现这个效果。当人物走动的时候,其背后的斗篷会随着人的移动来摆动。破坏效果方面,新增了物体的破碎和变形。非商业应用的物理引擎是免费提供的,目的是加大普及率。随后,商业的游戏应用亦变成免费。不过商业应用但非游戏,和引擎的全部源代码,就需要付款。
自从Havok引擎发布以来,它已经被应用到超过150个游戏之中。最早,使用Havok引擎的游戏大多数都是第一人称射击类别,但随着游戏开发的复杂度与规模越来越大,其他类型的游戏也想要有更加真实的物理表现,有越来越多的其他类型的游戏采用Havok引擎,例如为实时战略游戏类型,Ensemble Studios的世纪帝国Ⅲ与暴雪娱乐的星际争霸II;竞速类型,世嘉公司的音速小子与新力发行的摩托风暴。在软件3D Studio Max和Maya 3D中也能看到已经打包为插件的Havok引擎。
但面对越来越多的3D模型和越来越多的实际特效没有物理加速是不可能的。NVIDIA收购了Ageia自然有PhysX物理加速,那AMD呢?那自然是选择应用率更高的Havok推出的Havok物理加速引擎。AMD之所以选择Havok引擎有几个原因。
第一:目前在全球游戏领域里被广泛应用的物理引擎的只有Ageia和Havok,其中Ageia被对手NVIDIA收购自然不会去选择采用。
第二:从物理引擎的游戏实际应用数量上看,使用Havok引擎的游戏约为总数量的3/4款,而使用PhysX技术的只剩下的1/4款。自然是首选Havok物理加速引擎。
第三:PhysX主要是让GPU去运算物理效果,而Havok则是让CPU+GPU联合来运算,符合AMD的GPGPU的发展线路。