一切为了真实 PhysX技术诞生
传说中开启物理特效是这样的
乌云密布,狂风阵阵,天上树叶飘落,地下飞砂走石,草木皆动。只听山丘之王指着旁边的熊猫头上的斗笠骂道:“不让你带这破帽子你偏戴,雨点砸到上面还往我脸上上溅,胡子都湿了。”忽然,惊天一声雷,山体爆开,腾起一阵烟雾,碎石夹杂着头上的暴雨砸到众人身上。山丘之王还没来得及反应,已被高滚落下来的巨石压的四肢粉碎,污血满地,其景惨不忍睹。虽然圣骑士施法将其救活,无奈其运气太差,没走几步又被崩裂的碎石穿头而过,脑浆崩溃。众人急忙四处逃窜,各自找掩体躲避。随即,一道银光划过天际,只见远处阿尔萨斯,手持霜之哀伤,背裹披风,威风凛凛,寒气逼人。旁边的蜘蛛纷纷遁地,留下一个个土坑。食尸鬼也用锋利抓子挠着树木,树干摇晃,枯叶飘落。众人胆寒,无人敢上前迎战。大法师早已下破了胆,应付道:“你们先打着,我回去叫救兵。”只见马蹄蹬起一阵阵尘土,不一会儿便消失的无影无踪。见无人反应,伊利丹道:“怕个什么,你们掩护,我上。” 说时迟,那时快,只见伊利丹拖着生锈的埃辛诺斯双刃朝阿尔阿斯砍去。正要手起刀落,却被霜之哀伤一挡,双刃变为碎片,四处散落。这时远处冒起浓烟,原来是大法师搬的救兵来了,伊利丹一阵窃喜:“刚才要不是要面子,我才不去呢,差点玩儿大发了。”刹那间,人类、精灵与不死大军混战一团,然联盟最终实力不济,大败而归。风卷残云过后,夕阳下阿尔萨斯注视着远处敌人溃败的部队颇有感慨,已染满鲜血披风随风摆动。远处小溪潺潺,岩石上水花四溅,岸边只剩几只食尸鬼撕咬着只剩下半只死去的马身……
那关闭物理特效呢?
乌云密布,狂风阵阵。忽然,惊天一声雷,山体炸开一个小洞,泛起小股烟雾,随即好像又什么都没发生。山丘之王还没来得及反应过来,已被高滚落下来的巨石压扁。虽然圣骑士施法将其救活,无奈其运气太差,又被崩裂的碎石砸死。圣骑士大叫:“不是吧,两次POSE还都一样。”众人四处急忙逃窜,各自找掩体躲避。随即,一道银光划过天际,只见远处阿尔萨斯,手持霜之哀伤,背裹披风。旁边的蜘蛛纷纷遁地,食尸鬼也用锋利抓子挠着树木。众人胆寒,无人敢上前迎战。大法师早已吓破了胆,应付道:“你们先打着,我回去叫救兵。”骑上马不一会便消失的无影无踪。见无人反应,伊利丹道:“怕个什么,你们掩护,我上。” 说时迟,那时快,只见伊利丹拖着生锈的埃辛诺斯双刃朝阿尔阿斯砍去,没跑几步却被脚下的几根小草挡住去路,心里大为惊恐:“难不成阿尔萨斯身边草木皆兵?“正要手起刀落,被霜之哀伤一下挡了回去。阿尔萨斯顿时惊恐:“这破刀都生锈了还这么硬?”这时远处冒起浓烟,原来是大法师搬的救兵来了,伊利丹一阵窃喜:“刚才要不是要面子,我才不去呢。”刹那间,人类、精灵与不死大军混战一团,然联盟最终实力不济,大败而归。大战过后,夕阳下阿尔萨斯注视着远处敌人溃败的部队,远处小溪旁边只剩几只食尸鬼撕咬着死去的马身,一边咬还一边嘀咕着:“这马什么做的,肉这么硬,啃都啃不下来。”(以上内容纯属YY,如有雷同实属巧合)
废话了一大篇,现在回归正题。众所周知,传统的2D游戏与现在的3D游戏画面已不可同日而语。就拿FPS游戏来说,从儿时的《魂斗罗》,到初步拥有3D 画面的《CS》,到以阴影画面著称的《DOOMIII》,再到3D画面出众的《使命召唤》以及将HDR效果发挥到极致的《FarCry》和《Crysis》,游戏的画面越来越接近现实中的人和事物。而与此同时,我们还能注意到,尽可能的还原真实世界的物理效果也是游戏发展的一大趋势,游戏中可以隔墙射击、走过雪地可以留下脚印、掉落的树木可以伤害到人、树叶四处随风飘落以及水花碰到岩石四处飞溅、打碎玻璃后碎片飞落、从不同角度攻击箱子会发生不同的破坏效果等等等。而开篇看似一大堆废话中其实也包含了不少了真实物理效果,笔者就不再一一熬述了。
以上真实的物理效果最初并没有得到许多厂商的重视,许多大作只是一味的追求唯美的游戏画面,而事实上人们也会以这些固定的游戏画面来作为画质好坏的标准。也许有些玩家会问,为什么这些游戏画面是固定的呢?那些流动的河流、摆动的树木等等不都是动态的吗?但答案并非如此,这些可以看到的画面仅仅是录制好可以实现的游戏画面,而并非根据真实的环境碰撞、摩擦等因素计算得出,所以你会看到许多游戏中流动的河流、摆动的树木都是按固定的模式进行。另外还比如,《CS》中不论你是被爆头还是其他部位中弹,倒地的方式都是一样的,甚至还可能尸体倒入墙壁中。无法与真实的环境进行互动,让这些原本生动的画面却看起来不够真实。
而这一切,在2004年Ageia的公司推出了PhysX物理加速技术之后发生了变化。在Ageia看来,其公司主打产品PhysX物理处理器(PPU)是自3D加速在上世纪九十年代引入PC之后的又一次革命性进步,以往3D渲染世界中由CPU管理、GPU渲染的动态物体和材料将得到来自PPU的加速,电脑游戏也将由此进入一个新的时代。而事实上AGEIA的PPU则从开发之初就专著于物理加速,可以处理更大量、更复杂的动态运算,同时也能让CPU专心于任务管理、让GPU专心于帧渲染的本职任务。至此,PhsyX诞生了!
PhysX发展历程
AGEIA带着PPU概念出现后,业内人士普遍认为图形卡支持物理硬件加速是一个发展趋势,而做为新兴公司AGEIA在市场推广方面显然无法和两家耕耘已久的老牌厂商ATI和NVIDIA相抗衡,被收购的结果在AGEIA创建之初已被不少分析家预言。
此前在Intel收购物理引擎厂商Havok后,网上就盛传AGEIA已经成为大厂商的猎物,各大老板已经开始出价竞标。AMD首先公开了兴趣,但由于财务状况不佳只能放弃,NVIDIA和任天堂成为了最大热门。但事实表明,作为GPU厂商的NVIDIA是AGEIA的最佳东家,也是双方双赢之举。不出所料,在08年2月份NVIDIA正式宣布收购物理处理器厂商AGEIA。
其实从理论上来说,GPU的设计结构是十分适合物理运算的,因为一颗典型的GPU从结构的角度来说是一颗目的性非常明确的并行处理器,其次才是PPU,最后才是CPU。尽管NVIDIA早在几年前就提出了采用GPU来实现游戏中的物理效果运算,但是由于流行游戏中采用的物理引擎没有一个合适的接口,所以GPU一直处于“有劲使不上”的情况。但在NVIDIA拥有了AGEIA之后,而PhysX技术也被诸多游戏作为新的物理引擎来使用,所以GPU也终于可以在游戏中发挥它物理加速的功效了。
NVIDIA收购AGEIA后,其技术将不仅用于游戏物理运算方面,并将其移植加入NVIDIA的CUDA显卡通用计算架构中,为各种需要大运算量的通用计算应用提供支持,事实上所有的GeForce 8系列以后的显卡都支持CUDA,而这些显卡将都有能力运行PhysX物理加速。
NVIDIA在收购AGEIA后迅速将其 PhysX物理加速技术融入到了自家的产品中,在6月份发布了首款支持物理加速的PhysX物理驱动,凡是支持NVIDIA CUDA架构的显卡均可使用PhysX物理驱动,也就是GeForce 8/9/GTX 200系列。这些用户不再需要单独的PhysX物理卡就能获得物理模拟加速能力,能在任何支持物理技术的游戏或者程序中看到效果,比如3DMark Vantage、《UT3》等等。
PhysX技术解析
事实上在PhysX设计之初,它是只支持CPU和PPU物理加速的,不过在被收购之后,NVIDIA通过CUDA架构将其重新编译,并打包进NVIDIA的驱动程序中进行发布。尽管NVIDIA表示今后将大力发展GPU物理加速,但这并不表示PhysX引擎排斥CPU或者CPU+GPU的综合解决方案。
通过CUDA通用接口,PhysX引擎将NVIDIA GPU中的Thread Scheduler(线程管理器)模拟成Control Engine(控制引擎CE),而Streaming Processors来模拟Vector Processing Engine(矢量处理引擎,VPE),其中CE控制引擎负责任务的指派,相当于PhysX中的主管机构,而真正的物理运算任务则是由VPE矢量引擎来完成,最后通过Data Movement Engine(数据移动引擎DME)输出。通过HAL翻译层来实现软、固质体动力(Soft or Rigid Body Dynamics)、通用碰撞侦测(Universal Collision Detection)、有限元素分析(Finite Element Analysis)、流体动力(Fluid Dynamics)、毛发模拟(Hair Simulation)以及更先进的布料模拟(Cloth Simulation)、自然模拟(Natural Motion)等在内新颖技术。
多线程PhysX引擎专为大型并行环境中的硬件加速而设计。AGEIA的PhysX处理器只有10个内核,而现在NVIDIA的GPU则具有多达216-240个内核。因此,NVIDIA的这些GPU非常适合利用PhysX软件。最重要的是,由于游戏物理学具有高度并行和互动的特性,因此GPU架构自然比CPU更加适合这种计算工作。借助于当今或下一代GPU(图像处理器),PhysX将为游戏玩家创造更多价值。
同时,NVIDIA为游戏开发人员提供了的PhysX SDK(软件开发工具包),使这些游戏开发人员能够开发出具备下一代物理学特色及硬件加速性能的游戏。该软件不仅具有极佳的功能性、稳定性、性能以及可扩展性,而且几乎所有的主要开发工具均支持本软件。值得一提的是,该套件还实现了微软Xbox 360与索尼PlayStaton 3之间的跨平台支持。而且,NVIDIA声称还将不断地在PhysX SDK新版本中加入新特性,令引擎的使用不断优化。
通过查阅之前诸多的游戏资料,笔者发现通过对PhysX技术的支持,NVIDIA的GPU更能为我们实现将以下7种效果:
1. 尘土飞扬,碎渣四溅的大量粒子运动所形成的爆炸效果;
2. 设计结构复杂的各种几何模型,以完成更加逼真的物理运动和交互动作;
3. 环绕在运动中的物体周围的大量翻腾涌动的浓烟和尘雾效果;
4. 逼真细腻的河水、泥石流、岩浆等流体运动模拟;
5. 衣物、草丛、树叶之类软性物体能随风自然飘动效果;
6. 衣物,旗帜等软性物体因外界各种影响做出不同的撕裂或变形效果;
7. 刚性物体之间相互碰撞的运动计算,一定力度之下形成拟真的成千上万个碎片运动。
借助于NVIDIA强大的市场推广能力,PhysX物理技术已经获得了越来越多的游戏厂商的支持。而在下文我们也将通过其中几款比较有代表性的游戏,来测试一下PhysX物理技术在游戏中实际体现效果。
测试平台及说明
测试上我们大致分为基准测试和游戏测试两个部分:基准测试使用3D Mark Vantage这个业内有口皆碑的显卡性能测试工具进行测试;而游戏测试方面,选择支持PhysX的游戏进行采帧评测。同时为了有一个参考,我们也会使用那些不带有PhysX技术的显卡来作为对比,这样也就能更直观准确的将测试结果呈现给大家。以下是测试平台的具体信息:
软硬件安装完成以后,正确的测试方法是:开机进入到桌面上以后,待系统准备就绪后,才开始运行测试(关闭UAC、屏幕保护程序、系统还原、自动更新等对测试得分有干扰的系统任务)。所有测试项目都运行三遍,在测试成绩稳定、可靠的情况下,我们以其中最好的一次成绩为准。
软硬件安装完成以后,正确的测试方法是:开机进入到桌面上以后,待系统准备就绪后,才开始运行测试(关闭UAC、屏幕保护程序、系统还原、自动更新等对测试得分有干扰的系统任务)。所有测试项目都运行三遍,在测试成绩稳定、可靠的情况下,我们以其中最好的一次成绩为准。
游戏测试之《蝙蝠侠:阿卡姆疯人院》
《蝙蝠侠:阿卡姆疯人院》这款ATC游戏是根据电影《蝙蝠侠》改编而来, 蝙蝠侠抓到了joker送进阿甘疯人院,不过joker的毫无抵抗令主角有些疑惑,最终蝙蝠侠中计被困在了疯人院里,玩家将扮演蝙蝠侠一路过关斩将冲出这个疯人院。
《蝙蝠侠:阿卡姆疯人院》采用了虚幻3引擎,PhysX API以体现游戏动作场景中的爆炸碎片、颗粒,及斗篷的卷动效果,实际游戏中随处可见蝙蝠侠飘逸的斗篷,飒飒的丰姿,地面的破坏效果也非常逼真。
测试方法:游戏内建测试程序。
测试选项: 1680X1050(4AA)和1920x1200分辨率,High画质,PhysX特效Normal。
游戏测试之《暗黑之日》
第一人称射击游戏《暗黑之日(Darkest of Days)》由8Monkey Labs开发,结合了大量由GPU加速的PhysX特效,带来更多更逼真、更令人身历其境的体验。《暗黑之日》将史上众多著名战争场景搬上游戏舞台,让玩家穿梭于古今,体验历史上许多“最黑暗的日子”,并置身于这些壮烈的战役之中。为求让游戏达到最高的逼真度,游戏开发商8Monkey Labs运用NVIDIA PhysX技术打造最具互动性、人物角色最生动、最自然的游戏场景。
《暗黑之日》除了融入如同《使命召唤》以及电影《拯救大兵瑞恩》的成功元素与手法,让玩家重回历史中最引人入胜的时刻,并采用“跳跃式”的叙述模式回到美国南北战争、第一次世界大战、第二次世界大战、庞贝城等时代,参与这些决定历史的重大战争。游戏中许多物件都可完全摧毁,此外,花草树叶、风、地面的低雾、烟雾、火山灰、积雪等物体也相当真实,为玩家带来更拟真的游戏体验。
测试方法:游戏内建测试工具。
测试选项:分辨率为1680x1050(4AA 16AF)和1920x1200,画质Very High,物理特效Medium。
游戏测试之《镜之边缘》
镜之边缘是EA DICE于2008年发布的一款单机游戏。本游戏从跑酷运动中获得灵感,以“第一人称”和“动作跑酷”的开创性的有机结合为卖点。
本作使用的游戏引擎是虚幻引擎3(Unreal Engine 3),并加入了DICE自己编写的光影效果补丁。相比于家用机的XBOX360/PS3版本,PC版的此作提供了NVIDIA公司的PhysX物理引擎支持。使用支持PhysX引擎的显卡的PC用户可以享受到较家用机平台更完美的画面,包括更真实的尘埃粒子、雾气、玻璃破碎效果等。使用不支持PhysX物理引擎的显卡的PC也可以强制开启物理效果,但全部效果需要通过CPU来处理,因此效率极低,完全不做推荐。
测试方法:游戏内建测试工具(需要注意的这款游戏锁帧于62帧)。
测试选项:分辨率为1680x1050(4AA)和1920x1200。
游戏测试之《一舞成名》
《一舞成名》是中国实力派网络游戏运营开发商“趣味第一”携国内最有创意的精英团队精心打造的大型社区交互游戏。该产品不但实现了类似《模拟城市》系列游戏的网络互动化,而且使用“虚幻III”图像引擎并支持GPU加速物理机能,使其带来强大的视觉震撼效果。
在《一舞成名》中,舞者人物的建模堪称纤毫毕现,栩栩如生,其舞蹈动作编排均由韩国专业舞蹈艺人设计,并采用高超的动作捕捉技术进行摄制。舞蹈作为游戏核心的一部分,舞者身着衣物的逼真程度已达到目前电脑制作的最高水准。一名领舞与四名伴舞均身着旗袍,其摆动的相关骨点超过14000个。由于如此大的运算量会对造成相当的负荷,该产品运行时使用了GPU分担一部分压力,并取得了相当显著的效果。
测试方法:游戏自带Benchmark。
测试选项:1280x1024(4AA 16AF)和1920x1200分辨率,所有画质最高。
游戏测试之《雪域危机》
尽管剧情方面略显薄弱,但这款游戏的画面素质颇高。由于 《雪域危机》中使用了大量的光滑粒子动力学(SPH)技术来进行模拟水的黏性及其流动效果与周围环境的互相映射效过,因此其需要大量的资源来进行运算。在DX10的特效下,CPU的资源基本已经被吃光,因此再想靠它来进行物理加速显然是不可能的,这时候PhysX技术再次帮游戏开发组找到了最佳的解决方案。
游戏使用了AtmosFear 2.0游戏引擎,它将表现出实时的灯光和阴影环境,描绘出真实水、冰霜和雪、而主角移动和战斗中还会表现出电影级运动模糊效果。而且通过NVIDIA PhysX物理加速技术,不仅可以让玩家体验上面所说的无比真实的娱乐体验,还能让画面表现得更完美,而且让游戏性能更进一步。包括水波荡漾、霜冻溶解和风雪粒子飘散等等逼真的特效都将一一呈现在玩家眼前。
测试方法:选取同一场景,利用Fraps记录,多次测试选取平均值。
测试选项:1280x1024(AA AF)和1680x1050分辨率,所有画质最高。
游戏测试之《铁甲突击》
《MKZ》是一款以现实世界观为基础,现代高科技战争题材为切入点,配合写实的美术风格、真实的物理系统、专业化的武器装备、特色的载具系统的MMOFPS。游戏具备独特的领土争夺系统和大量的网络化元素,并且能够实际模拟现实中(如子弹击中不同的物质会有不同的效果、墙壁承受一定强度袭击会被破坏等)几乎所有的物理效果。
测试方法:游戏自带Benchmark。
测试选项:1280x1024和1920x1200分辨率,所有画质默认。
游戏测试之《MStar》
《Mstar》是首款采用大名鼎鼎的虚幻引擎3的休闲社交网游作品,与以前的舞蹈类游戏的卡通化人设不同,这款游戏的人设极度写实,画面更为精美,因而给玩家带来的游戏体验更为真实。得益于虚幻3的强大功能,《Mstar》的舞蹈动作也更为流畅灵活,可以说,这款游戏将给玩家带来完全不一样的热舞游戏体验。
而在游戏内容上《Mstar》也多有创新,除了传统的热舞模式外,该作的社交功能更为强大和丰富。在游戏中,有一个名为“Runway”的系统,玩家可以利用这个系统将自己的形象精心打扮,并像名模一样地在T台上走秀。此外还加入了一个叫“QuizStar”的问答系统,玩家也许可以用来玩真心话大冒险。
由于此游戏暂时没有在国内运营,我们此次还是使用官方的测试工具进行评测。尽管只是一个小小的测试软件,但是作为一个Benchmark Tool其很好的突出了该游戏的特色。布料效果!人物动作!光照系统!更多的惊喜有待我们在游戏正式运营后自己去探索发现。
测试方法:游戏自带Benchmark。
测试选项:由于Benchmark并没有提供画质调节选项,我们选择了默认设置。
游戏测试之《Warmonger》
Warmonger: Operation Downtown Destruction,中文名字为《好战者行动:毁灭城市》,是一款多人在线FPS游戏。故事发生在2029年的未来世界,一场末日浩劫之后,两大军事集团为了争夺对中东石油的控制权,挑起第三次世界战争玩家必须在限定时间内占领和控制城市中的街区。
《好战者行动》的游戏主要卖点在于采用了PhysX物理技术,游戏环境以及地图中的元素都可以被破坏。关卡中城市的各种建筑都可以随意摧毁,让人无处可藏,必须奋勇杀敌。你也可以在爬上建筑物之后毁坏掉所有楼梯,以阻止敌人的有效攻击,或者把摧毁建筑物当作另一种杀伤性武器,将敌人毙命于坍塌建筑物之下。此外,《好战者行动》还具有独特的渐变式毁坏系统,即物体并非只有完好和毁坏两种状态,另有个逐渐损坏的状态,真实反映物理场景。
测试方法:选取固定场景,利用Fraps记录,多次测试选取平均值。
测试选项:1680x1050和1920x1200分辨率,所有画质最高。
PhysX技术总结及未来发展
(通过上面的3D Mark Vantage对比测试不难发现,实际上同一级别的N卡与A 卡理论性能大致相近,而到后面的PhysX游戏中就天壤之别了。再此也并非要评判孰优孰劣,上面的测试结果仅作为广大玩家参考,两系显卡的选择各位玩家各自心里有数,N饭与A饭各有所好,我们这里也不过多做讨论。)
文章开篇也提到,伴随着GPU性能的不断提升和图形API的不断进步,目前的3D游戏中画面已经非常的精美,其中很多的游戏场景已经接近完美了。但是玩家在游戏过程中还是会感觉不真实,其实原因很简单,传统的3D游戏中缺乏真实的物理现象,或者说是游戏不支持物理模拟计算。例如,大多数动作都还是“预先描述”好的或者是由游戏事件触发的“固定的”动画,例如游戏中枪弹击中墙壁。即使威力最大的武器也只能在最薄的墙上留下些许斑点;并且您取出每样物品的方式都是预先定义好的同一种方式。游戏玩家置身的游戏环境看起来不错,但是缺少了真正身临其境的游戏体验所必需的真实场景。
其实游戏开发着都明白在游戏中实现真实的物理模拟可以使得玩家获得前所未有的互动式体验。不光是游戏中的场景是真实的,而且每一个物体都是独立渲染并可以随意移动和破坏,同时由于有了真实的烟雾、水流和天气变化也使得游戏环境像真实的自然界一样。并且真实的物理场景也可以改变玩家玩游戏的方式,例如玩家可以利用场景中的任意物体进行移动或者攻击等等。而从未来游戏发展的方向来看,尽可能的还原真实物理场景以及实现与现实环境交互也是大势所趋,物理特效已逐步成为游戏中的一项重要体验元素。
那么为什么这么好的游戏方式在以往并没有被游戏开发商大量采用呢?这是因为物理计算需要耗费大量的并行计算能力,而以往物理计算只能运行在CPU上,我们都知道CPU擅长序列计算,在并行计算方面性能很差,这就造成以往的游戏中基本没有什么物理计算,如果增加物理计算的等级,CPU计算能力的瓶颈就会使得游戏运行速度非常慢。正是物理加速技术的出现,才很大程度上缓解了上述问题,而PhysX作为物理加速技术领域的代表,从推出到现在的短时间内就已经获得了业界的青睐。事实上也有越来越多的游戏厂商看到了这一点,目前已有150多款游戏支持PhysX。
以上几款游戏便是代表之作,其中不少作品就是将物理特效发挥到了极致,让玩家在游戏中尽可能的体验到真实的物理场景,而这一切还是要归功于PhysX。相信以后还会有更多的游戏大作加入到这一队伍中来,为广大的游戏玩家带来更多具有逼真互动效果的游戏画面和真实的游戏体验。如此以来,显卡是否支持PhysX已经成为能否体验这些物理游戏大作的一个重要因素。当然玩家也并不需要为此额外买单,在性能相差不多价格相近的情况下,选择支持PhsyX技术的显卡似乎更具性价比,毕竟这也顺应了今后游戏发展的大趋势,何乐而不为呢?