发新话题
打印

3D渲染世界的物理革命!显卡物理加速深度解析

3D渲染世界的物理革命!显卡物理加速深度解析

大家或许有听过处理器(CPU)、绘图处理器(GPU),但物理加速引擎大家或许没听过,而在2005年3月的「游戏开发者会议GDC」上就出现了这个新名词!它就是AGEIA公司在GDC2005游戏开发者大会上推出了物理处理器,被称为05年度图形领域的重大技术创新。随着,两大图形芯片厂商NVIDIA、ATI也各自推出了基于GPU基础之上物理加速技术……,那么物理加速到底是什么东东?它与传统的GPU渲染方式有何不同之外?这就是今天我们所要探讨的话题!

  一、什么是物理加速技术?它能为我们带来什么?

  在游戏中,特别是在3D游戏中,真实性往往是需要高标准的硬件设施才能达到的。在3D技术发展早期,图形芯片只能完成常规的渲染操作,而关键的建模和光照运算必须以软件模拟的方式由CPU来完成,而NVIDIA在1999年8月推出的一款具有革命意义的GeForce256芯片,它具有硬件T&L引擎,可独自完成建模和光照运算,大大降低了CPU的负担,显卡的3D效能也获得了突飞猛进的提升!不过,尽管GPU的出现让CPU负担减轻,但除了工艺水平改进,频率提升,管线堆叠之外,没有真正实质性的变革,CPU仍需负责图形相关的物理运算工作,依然采用沉闷的游戏渲染方式。正是在这种形势下,一些公司提出物理加速的概念,让我们看到一丝黎明前的曙光……

  物理加速,顾名思义,专门进行模拟物理计算的处理运算,它是一个全新的硬件类别,它是用于沟通虚拟电子世界和普遍存在的物理真实,比如在游戏中,当你正驾驶坦克在不断获得一次次胜利,争取更大战果的时候,你却被前面的一片灌木丛挡住了去路,这在真实世界,会有问题吗?也许这样的问题一提出,就会惹来一片嘘声:这还是游戏?物理加速技术就是要改变这一现状。

  众所周知,目前每款重要的游戏大作后面都离不开最新显卡技术的跟进、支持。nVIDIA在推出GeForce之时首先提出了显卡首先提出了GPU的概念,GPU主要是分担部分CPU的处理工作,有效减低了CPU的负担,并可提供更好的视觉效果及品质。但有趣的是,随着图形内容的迅速膨胀,CPU在一些协调管理准备工作以及其他任务的需求也迅速增加,特别物理交互环境深度和质量的增长,将会带来人工智能,游戏逻辑以及渲染的膨胀,GPU此时已经显得有所力不从心。这是因为GPU在处理各种图形计算的同时还要负责去运算这些物理变化,而GPU的运算性能在受到物理处理瓶颈时就会影响到其他的图形处理效果,所以就会直接导致帧数的下降。而在大型的3D游戏中,为了使游戏的画面更加的真实,开发小组就会在游戏中设计许多接近现实的物理计算,比如:自由落体,物体运动,空气流动,力的反弹以及各种物体间碰撞等等。但是在传统的计算机中,游戏的物理运算基本上是通过物理引擎加上CPU处理后的物理参数后再反馈到中游戏之中,这种方式往往在遇到大规模的物理运算时就会出现运算瓶颈,这也就造成了游戏中一旦出现大量物理运算时,帧数就会明显下降。不知道各位喜爱玩显卡和3D游戏的玩家记不记得,在3DMark 03测试软件中有着一个测试场景,在一个树木茂密的大自然中,阳光普照,有着河流和各种植物,十分漂亮。相信用3DMark 03测过显卡性能的玩家一定都会记得吧。这一幅场景中,画面由河流中转入到岸上场景以后,相信大家就会发现帧数下降得非常利害,性能较好的显卡大概可保持在每秒20~30帧左右,而普通的低端入门级显卡就有些惨不忍睹了……这时就需要一个专门的物理处理引擎来接管这些物理计算任务。dsoftware Jhon Carmack曾表示说:“我们仍然在做一些很基础琐碎的事……未来的游戏将模拟天气,模拟流体,模拟空气中的粉尘……”,可以看出物理模拟的现实发展可行性和紧迫性。

  

  注:CPU、GPU和物理处理引擎的三角关系

  理解三者关系的最好方法是理解他们是如何和游戏引擎交互的:CPU只考虑如何让游戏对玩家作反应,就好象一个大管家一样, 工作则重点是放在渲染质量方面、主要追求单纯的视觉效果,而不是将运作效能放在第一位。物理加速则着重渲染效果的“真实性”,设计成考虑对象的运动以及和虚拟世界之间的互动。但是物理加速有着和GPU完全不同的内部构架,它往往拥有软、固质体动力,泛用碰撞侦测,有限元素分析,流体动力,毛发模拟,布料模拟等技术特效,可以处理相当复杂的物理运算,而传统的CPU和GPU在执行这些任务时往往无法获得足够好的效能。物理加速的这些处理技术和GPU是完全不同的两个运算概念,因为物理运算需要十分强大的整数及浮点运算能力,而将以上这些分离出来交由物理加速处理架构的最大优势,这意味着未来3D运算也将从现有的CPU、GPU配合的方式变为CPU、物理加速处理和GPU三者的配合协作。厂商们所推出的物理加速的概念也是如此,它将原本使用软件技术并透过CPU运算处理的物理反应计算再提取出来给专门负责物理运算的硬件、芯片来处理。在短期来看,CPU“综合协调”,GPU“渲染、显示”,“处理物理交互”,三者共同完成逼真的游戏体验。  

  比如在模拟一个大石头滚下山坡的场景时,现有的双核心处理器只能处理800-1000块石头互相碰撞、反弹、急冲的景象,无法展现出更广阔的场景。

  可以说在短期,物理加速处理所带来的最大变化将是游戏特效,因为以目前的GPU硬件技术,游戏开发者已经很难整合环境和其他元素,打个比方:一阵冷风吹过一片寂静的,树将随风摇摆,数叶发出沙沙响声,百叶窗发出被风吹打的巨响,修道士手拿火把穿过古墓,他的的长袍很真实的随风摆动,女主角的所骑马的尾巴也自然的摆动,当前面的城堡突然爆炸,飞溅出来的碎石冲倒街上的围墙,这些特效将会让游戏真实感上一个台阶,同时基于物理模拟的视觉将会彻底改变此前单调乏味事先做的动画效果。

简单的爱~

TOP

各有千秋,三大物理加速方案点评

  要追求更加完美的游戏效果,大量的物理效果的引入势在必行。面对这一问题,出现了两种主要的解决方案:一为使用专门的物理加速卡处理物理效果,这个和以前3dfx处理3D渲染采用专门的3D加速卡类似;另一种就是将物理效应计算的任务交给GPU,目前已经有三家厂商推出自家的物理加速技术……

  1、Ageia的PhysX PPU

  前一种构想的代表就是Ageia,他们开发出了PhysX物理加速引擎,并已经计划推出物理加速卡,事实上,物理概念的真正提出并引入产业,便始于AGEIA去年在GDC上宣布其PhysX FPU。  

  PhysX处理器专门针对以上的物理加速运算设计,处理能力远超过CPU。PhysX PPU的晶体管总数达到1.25亿,功耗25W左右,采用的是130纳米工艺,而其核心面积也达到182平方毫米。PPU卡采用PCIE或者PCI接口,搭配128MB GDDR3,将接管游戏当中所有的物理计算,PPU每秒可以生成32000-50000个粒子或者刚性物体,现在的处理器+物理引擎每秒可以生成几百个粒子或者刚性物体。在模拟上述场景时,PhysX至少能同时模拟4200块石头同时滚下,而在运动的过程中,每块石头都以不同的物理条件自由下落,石头会因为高度、速度、重力及撞击而改变运动规则,它创造的完全是一个“真实”的客观世界,不再是以前游戏中每个物体的移动都是按照计算好的路线进行运动。既然需要拥有如此强大的物理运算能力,那么拥有强大性能的双核心CPU是否会更少的依赖PPU的工作呢?而AGEIA则认为PPU的作用是无法替代的。AGEIA公司还表示说这远非PhysX PPU的性能极限,在改进驱动程序之后,PhysX可将模拟的石头数量提高到惊人的32000块。可以说,PPU可以给玩家们一个非常真实的物理世界,接近于真实物理效果使得游戏不再是由一个个的贴图组成,任何物体都是可移动的,它们都遵守着游戏中的物理参数,组成了一个“真实”的游戏世界。  

  上图AGEIA所提供的另外一个DEMO演示:在一辆车上有一层流动离子流,这层流动离子的材质可以改变为等离子体、肥皂泡、水或者其它的一些东西。这个DEMO中涉及到的粒子数目超过了6,000个,改进驱动后的目标是40-50,000,可以想见其震撼效果。同时为了给游戏开发商提供便利,Ageia公司准备了NovodeX SDK开发包来完成这个使命。该软件不但包含了业界先进的Novodex物理模拟引擎,而且它还可以作为现在主流的的3D建模开发工具以及微软的XNA开发工具的插件运行,开发人员只要通过拖放和点击就能完成对目标施加物理模拟效果,这对于任何专业的开发人员将都不是什么难事。目前已经有包括SEGA、Ubisoft和EPIC等三家公司率先表态支持这一新技术,其中EPIC公司甚至表示将把该技术整合到他们开发中的次世代Unreal 3.0引擎上。  

  注:目前支持PhysX PPU的游戏公司及游戏列表!  

  这是使用了Ageia的物理加速引擎的游戏《Bet on Soldier》的画面,注意士兵喷出的火焰,由于受到墙面的影响,火焰不仅出现了弯转,还有一定程度的贱散。这些都是通过流体和粒子的物理处理实现的。

  由于AGEIA本身没有晶圆生产工厂,因此PhysXPPU芯片将可能交由台积电(TSMC)来负责生产,之后AGEIA也将会寻求板卡制造厂商来生产搭载PhysX PPU芯片的PCI Express 1x或4x接口(或普通的PCI接口)板卡。玩家只要将这具物理运算处理功能的板卡安装至计算机上的兼容接口之后,透过特定支持的API或SDK(例如NovodeX物理引擎),玩家便可在游戏中享受这硬件级加速物理反应运算的好处。目前PhysX PPU已经与相关板卡厂商,比如华硕达成协议,由后者生产基于PhysX PPU的板卡产品,价格估计在249-299美元之间。如果玩家们想要感受PhysX PPU带来的极速快感,将要因此付出更为高昂的费用。

  

简单的爱~

TOP

2、Havok FX+nVIDIA SLI的物理加速方案

  与Ageia不同,其它厂商则利用GPU计算来实现物理加速,它最大的优势就是无需添设新硬件,利用现有的显卡实现!其实现在的GPU性能非常强大,不仅能完成3D渲染的工作,利用特殊的开发工具还可做一些其他的工作。比如,NVIDIA目前已经与Havok FX合作,计划通过Havok引擎让自家的GPU应用于物理效果的计算。

  nVIDIA表示,当前最新的Havok FX引擎支持SLI物理加速,实际上,Havok FX也支持单nVIDIA GPU。单卡模式下,在3D渲染周期中间加入物理效果的计算,对于3D渲染计算较少的游戏或者是游戏中3D渲染较少的场景,单GPU的计算物理效果还是能给游戏带来很多华丽的效果。但是物理效果的计算必然会导致3D渲染使用的GPU的资源减少,会一定程度降低游戏画面的画质,这就需要游戏开发者自己去平衡了。因此,nVIDIA强调说SLI是最佳设置,因为这可以让第二个GPU专门从事物理计算。

  

  利用SLI技术可以实现10000个物体的计算,实现流体、刚体运动、粒子效果、烟雾等!那么它是怎么工作的呢?简单的来说就是分工。SLI的两块显卡,一块用于3D渲染,另一块专门实现物理加速(可以把第二块显卡当作Ageia的物理加速卡)。而最大的好处就是,当你不需要物理加速或者是游戏并不支持时,两块显卡又可以同时为3D渲染工作,这样便更好的利用了SLI资源。从上图不难看出,Havok FX API可以通过DirectX将数据发给GPU驱动,如果游戏或者驱动不支持SLI物理,那么将不会发送物理数据,反之则交给GPU 2进行物理计算,计算结果则返回给Havok API。

  

  nVIDIA承认目前物理动态平衡功能无法实现,第二个GPU要么专门处理物理,要么专门处理图形,特别在是游戏不支持Havok引擎时。不过nVIDIA承诺将开发动态平衡技术以最大限度利用GPU性能。和SLI图形功能一样,SLI物理功能也可以通过驱动开启或屏蔽,根据需要来决定是否使用物理加速。 由于物理计算非常复杂,因此SLI物理对GPU性能要求很高。根据nVIDIA所说,支持Havok FX引擎最低需要GeForce 7600显卡,推荐7900以上显卡。而最早PPU观点的支持者反对GPU实现物理效果的一个重要的论据就是:GPU在3D渲染上且自顾不暇,如何还能兼顾物理加速。明显地,NVIDIA并不这么想。

  说了这么多原理,那么SLI物理技术性能如何呢?nVIDIA提供的一个数据显示,在一个有15,000个石块的场景中,SLI物理加速性能是P4 EE的10倍多。

  

  游戏开发商旗舰制作室的技术指导Tyler Thompson说:“通过HAVOK FX,我们可以探索全新类型的视觉效果,同时为《地狱之门:伦敦》增加真实感。由于GPU庞大的用户基础以及NVIDIA GeForce 7900 GTX和GT显卡的强大实力,HAVOK FX是很自然的选择。”此外,最新的版本Havok FX包括一个令人兴奋的特性——使用支持SM3.0的GPU实现物理加速。注意不是仅仅适用于NVIDIA的显卡,从技术角度而言,它将可以在任何支持SM3.0的显卡上运行,当然也包括ATI的显卡。当然,对于玩家而言,最关注的还是实际游戏中的性能而不仅仅是某个测试程序,对此,nVIDIA表示,支持SLI物理技术的游戏,驱动都将在今年年底推出。

  令人遗憾的是,目前SLI技术应用到物理加速也还停留于概念阶段,估计要想实现这一技术至少要等到2006年年底,而2007年也许我们就可以见到很多效果超出想象的游戏了!

简单的爱~

TOP

3、ATI的物理加速方案

  相对Havok与nVIDIA的合作方案,ATI最近也提出了自己的物理加速方案。根据ATI的解释:物理计算对浮点运算以及分支预测要求比较高,同时还提到了R5XX架构具有先天优势,ATI称早在R520 GPU当中就加入了世界级的GPGPU计划,而R580则依靠强大的硬件规格计算能力非常充裕。

  

  首先在浮点运算方面,R580内置48个像素渲染单元,单卡375 GFlops、双卡750 GFlops,目前最高端的CPU浮点能力却只有10GFlops,尽管还不清楚AGEIA 物理加速卡/PPU的实际性能,即使它拥有25GFlops并以100%的效率运行显然也不可能达到以上R580的表现。同时R5XX拥有专门的动态分支预测逻辑结构,更能够有效的对物理计算进行支持,所以说R5XX的架构设计在物理计算方面非常有利!在ATI的物理加速方案,主要有四种计算方式:AABB、sphere、Tetrahedrons、mesh:

  

  其中AABB是最简单的方式,同时通过最简单的立方体碰撞来实现,这种方式对处理要求最低;第二种sphere(球形碰撞)方式,通过类似球状的模型进行更精细的碰撞处理器,同时在处理资源要求要比sphere高;第三种Tetrahedrons(四面体碰撞)方式,用在实体表面空间复杂情况;最后一种方式mesh(网格碰撞)是最复杂的,对处理性能要求也是最高的。

  

  注:上图展示了两个物体从碰撞前到碰撞后产生形变的整个过程,我们看见非常形象。

  此外,在软件支持方面,目前ATI正在致力于数据并行计算架构提取的工作,主要目的就是要让开发商直接跟硬件打交道,而不一定需要通过Direct3D和OpenGL API来实现,这套工具已经提供给开发商和API开发者,这对于效率来说是更值得肯定的,同时这个架构提取还可以实现其它GPU运用。  

  值得一提的是,ATI的物理加速方案也支持双卡互联功能,但ATI的双卡对物理加速的支持比较特别,它们能够让两块显卡分割图形和物理计算。最令人惊讶的是,这种计算并不需要在CrossFire模式,也就是说单独的一块显卡可以直接当作物理加速卡使用,两块显卡无需一致,也不用组交火。这意味着现在如果你购买了X1900XTX,半年后再买了块X2800XTX,也能够让一块显卡用于图形计算,另一块用在专门处理物理计算!  

  注:ATi在游戏开发者会议展示的物理特效Demo

  当然具体的物理特效效果如何要在未来相关支援物理特效的游戏中才能得到揭晓,不过ATi方面目前也已承认现有显卡所能实现的物理特效颇为有限,而暂时而言显卡搭配物理加速卡在游戏中才会达成最好的物理特效效果。略为令人遗憾地ATi表示他们目前只有X1800/1900系列的显卡(包括CrossFire搭配)可支援其未来的物理特效功能,具体已知也需通过驱动开启,而ATi目前尚未明确那家厂商会为其提供物理API,不过据消息称微软方面有意在未来的DX10中引入名为Direct Physics的物理特效技术支援,ATi方面颇有可能将支援并采用该技术,而2006年的游戏市场无疑或许也将成为物理游戏之年。

  结语:

  可以说,物理加速技术是自GPU出现以来最大一次3D硬件技术的变革,我们相信此类技术将会使PC游戏获得巨大创新,同时也将会重燃游戏开发者的激情和创意,他们可以创造出生动的游戏玩法和真实游戏环境。

  不过,目前来看,除了AGEIA的PPU(物理加速卡)已经正式发布之外,ATI和NVIDIA的GPU物理加速技术还停留在理论阶段,尚进入实际应用,实现方法与效能暂时无法估计。同时,游戏厂商能否会及时跟进仍是个迷,毕竟缺少游戏支持物理加速对众多游戏玩家的实际意义并不大,这也是广大玩家们最为关心的。

简单的爱~

TOP

发新话题