PhysX 遊戲的威力

作为NVIDIA主推的Physx物理加速技术,目前已经得到了众多的游戏支持,采用Physx物理加速技术的游戏更是横跨PC、PS3、WII、XBOX360等平台,再加上占据游戏引擎半壁江山的虚幻3引擎支持,Physx物理加速技术在今后势必会取得更多游戏开发者支持,成为业界采用最为广泛的物理引擎。作为NVIDIA中高端的主力,GeForce 9800 GTX+在Physx物理游戏中表现如何?与Radeon HD 4850在此类游戏中会有多大的分别,这将是我们文章的重点。

一切为了真实

游戏的发展之路就是为了真实,从儿时记忆中的超级马里奥,到初步拥有3D效果的极品飞车,再到以阴影著称的DOOMIII,再到将HDR效果发挥淋漓尽致的Fracry,我们一直都在追求着完美的游戏画面;另一方面,我们也注意到人物在奔跑时雪地上留下的脚印,CS中那可以穿透墙壁的枪械设置,Half-Life 2中枪械可以将地上的瓶子打起打碎,以及到后来Crysis中射击树木掉落时可以对人体造成伤害。这两条路其实就是游戏所追求的两种真实,静态真实与动态真实。

静态真实与动态真实的概念都不难理解,所谓静态真实,就是使游戏画面看起来更加接近现实中的人或事物,这也是游戏发展中的主流,但凡大作都会在游戏画面上大作文章,让我们可以看到更加接近现实场景,微软的DirectX API历代更新也均以静态真实为主导。动态真实指得是在游戏中产生互动时的真实感受,比如水波的荡漾,树木随风摆动,枪械设计到不同物体上产生不同的弹道反射,倾泻而下的瀑布与山脚岩石所形成的交互水花等等,人物上真实的衣料摆动。

静态真实被众多的游戏厂商重视,也是玩家们最津津乐道的,人们常常以游戏画面来衡量一款游戏的好坏,大作发布前期都喜欢放出一些唯美的游戏画面来吸引玩家,相比之下,动态真实则还没有引起足够的重视,直到2006年Ageia发布物理PhysX加速卡时,动态真实的物理加速概念才逐渐被人们接受。

物理加速精髓:实时互动

也许很多人不能理解,在物理加速概念出现以前,我们也可以在游戏画面中看到诸如瀑布撞击岩石后形成水花、衣服随风摆动等等物理加速标榜的画面,这又是为什么?答案就是你所看到的水花、衣摆都是实现录制好可以实现的游戏画面,而并非根据真实的环境碰撞、摩擦等因素计算得出。比如没有物理加速,你观看瀑布的水花都是一个形状,不会与岩石产生互动变化,衣摆也无法根据风向与物体接触后而产生形状改变,无法与外界产生互动。再比如游戏中人物死亡都是一种倒地方法,如果死在墙边身体就要有一部分倒在墙壁里面等等。

CS死法固定

而我们知道,现实环境中的物体并不是这个样子,很多时候物体之间都在互相影响,比如人头部中枪与腹部中枪后的倒地方式不可能一样,人身体的衣服随着走路方式的改变与风向的改变也不可能是一成不变,山体滑坡的岩石由于体积与质量不同在滚落时也不可能是千篇一律,森林中的树木不会每棵长相都一样,随风舞动时也不会彼此互不干扰。

也就是说,在没有物理加速前,游戏中我们所见的所谓“物理效果”其实都是死的,按照之前游戏AI录制好的方式运动,不会周围的事物产生任何的影响,而物理特效要解决的正是这一问题,因为没有希望游戏的画面看起来虽然真实,但是玩起来却非常的假,实时的互动就是物理加速的精髓所在。

MKZ中死亡模式可以根据着力点而不同
在2006年Ageia发布物理PhysX加速卡时,我曾经猜想3D加速成就了3DFX,物理加速会不会成就了Ageia,不过这种猜想在残酷的商业竞争中并没有实现,Ageia最终也没有逃过被收购的命运,不过让我们感到庆幸的是PhysX加速引擎被NVIDIA保留下来就在CUDA架构中发扬光大,至此,游戏的画面的炒作在近年经历了阴影、HDR特效、DirectX 10特效之后,今后将是一个物理加速的时代。

PhysX引擎详解

目前的物理引擎主要有PhysX与Havok,关于这两家引擎的前生今世在此就不多做介绍了,有兴趣的朋友可见参见《Havok VS PhysX 漫谈物理加速世界!》一文,今天主要介绍NVIDIA接手后的PhysX引擎。

NVIDIA将PhysX引擎集成到CUDA架构的物理运算中,这样就可以是GeForce 8/9及GT200系列全部都支持PhysX引擎, 所有目前已使用PhysX技术的游戏都支持新版驱动程序,如果装有支持CUDA平台的显卡,游戏将自动选取显卡进行物理加速运算,否则仍会使用性能较慢的CPU进行运算。此外,PhysX并不只使用于游戏市场,同时亦会运用 CUDA通用运算领域上,应用更广。

無论是GPU还是CPU、PPU、Cell(PS3)都可以通过HAL翻译层来实现软、固质体动力(Soft or Rigid Body Dynamics)、通用碰撞侦测(Universal Collision Detection)、有限元素分析(Finite Element Analysis)、流体动力(Fluid Dynamics)、毛发模拟(Hair Simulation),以及更更高级开发平台APEX中的更先进的布料模拟(Cloth Simulation)、自然模拟(Natural Motion)等在内新颖技术。

通过过CUDA通用接口,PhysX引擎将NVIDIA GPU中的Thread Scheduler(线程管理器)模拟成Control Engine(控制引擎CE),而Streaming Processors来模拟Vector Processing Engine(矢量处理引擎,VPE),其中CE控制引擎负责任务的指派,相当于PhysX中的主管机构,而真正的物理运算任务则是由VPE矢量引擎来完成,最后通过Data Movement Engine(数据移动引擎DME)输出。

PhysX已获众多游戏支持

PhysX软件被广泛应用于150多个游戏中,开发人员超越25000人,软件注册用户数量已超过10,000名。索尼的Playstation 3、微软的Xbox 360、任天堂的Wii以及个人计算机均支持PhysX,PC中支持多核CPU,GPU,PPU,并且是唯一CPU和CPU+GPU物理解决方案。

此外,PhysX设计用途是利用具备数百个内核的强大处理器来进行硬件加速。加上GPU超强的并行处理能力,PhysX将使物理加速处理能力呈指数倍增长并将游戏体验提升至一个全新的水平,在游戏中呈现丰富多彩、身临其境的物理学游戏环境。其中特色如下:

爆炸引起的烟尘和随之产生的碎片

复杂、连贯的几何学计算使人物的动作和互动更加逼真

其视觉效果令人叹为观止的全新武器

布纹的编织和撕裂效果非常自然

运动物体周围烟雾翻腾

目前采用NVIDIA PhysX的开发者数量正在呈几何式增长,在通过CUDA实现GeForce运行PhysX的第一个月中,超过12个AAA级游戏开发商签约采用GeForce PhysX,这比AgeIA在两年内签约的项目还要多,因为物理+图形计算一体化解决方案更受开发者的钟爱。

PhysX 其它
CPU Yes Yes
PC加速 Yes No
XBox360 Yes Yes
No comments

Back to Home