2008-01-14

物理加速卡介绍

  Ageia的物理加速卡发布已经有2年多了,也许,在这两年中Ageia不断发展,物理卡也渐渐进入我们眼中,虽然有点晚,但是我们还是有必要详细的了解一下物理加速卡的相关信息。
  另外,如果对物理加速有兴趣可以参见我转的一篇物理加速的文章:

Physics in Games: A New Gameplay Frontier



[3D加速后又一全新理念]
  3D显卡的诞生令人们可以通过显示设备领略到“十分真实”的画面,在1996年,几乎所有市面上出现的显卡产品都宣称拥有一定的3D处理能力,不过当时它们大多只是通过显卡芯片完成常规画面渲染工作,而3D场景模型构建和光照效果运算都是通过专门的软件算法由CPU来处理。包括当时的API也没有统一的标准,实际的3D效果可谓十分有限。不过1997年,随着第一块3D加速卡Voodoo的问世,人们才终于领略到真正的3D游戏画面。在那个只靠CPU来完成大量图形计算的时代,Voodoo让人们见识到了3D加速技术的魅力,各种滤镜效果、性线过滤、抗锯齿等3D特效技术把3D游戏的画面提高到了一个全新的层次,人们也才清楚3D加速的概念。1998年第一款GPU芯片GeForce256出现后,其内置的硬件T&L(几何转换和光源处理)引擎,可以直接完成场景构建和光照运算,大幅提升了显卡3D性能并降低了CPU的负担,从此人们有了完整的3D加速引擎的概念。这一次3D加速革命,也为图像处理技术的发展指明了方向,同时也造就今天的nVIDIA、ATI等著名厂商。



  但是,从此之后显卡就再也没有什么革命性的进展。在这漫长的10年之中,一代又一代的显卡芯片除了频率不断提升、制造工艺改进、渲染管线增加之外,并没有任何质的改变。只是从架构上来看,即便是目前最高端的显卡,在架构上和他们的老前辈也并没有什么区别。(当然,G92,G200肯定和这些不同了。)
  而现在的大型3D游戏中,为了使游戏的画面更加的真实,开发人员就会在游戏中设计许多接近现实的物理计算,比如:自由落体,物体运动,空气流动,力的反弹以及各种物体间碰撞等等。但是在传统的计算机中,游戏的物理运算基本上是通过物理引擎加上CPU处理后的物理参数后再反馈到中游戏之中,这种方式往往在遇到大规模的物理运算时就会出现运算瓶颈,这也就造成了游戏中一旦出现大量物理运算时,帧数就会明显下降。那么如果来解决这个问题呢,在Game Developers Conference (GDC)2005游戏开发者大会上,一家来自美国的半导体生产厂商AGEIA给我们一个非常好的答案——PPU。





[PPU——物理加速引擎]
  PPU——Physics Processing Unit(物理运算处理器),如果CPU是为了达到更快的运算速度,GPU是为了达到更好的图像效果,那么PPU就是为了使游戏更加真实。在以前的3D游戏中,大多数的背景和物体都只是一些静态的贴图效果,真实感较差。而在FPS游戏大作Half Life 2(半条命2)中,Havok物理引擎带给了玩家们一个非常真实的物理世界。你可以在游戏中捡起一个废纸盒,然后把它抛向远处,然后可以看见它撞击到墙壁以后反弹到上地面上,溅起一阵灰尘。接近于真实物理效果使得游戏中任何物体都是可移动的,它们都遵守着游戏中的物理参数,组成了一个“真实”的游戏世界。
  PPU的出现可以说为图像处理技术的指明了新的方向,显卡并不再是像以前一样只是单一的工艺进步、频率提升、管线堆叠,而是需要采用不同方式的处理技术。加入了PPU负责单独的物理运算后,GPU便可以专心负责进行图像的渲染和显示,CPU则进行两者之间的综合协调。PPU的出现将物理计算和图像处理分开运算可以创造出更加生动的和真实游戏环境,这可能引领新一轮的3D技术革命。而玩家也将体验到像电影中的一样的壮观场面,各种物体爆炸、撞击、建筑物倒塌等等。有了PPU的辅助以后,可以很轻松的实现各种复杂的碰撞或者运动效果。这种小到一粒沙也会因为空气的流动而移动的场面,令游戏的可玩性、真实性是以前传统的任何一款3D游戏难以比拟的。
  但是同时PPU有着和GPU完全不同的内部构架,PPU将拥有软、固质体动力,泛用碰撞侦测,有限元素分析,流体动力,毛发模拟,布料模拟等技术特效。PPU的这些处理技术和GPU是完全不同的两个运算概念,因为物理运算需要十分强大的整数及浮点运算能力,GPU的性能则是将重点放在了画面的渲染效果上,追求单纯的视觉效果,而PPU所强调的是“真实性”。
  如此真实的表现真是令人期待,下面我们就先来了解一下全球首款硬件加速物理运算处理器,来自AGEIA的PhysX。






[PhysX横空出世]
  2005年3月19日,美国无晶圆半导体厂商AGEIA于游戏开发者论坛(Game Developers Conference, GDC)上发表了全球第一款采用硬件加速的物理运算处理器(PHYsics Processing Unit, PPU),同时将其命名为PhysX。AGEIA称它将会出现在下一代包括PC和游戏主机中。
  AEGIA在发布PPU时这样解释:以90年代末被称为GPU的图形处理器为例,早期复杂的3D图形往往需要通过软件配合CPU的运算才能得以实现,而GPU的出现正好接过了CPU的这部分工作,我们的PC开始通过GPU完成对3D图形的运算,当然它并没有完全脱离CPU。AEGIA认为GPU的出现降低了CPU的工作负担,同时为用户提供了更加完美视觉效果和图形效果,而PPU的出现也是如此,它将原本必须依赖软件技术并通过CPU的运算才能完成的工作交给专门负责物理运算的硬件来完成,这样,PPU开始向CPU、GPU一样进入我们的PC。
  游戏性能三种重要因素:CPU、GPU和PPU(物理运算处理器)。


  PhysX在游戏画面上带来一些较为显著的改变包括:

  •   由于爆炸所引起的烟尘和碎片的效果
  •   通过制造更加复杂、节点更多的几何图形来形成更为逼真、交互性更强的动作
  •   包括人物的服装、眼泪等细节都会和真实的场景一模一样
  •   当风吹过衣物、或者树叶之类时,物体会呈现出自然的摆动
  •   环绕在物体周围的浓烟&尘雾将会形成一种运动的效果

  在今年的E3大展上,AGEIA也首次公布了PhysX的PPU Demo,在第一个Demo场景中,约有4200个多边型石块从一个山坡上滚下来,在运动的过程中,每块石头都以不同的物理条件自由下落,石头会因为高度、速度、重力及撞击而改变运动规则,它创造的完全是一个“真实”的客观世界,不再是以前游戏中每个物体的移动都是按照计算好的路线进行运动。既然需要拥有如此强大的物理运算能力,那么拥有强大性能的双核心CPU是否会更少的依赖PPU的工作呢? AGEIA则认为PPU的作用是无法替代的。因为目前的CPU在游戏中可以处理1000个左右的可自由移动的多边物体,而目前的PPU可以达到32000个,如果驱动程序升级改进以后,可以达到40000~50000个。所以说PPU在游戏中物理运算的重要地位是难以替代的。



[关于AGEIA]
  在05年GDC上,一家名不见经传的美国半导体设计厂商Ageia发表了世界上第一颗采硬件加速物理运算处理器(Physics Processing Unit, PPU)“PhysX”,很快在世界上引起了一场物理加速的轩然大波。
  AGEIA的计划主要推广该公司的软件产品physics API,该软件起初被称之为Novodex,但是后来被更名为PhysX。
  根据AGEIA公司的设想,PPU和CPU以及GPU的关系成为一个相辅相成,共同运算的关系由于PPU能够代替CPU进行大部分的物理计算任务,因此可以使得处理器能够更加快速得与GPU进行数据交换从而使得游戏运行更加平稳。
为了给游戏开发商提供便利,AGEIA公司准备了NovodeX SDK开发包来完成这个使命。该软件不但包含了业界先进的Novodex物理模拟引擎,而且它还可以作为现在主流的的3D建模开发工具以及微软的XNA开发工具的插件运行,开发人员只要通过拖放和点击就能完成对目标施加物理模拟效果,这对于任何专业的开发人员将都不是什么难事。 Ageia早先表示只要游戏开发商支持PhysX物理卡,就可以免费使用PhysX物理引擎和其它相关的技术支持。这吸引了许多一线游戏包括幽灵行动3、X战警2-天启降临、City of Villians等的开发商,虚幻3也将支持PhysX物理卡并使用PhysX引擎,这意味着将来众多的虚幻3引擎游戏都将同时支持PhysX。
  Ageia公司的创始人一共有五位,他们是在美国一家名为MinMax technologies的半导体设计公司们共事相识的。当时团队研发了业界第一块基于网络处理器的大型交换机,当完成这个项目后,他们几个人聚在一起决定开创自己事业,于是就有了现在的Ageia公司。新公司首先研发了业界首款三芯片10 Gps数据处理能力的网络处理器,接下来他们决定尝试一些能带来更大影响力和革命性的东西,于是就有了今天的“PhysX”。



[物理加速的全盘解决方案]
  随着游戏画面的发展、电脑AI的更加复杂化,再加上物理运算已经使CPU不堪重负,因此业界除了AGEIA外,其它一些有实力的厂商当然不会作壁上观。目前业界的解决方案有3种:物理引擎专业商Ageia制造独立的PhysX物理加速卡; Nvidia同Havok协力研究的“SLI物理卡”加速技术;ATI则在加紧研究提高其显卡的物理运算能力,三种方案虽然都能够提供物理加速,但是在技术上又有很大不同。
  Ageia推出革命性的PhysX物理卡并制订了长远的计划来同时发展软件的PhysX物理引擎和硬件的PhysX物理卡。软件的PhysX物理引擎在PC、PS3和XBOX360上都有广泛运用,例如半条命2中运用的rag dolls(布娃娃)物理引擎等。
  硬件的PhysX物理卡则是IT业界的一项革命,独立的物理卡要比CPU和GPU模拟物理运算更快更专业,先前Ageia用PhysX物理卡展示了一款8人对战游戏,游戏中有数百个目标你可以把它们移动、毁灭,每一个物体的位置、外型并不是事先设计好,而是实时运算出来的。同时计算数千个物体的活动轨迹和破碎画面,过去是CPU和显卡所无法负担的。



[物理加速——NVIDIA篇]
  NVIDIA提出了“SLI物理卡”的概念,这项技术由NVIDIA和Havok共同研发。Havok是一家专业的物理引擎设计公司,许多著名的游戏如帝国3、半条命2、F.E.A.R、光晕2等都使用了其Havok物理引擎。去年10月,Havok宣布最新的物理引擎Havok FX即将完成,这也正是NVIDIA “SLI物理卡”的技术基础。
  Havok FX物理引擎,其是可以让任何支持Shader Model 3.0的显卡极大提高物理运算能力的开发软件。NVIDIA首席科学家David Kirk称:让GPU负责物理计算是适合的,目前GPU的速度和高可编程性完全可以兼顾物理运算。游戏开发商通过GPU上各种高级的可编程资源,在GPU上进行并行模拟运算得到了良好的结果。



[物理加速——ATi篇]
  Havok FX只需要支持Shader Model 3.0的显卡,而不是仅为NVIDIA显卡可用。所以ATI将来也可以同样提出基于CrossFire的互连方案。ATI称其在动态渲染管线分配技术的领先、与Microsoft在DX10技术的紧密联系等优势会让ATI比竞争对手更强大。
  ATI称其R520和R580架构本身具备物理处理功能,该功能可以通过软件方式达到。不久ATI就会给各软件开发商提供新的API以改进Pixel shader,新的DPP(并行数据处理)技术将使显示芯片绕过Direct3D API,同步处理物理数据和pixel shader数据。ATI称这一改进将在让GPU加强物理运算能力的同时还可以极大的提高GPU运算所有浮点指令的速度,这一多用途的改进方案将使ATI显卡在流体处理、视频处理等多方面受益。
  Havok FX将物理数据转换为Direct3D数据,从而使任何Shader Model 3.0显卡都可以直接运算。而ATI的最新API可以让开发商使用GPU来加强运算多种物理或浮点数据,从而直接运算物理数据。开发人员可以开发出多种软件使显卡加强不同能力来应对不同运用。这种高自由的开放性API使它受到了欢迎。但是ATI的这一方案也需要专门的开发团队支持,如果是拥有Havok FX的厂商会比较方便,而没有Havok FX的厂商就只有自己设计复杂的转换程序了。



这是一张,开启和未开启物理加速的游戏对比图:


没有评论: