物理加速争霸战——透视NVIDIA和ATI的物理加速技术

技术空间

2005年,AGEIA公司发布了业内首款物理处理器(PPU)。从那时起,PPU开始被PC玩家所认识,同时也引起了大家的猜测,面对物理加速这块诱人的大蛋糕,传统图形芯片巨头NVIDIA和ATI会袖手旁观吗?它们会采取什么对策?正当我们苦苦寻求答案时,两大厂商终于在GDC 2006(2006年游戏开发者大会)上“出手”了。

火烧眉毛——Havok推出新武器

Novodex和Havok是当今游戏界的两大主流物理引擎,前者已被大名鼎鼎的“虚幻引擎3”所使用,在“布娃娃”系统效果示意图中,我们看到人物和管道的受力情况非常逼真,好像是真的有人刚刚用手把它们放在那里一样。后者依靠《Half-Life2》迅速扬名世界,最新的《帝国时代3》也采用了这个物理引擎。例如,《帝国时代3》中房屋逐渐倒塌、士兵被炸得四散开来的情景等都是Havok的功劳。

16-d7-01.jpg
Novodex的布娃娃系统效果示意图

如今Novodex已被AGEIA收购,在PhysX物理卡的硬件加速下,这个引擎可以表现出更强大的性能,如果Havok再不采取措施,很可能导致游戏开发商转投怀抱。在这种情况下,Havok选择了与NVIDIA合作,推出了新一代Havok FX物理引擎,该引擎可以让任何具备Shader Model 3.0的显卡支持硬件物理运算。

一举多得——NVIDIA SLI物理卡

1.现今GPU是否适合物理运算

我们知道,在GPU的架构设计上,G70只是在NV40的基础上进行修补,虽然运行效率提升了不少,但NVIDIA仍然来不及为它添加物理处理功能,而NVIDIIA的说法是可以让GeForce 6和7系列GPU进行模拟运算,这跟Havok的表态一致,即只须具备Shader Model 3.0的显卡即可!事实上,这样的说法不免让我们疑惑:现有GPU设计是否真的适合物理运算?

Havok的物理计算模型大致可分为三个阶段:第一阶段是整合初步计算,对物理对象进行物理状态的初始化,包括速度、加速度等各项信息;第二阶段是碰撞判定,即处理对象之间的碰撞检测;第三阶段是碰撞结果计算,也就是碰撞后如何处理,包括碰撞后的速度等信息,这个阶段是整个处理过程中最复杂的阶段。通过Havok提供的处理过程模型图我们不难发现,物理处理是一个对并行计算非常依赖的运算,这跟GPU的结构非常相似!换句话说,如今的GPU是可以进行物理模拟运算的。

16-d7-02.jpg
Havok物理处理过程模型

2.SLI物理卡的工作原理

我们知道,现在大部分物理加速运算还要依靠CPU来完成。如何才能将CPU负担的这些任务转移至GPU上?同许多硬件技术一样,该功能的实现离不开软件的帮忙。由于在3D图形计算方面,大多数游戏都是依靠DirectX或OpenGL提供的接口直接与GPU打交道。因此我们很容易想到利用类似的手段让GPU进行物理运算,但限于架构的设计,很多GPU不能直接处理物理数据,这就需要在运算过程上另辟蹊径。

16-d7-03.jpg
SLI物理卡的工作原理模型
16-d7-04.jpg
SLI物理卡的协作分工

Havok FX引擎“脱胎换骨”的关键点就是它增添了一个数据转换过程,物理数据可以转换成Direct3D数据,从而让GPU参与物理运算。通过SLI物理卡的工作原理模型图,我们可以清晰地看出这种思路。

SLI物理卡其实是对SLI的一个重大改进,SLI系统既可以进行常规的图形处理,也可以同时进行图形和物理运算处理。当Havok FX不被激活或游戏不需要物理运算处理时,两块SLI显卡以普通SLI模式进行工作;当Havok FX被激活时,其中一块显卡可以专门负责物理运算或动态分配图形与物理运算任务。

渲染 查寻可能的碰撞 对象状态:位置、方向、速度 碰撞检测 碰撞判定 综合 对象转换 成对的物体 接触点 迅速推动

SLI物理卡的表现究竟如何?我们不妨通过NVIDIA提供的Demo(演示)来体验一下。在蒸汽Demo中,随着士兵的前进,蒸汽也随之进行各种真实的扩散;而在步兵和垃圾Demo中,刚开始步兵踩到一堆垃圾上,地上的垃圾随之开始物理运动,后来受到离心力的作用,这些垃圾又围绕着步兵做圆周运动,效果很棒。从各种Demo来看,SLI物理卡可以实现强大的物理模拟运算,GPU的计算能力不可小觑。

3.SLI物理卡的市场意义

虽然Havok FX只需一块显卡就可以运行,但NVIDIA更热衷于SLI物理卡方案,其商业意图非常明显。目前NVIDIA仍紧紧地把SLI的正式使用权掌握在自己手中,玩家如果想体验SLI物理卡的威力,就必须购买两块NVIDIA显卡和一块SLI主板。通过这项计划,NVIDIA可同时扩大自己在主板、显卡、物理卡三大产业的影响力。

架构优化——ATI物理加速技术

早在R520架构发布不久,ATI就宣称X1000系列产品中加入了物理处理功能。到底ATI是如何使VPU实现物理加速计算的?

1.ATI的物理计算方式

目前ATI提供的物理计算方式有四种:AABB、Sphere、Tetrahedrons和Meshes。AABB(简单碰撞)方式是通过最简单的立方体碰撞来实现,对处理资源的要求最低;Sphere(球形碰撞)方式是通过类似球状的模型进行更精细的碰撞,对处理资源的要求比AABB高;Tetrahedrons(四面体碰撞)方式是通过复杂的实体表面空间进行碰撞,对处理资源的要求更进一步;最后一种Meshes(网格碰撞)方式是最复杂的,对处理资源的要求也是最高的。

16-d7-05.jpg
士兵前进过程中,蒸汽随之进行扩散
16-d7-06.jpg
ATI的物理计算方式(简单碰撞 球形碰撞 四面体碰撞 网格碰撞)

2.直接物理加速的实现

根据ATI的解释,物理计算对浮点运算和分支预测要求比较高,R520和R580拥有专门的分支预测逻辑结构等架构优势,可以有效地对物理计算进行支持,它们在物理计算方面非常有利。

由于VPU本身就加入了物理处理功能,游戏物理引擎可以直接把物理数据交给VPU处理,但关键问题是,ATI如何处理好这些数据的接收工作?通过ATI提供的技术原理图,我们可以看到,ATI使用了一种名为“DPP”(Data Parallel Processing,数据并行处理)的技术,物理数据通过DPP提取接口(DPP Abstraction Interface)输送到VPU内部进行处理。我们知道,很多物理处理要和并行运算打交道,ATI在接口处就进行并行运算的先期工作,此举无疑能提升VPU的物理运算效率。

16-d7-07.jpg
ATI的DPP技术原理图:DPP输入(纹理单元) 物理引擎 DPP提取接口 数据并行处理器(像素渲染) DDP输出(色彩单元)

要开启R520和R580架构的物理处理功能,还是少不了软件的帮忙。据悉,近期ATI将给软件开发商提供新的API(Application Programming Interface,应用编程接口),通过它可以让VPU同步处理物理数据和Pixel Shader(像素渲染)数据。对于我们用户来说,除了期待ATI尽快给我们带来惊喜外,目前最关心的还是它的表现效果。在GDC 2006上,ATI进行了两个物理效果演示:第一个Demo开始时有12.4万个粒子,到最后竟达到惊人的90万个;第二个Demo则演示了一块桌布随风摆动的情形,效果很逼真。

3.双卡实现方案

对于中高端用户来说,为了同时获取优秀的图形和物理效果,他们可能更热衷于使用双卡的解决方案,ATI在这方面能否同SLI物理卡抗衡?在说到双卡对物理计算支持的时候,ATI表示,他们的双卡解决方案更为灵活,这种计算并不需要运行在CrossFire(交叉火力)模式下!也就是说,如果你现在拥有一块X1000系列的显卡,以后再购买一块ATI显卡,这两块显卡就可以分担图形和物理计算工作,一块卡用于图形计算,而另一块卡用于物理计算。很明显,这种双卡解决方案更有吸引力。

16-d7-08.jpg
ATI的双卡实现方案

未来展望——三强相争谁胜出?

由于率先推出物理处理器,大家一度非常看好AGEIA的前景,但NVIDIA和ATI两大图形芯片巨头的强势介入让竞争的火药味开始浓烈起来。AGEIA有领跑者的优势,预计年内将会有20款游戏对PhysX物理卡进行支持,另外凭借着Novodex物理引擎的吸引力,相信它还能吸引不少游戏厂商的加盟。不过AGEIA的缺点也很明显,抛开产品初期上市价格偏高(预计在1500元~2500元)不说,单就购买一块全新的扩展卡这一点,就让很多用户难以接受。一旦传统图形芯片也能实现物理运算,PhysX物理卡的前景堪忧。

对于NVIDIA和ATI来说,支持物理运算不仅是顺应技术发展趋势的结果,更重要的是能为产品增加卖点。从实现物理运算的方案来看,目前ATI的方案更为灵活,对于中低端用户的吸引力可能会更强。但在高端市场,就要看哪家公司的产品综合性能更强了。事实上,现在预测谁将胜出还为时过早,等到大量支持硬件物理运算的游戏上市后,图形芯片将以崭新的面貌出现在我们面前,相信那时才是双方“肉搏”的开始。

结语

3D图形芯片的出现曾让我们感慨游戏画面原来可以如此绚丽,而伴随硬件物理加速的问世,你将感慨游戏原来能与真实世界相媲美,身临其境的感受更加让你流连忘返!面对这么一座大金矿,厂商能无动于衷吗?可以预见,未来物理加速市场的竞争将异常激烈。

附:本文涉及到的Demo下载地址:

NVIDIA

蒸汽Demo:http://www.watch.impress.co.jp/game/docs/20060326/gdc_ham2.zip

步兵和垃圾Demo:http://www.watch.impress.co.jp/game/docs/20060326/gdc_ham3.zip

ATI

http://www.pcper.com/article.php?aid=228&type=expert&pid=3