物理加速“真实”的战斗
编辑视线
近两年来,在厂商的大力宣传和媒体的详细报道下,“物理加速”这个词语频频出现在我们的视线中,同时在游戏开发商的努力下,我们也越来越多地感受到了物理加速的魅力。而随着物理加速领域的快速发展,掌握着相关标准或者技术的NVIDIA、Intel和AMD“三巨头”之间的竞争也日趋激烈。特别是GPU巨擘NVIDIA,从去年年初收购AGEIA之后,就不遗余力地宣传PhysX和GPU物理加速,而与之“唱反调”的Intel则专注于推行基于Havok引擎的CPU物理加速技术。相比之下,拥有平台优势的AMD虽然属于Havok阵营,但一直在努力酝酿自己的GPU物理加速技术。毫无疑问,物理加速已经成为了上游厂商的新战场。
小贴士:什么是物理加速
在以往的许多游戏中,物体的移动往往和现实世界相差很大。因为大多数游戏中的动态场景都是预先定义好的,或是由某事件触发的固定动画播放。这样做是为了省却GPU在物理运算方面的繁重工作,但牺牲了玩家的真实场景体验。比如在游戏中对一堵墙开火,如果没有预先设定,这面墙往往没有任何变化,更不用说因不同的武器开火造成不同的损毁效果。
随后PPU(物理运算处理器)的引入才让这一切得到彻底的改变,可让游戏中物体的变化更加真实。目前,物理加速技术主要分成两派:一派是NVIDIA力挺通过GPU来实现物理加速的PhysX技术,另一派是Intel主张CPU完成物理加速的Havok技术。目前支持Havok与PhysX物理加速的游戏已经超过了200款。
Havok在GDC 2009上展露锋芒
3月26日,AMD在GDC 2009(Game Developers Conference 2009,简称GDC 2009)上的主题演讲中公开了自己的“ATI GPU物理技术”,并表示该技术是“基于OpenCL、ATI Stream技术的开放式、标准化物理游戏计算”,同时还带来了一段DEMO做演示。据悉,AMD的GPU物理加速技术也是基于Havok的,是通过OpenCL(开放式计算语言)标准建立起API(应用程序接口),在此基础之上再启用Havok物理引擎。我们以前曾经提到过,OpenCL能够统一管理一台电脑上的所有计算资源,比如多核CPU,以及多个GPU,OpenCL将这些资源统一看待,算作计算单元,每个计算单元还可以容纳多个工作单元(注:关于OpenCL的详细介绍,请参阅本报2008年第50期D1版《物理加速,用效果说话》一文)。因此,有了OpenCL标准的助力,AMD要实现GPU物理加速就相对容易多了,而这本质上也是GPU通用计算的发展产物。

由于此前Havok主要应用在CPU物理加速领域,那么Havok在GPU上的发展前景如何呢?Havok董事、总经理大卫·奥米拉说了这样一段话:“顶尖游戏开发商一直认为,核心的游戏可玩性模拟应该在处理器核心上执行,不过GPU物理加速应该能成为未来发展方向,大规模并行产品(GPU)的能力为计算特定类型的模拟提供了技术上的可能性,我们也期待与AMD合作挖掘这种可能。”
看得出,至少到目前为止,Havok物理加速还是更适合用在CPU身上,从技术角度上说的确如此,而且支持Havok的游戏也远比支持PhysX的游戏更多。还有一点不容忽视,在运行游戏时,CPU的闲置资源往往比GPU的闲置资源更多,这也决定了CPU更适合进行物理加速计算。当然,GPU物理加速的发展前景也很可观,这主要是因为它建立在GPU日益提高的通用计算能力之上。实际上,AMD自家有处理器,足以实现Havok的CPU加速,AMD推出GPU物理加速技术,更多的是出于竞争的考虑。
PhysX跨平台飞奔,欲形成事实标准
在NVIDIA的大力推动下,PhysX物理技术目前正在PC系统上逐渐流行开来,已经有越来越多的游戏加入PhysX物理加速阵营当中,其中不乏一些知名新作如《雪域危机》、《镜之边缘》等等。不过NVIDIA并不满足,还想进一步扩大步伐,让游戏机的玩家也能体验物理加速的乐趣。
近日,NVIDIA分别与索尼、任天堂签订了提供PhysX物理技术的软件开发包(SDK)协定,实现合作以后NVIDIA将会为PS3和Wii的游戏开发人员提供全功能的API和物理引擎,开发者可以利用它创造更真实的游戏场景以及人物角色。由于PS3的图形芯片是NVIDIA公司生产的,支持PhysX并不奇怪,不过Wii的图形芯片是由AMD提供的“Hollywood”GPU,为什么也能支持PhysX呢?更让人惊讶的是,如今连iPhone都可以支持PhysX物理加速了!

最近在苹果公司为iPhone准备的应用程序商店(APP Store)中,可以找到很多应用了PhysX物理加速的iPhone游戏,虽然目前这些游戏已经可以使用PhysX物理引擎,但是这一切都还是需要iPhone的CPU来进行运算。PhysX物理引擎由于是基于CUDA(标准的C语言)开发的,所以几乎适用于任何设备。从长远来看,PhysX并不仅仅是NVIDIA GPU的专属,NVIDIA希望它像OpenCL一样,适用于多种平台,其中自然也包括AMD显卡。
从目前的情况来看,PhysX物理加速引擎已经将触角伸向了多个领域,而这一切对NVIDIA非常有利,一旦PhysX在各个平台占领了一席之地,那么PhysX离事实标准也就不远了,届时NVIDIA的硬件自然会获益匪浅,毕竟NVIDIA的GPU对PhysX的支持是最好的。可以想象未来不仅仅是在PC上,游戏机、手机、MID……各种消费电子产品上都会看到NVIDIA GPU的身影。
NVIDIA的标准“四处横行”,可AMD却没有什么实际成果,这样下去势必在市场上输了先手,在基本性能相差无几的情况下,消费者自然会优先选择功能更多的显卡。如果未来AMD显卡还得被迫“兼容”PhysX技术,那么AMD必然还会继续吃哑巴亏。因此AMD必须及时推出自家的GPU物理加速技术,与NVIDIA展开正面较量。表面上是物理加速标准之争,背后其实就是两家公司在产品上的直接竞争。
物理加速在竞争中走向普及
物理加速,既是两强争霸(即PhysX与Havok两种标准),又是三国演义(Intel、AMD与NVIDIA),竞争非常激烈。Intel和NVIDIA都拥有自己的核心产品与核心技术,显得更主动一些。AMD虽然没有自己的物理加速技术,但它在收购ATI之后,平台化优势非常明显,AMD如果同时具备了CPU物理加速与GPU物理加速,其能量也是不可小视的。
在新兴的战场,Intel、AMD、NVIDIA三大巨头将会怎样表现,物理加速的未来何去何从?到底是Havok统一江湖,还是NVIDIA PhysX一手遮天,现在下结论还为时尚早,但不管怎样,物理加速的出现给3D图形领域带来了一次变革,其意义不亚于GPU的诞生。让人高兴的是,现在支持物理加速技术的游戏越来越多了,特别是2009年问世的游戏几乎都支持物理加速。不论是Havok还是PhysX,都能在大量的游戏中发挥威力,提升效果。对于广大用户来说,既然Havok和PhysX是免费的“午餐”,何乐而不“享”呢?
链接:物理加速两大收购事件
说到物理加速,就不得不提Havok。这家成立于1998年的公司主要为游戏开发商提供物理仿真技术,在AGEIA推出PPU(Physics Processing Unit,物理处理器)之前,Havok一直是物理仿真领域的佼佼者。不仅很多游戏大作采用了Havok物理引擎,而且一些知名电影也支持该技术,其中游戏方面有《半条命2》、《帝国时代3》、《英雄连》、《失落的星球》和《生化奇兵》,以及《暗黑破坏神3》、《星际争霸2》等。
由于Havok引擎得到了游戏开发商和电影制造商的广泛好评,在2006年NVIDIA和ATI两大显卡巨头都开始优化自己的产品,支持Havok物理加速技术。尤其是NVIDIA,它和Havok联合宣布建立技术伙伴关系,并着力准备通过SLI技术来更好地实现物理加速。但好景不长,2007年9月,Intel闪电收购Havok,这使NVIDIA与AMD-ATI的GPU物理加速显得非常尴尬,因为Intel此举目的很明确,就是让Havok引擎专注于CPU物理运算。
由于财大气粗的Intel“横刀夺爱”,NVIDIA、ATI与Havok合作之路被迫中止,他们把目光转向了还在孤军奋战的PhsyX身上。后者是AGEIA公司的“核武器”。早在2005年,AGEIA在GCD2005大会上提出了PPU概念,同时也将第一块物理加速卡展现在世人眼前。PhysX物理加速卡采用PCI/PCI-E接口,PPU芯片采用0.13微米制程,集成了1.2亿个晶体管,功耗约25W。当时PPU每秒可以生成32000~50000个粒子或刚性物体,而CPU+物理引擎每秒生成几百个粒子或刚性物体。
不过,一块PhysX物理加速卡售价高达2000元以上,加上当时没有得到多少游戏的支持,导致该产品曲高和寡。尽管市场反响不太好,但并不意味着无人关注,图形芯片巨头NVIDIA就是其中之一,后者在2008年2月突然出手,将AGEIA收归旗下,并将PhysX移植到NVIDIA的CUDA(统一计算设备架构)通用计算体系中,通过CUDA通用接口,达到利用GPU实现物理加速效果的目的。目前,GeForce 8/9/GT200系列显卡都支持PhysX引擎。同时,越来越多的游戏加入了对PhysX物理加速的支持。