更新时间:2024-09-04 13:52
物理处理器是计算机专门用来处理物理运算的微型处理器,尤其应用在电子游戏上。物理学上的刚体动力学、碰撞侦测、流体力学、头发模拟、衣物模拟和对象破坏等效果,均可以这种处理器进行运算。这个概念源自于减轻中央处理器(CPU)的负担,和使用显示核心取代CPU进行绘图运算的原理一样。有关物理数据也可以单纯以一般的CPU去计算,但在速度方面会比PPU慢得多。
简介
第一个物理处理器为SPARTA and HELLAS。物理处理器这个词语来自AGEIA对于他们的产品-PhysX的营销术语,接着有数个方案亦使用了类似的科技,但AGEIA仍然是支持最完整的物理处理器。正因为PPU能填补现有3D游戏在物理效果上的不足之处,因此PPU的推出,定会为3D游戏带来重大变化。
AGEIA PhysX
首款推出市面的PPU,是由AGEIA公司开发的PhysX芯片。想要支持AGEIA PhysX的功能必须使用专属的Novodex开发工具来编程,Novodex虽能应用在一般硬件上,利用CPU作软件运算,但应用在PhysX上物理处理器仍是最佳。
2005年7月20日,日本的新力公司与AGEIA签约,在PlayStation 3游戏机使用Novodex SDK,而微软也为Xbox 360的开发工具加入Novodex。而3DMark06也内置测试物理卡的环节。
使用PhysX PPU的物理卡,会由多家公司生产,就像现时的显卡。华硕和美国的BFG是主要的生产商,这些PPU物理卡会先在戴尔的原厂计算机中使用,直至2006年5月正式单独发售。
2008年2月4日,AGEIA公司正式被nVIDIA公司收购,AGEIA公司技术将被大量应用在nVIDIA公司自家的CUDA运算技术中。将来,支持CUDA技术的显卡,就可以直接硬件支持PhysX加速。
在NVIDIA收购AGEIA后,总裁黄仁勋如此评价后者:“AGEIA公司的团队是世界级的,他们拥有和我们同样的激情,创造最令人惊叹与最有魅力的游戏体验。通过创造世界上最深入人心的显示核心和物理引擎的强强联手,我们可以将GeForce加速的PhysX技术带给全世界数以百万计的游戏玩家。
GPU对PPU
GPGPU的趋势让GPU越来越适合进行物理运算,DirectX10更增加了几何着色器提供大量的运算方式可以被套用。NVIDIA的CUDA技术也提供了控制GPU的内部沟通和联合运算。
尽管GPU运算有较大的延迟率,GPU仍然对PPU的发展造成冲击。
Havok FX
Havok开发工具(SDK)是PhysX开发工具的主要竞争者,被用于约150个游戏中。为了和PhysX竞争,Havok FX可以使用多绘图处理器的技术来加速物理计算,包括了NVIDIA的SLI和ATI的CrossFire。Havok将物理运算分为特效和游戏运算,特效运算(如爆炸时的烟雾)将会由GPU的Shader Model 3.0来进行运算,进而减轻CPU的负担。而游戏物理运算则仍然由CPU处理。由于英特尔收购了Havok,前者显然希望物理计算由CPU负责,所以由显卡加速Havok FX的开发似乎已经被取消。
nVidia方案
Havok面对AGEIA的冲击,将Havok FX物理引擎改造,使之能由显卡硬件处理。根据示范视频,使用显卡的物理运算效果,与独立的一张PhysX卡不相伯仲。而nVidia亦抢先ATi一步,宣伂与Havok合作。配合nVidia的SLi技术,一张显卡能作立体运算,另一张能作物理运算。据了解,nVidia也会引用ATi的三卡方案,两张显卡会在立体计算,另外的一张作独立的物理计算。由于AGEIA公司已被nVIDIA公司收购,后者应该会转用PhysX方案。而NVIDIA亦表明,PhysX的硬件加速会改由显卡负责。
ATI方案
面对nVidia的挑战,ATi亦不甘示弱,亦宣伂与Havok合作。由于物理运算部分由像素着色器处理,由于X1900XT的像素着色组件达48个之多,物理运算性能应较nVidia顶级的GeForce 7900强。另外,在AMD Fusion方案中,GPU将会以向量补助运算器的方式来和CPU运算作更紧密的结合。这个配置也非常有可能成为PPU的角色。
Intel的Larrabee技术
Intel的Larrabee技术是个运算能力最优化的多核心x86构造,有可能成为PPU的角色。Intel已经确认Larrabee技术的存储器架构将会类似CPU的缓存结构,但是它也提供对高速缓存控制的指令。
Cell处理器对PPU
在PlayStation 3(PS3)内的Cell处理器运作方式类似AGEIA的PhysX处理器。与ATI/NVidia的GPGPU解决方案不同的是,它使用了数个平行的线程,每个线程都有大型运算单位,并且线程之间有更多的沟通和控制。
PS2 - VU0
PlayStation 2(PS2)的VU0可以被视为早期PPU应用的发展,VU0可以取代CPU来做额外的AI和物理运算,但也支持额外的顶点运算,让他成为一种额外的补助器而不是一个独立的单元(Unit)。VU0的用途类似于Havok FX和GPU的物理运算。