标题：物理加速技术
Havok
公司简介Havok公司于1998年成立于都柏林，为游戏、影视产业提供交互式软件和服务，并在物理、动画技术方面居于领先地位，与索尼、任天堂、微软、EA、育碧、Pandemic Studios等大型游戏厂商都有合作，其技术被广泛用于PS2、PS3、PSP、Xbox、Xbox 360、Wii、GC、PC等各种平台，以及150多款游戏《光环3》、《枪神》、《摩托风暴》、《镇压》、《帝国时代3》、《汽车总动员》等。
“物理加速卡”相信很多朋友都不陌生，特别对老资格的DIY用户来说，在当时拥有一块3dfx的Voodoo历史上第一块3D加速卡是何等的荣耀！但堪称千古绝唱3DFXVOODOO系列最终被NVIDIA收购。而全球第一家开发出的“物理加速处理器（Physics ProcessingUnit）”PhysX的厂商Ageia也最终没有逃过被NVIDIA收购的命运……使用情况Havok成立于1998年，主要为游戏开发商提供物理仿真技术，从而使对象能够以更加真实的状态展现。 
这家位于爱尔兰首都都柏林的公司的产品已经被多款游戏所采用，如《halo 2》、《生化奇兵》和《半条命2》。《黑客帝国：尼奥之路》、《特洛伊》和《查理和巧克力工厂》等知名电影中也都使用了havok公司的产品。在成立不到10年中，Havor公司已经在美国三藩市、圣安东尼奥市、得克萨斯州、瑞典首都斯德哥尔摩、印度加尔各答市、德国慕尼黑和日本东京等地设立了分公司。
Havok.com向外界公布它的被游戏制造商广泛使用的物理和动画引擎的一个免费版（没有公开源代码），其中包括了与 Autodesk的3ds Ma 的Maya整合的工具。 
开发者可以使用该免费版制作非商业性质的游戏、中间件、和科学研究项目。收购事件2007年9月15日消息，Intel公司称，Intel将收购一家世界知名游戏仿真技术公司Havok。Havok是一家专业提供视频游戏开发商和电影特效团队所需软件和服务的数字媒体公司，它所开发的havok物理仿真引擎已经得到全世界游戏开发商和电影制作商的欢迎和使用。 
据一份Intel公司新闻稿称，Havok将成为Intel的一家全资子公司，收购之后的Havok将继续从事自己的业务范围。Havok公司CEO大卫。欧米拉在一份声明中表示，收购将使Havok迈入新的市场机遇。
AMD宣布，将联合英特尔旗下Havok公司开发显卡物理技术，优化显卡游戏物理效果。据国外媒体报道，在物理技术方面，英特尔收购了Havok，NVIDIA买下了Ageia。如今，AMD最终选择了英特尔旗下的Havok。AMD方面 称，Havok的技术非常先进，执行效率较高，关键是非常便宜，公司已经计划在处理器上针对Havok技术进行全面优化。同时，AMD也希望让 Radeon核心来负责相应的物理运算，而即将发布的RV770中的物理加速运算能力就来自Havok。 
很显然，AMD同英特尔已经达成了共识，认为物理加速还是主要依靠处理器来实现，而不是像NVIDIA那样通过显卡实现。 
据悉，英特尔于去年9月中旬以1.1亿美元将Havok收购，Havok已经作为英特尔的全资子公司运作了10个月。Havok以独立发展的形式从事Havok FX物理处理应用编程接口(API)的研发，这可以让运算法则更好地在GPU上运用。Havok的主要对手就是被NVIDIA收购的Ageia，Ageia也在从事与Havok API类似的研究工作。作为合作的一部分，Havok和AMD计划在AMD x86处理器上针对Havok技术进行全面优化。另外，双方今后还将考虑让ATI Radeon显示核心承担部分物理模拟效果。 
目前在游戏里被大量普遍应用的物理引擎有两种，分别是Ageia开发的PhysX以及Havok的Havok系列引擎，目前使用这些引擎的游戏加起来总共超过四百款，不过需要使用PhysX物理加速卡的游戏加起来不足百款，而剩下的游戏都可以通过CPU来进行物理运算。选择原因但面对越来越多的3D模型和越来越多的实际特效没有物理加速是不可能的。NVIDIA收购了Ageia自然有PhysX物理加速，那AMD呢？那自然是选择应用率更高的Havok推出的Havok物理加速引擎。AMD之所以选择Havok引擎有几个原因。 
第一：目前在全球游戏领域里被广泛应用的物理引擎的只有Ageia和Havok，其中Ageia被对手NVIDIA收购自然不会去选择采用。 
第二：从物理引擎的游戏实际应用数量上看，使用Havok引擎的游戏约为总数量的3/4款，而使用PhysX技术的只剩下的1/4款。自然是首选Havok物理加速引擎。 
第三：PhysX主要是让GPU去运算物理效果，而Havok则是让CPU+GPU联合来运算，符合AMD的GPGPU的发展线路。
GPGPU
背景介绍目前，在通用计算和图形处理领域里可以说是三国鼎立。Intel堪称通用计算的龙头，但是只有CPU而没有真正独立的GPU，虽然在各种宣传中一再强调CPU的重要性，但从其收购Havok来看，Intel自然也想在图形处理领域里分一杯羹。而图形领域里的龙头NVIDIA则与Intel相反，其只拥有GPU而没有完整独立的CPU。但最近两年的发展趋势不难看出NVIDIA正在努力的向通用计算领域里挺进。而AMD在成功收购ATI之后，则是同时即拥有完整独立的GPU和CPU，而GPGPU的概念也再一次成为关注焦点。产品介绍“GPGPU”可以被称为通用图形处理器。其中第一个“GP”通用目的（GeneralPurpose）而第二个“GP”则表示图形处理（GraphicProcess），这两个“GP”搭配起来就是“通用图形”。而再加上“U”(Unit)就成为了完整的通用处理器。 
拥有双向发展的AMD更需要让GPU有个完美的发展前景，在GPU中基于了一套完整的DiretX、OpenGL开放标准，并且在发布了开源工具、Linux开源驱动之后又继续向外界公开GPU的微代码。AMD认为只有开放的标准才能让自己走的更远。而且AMD也希望与其他厂商共同前进集思广益，共同打造出一个完美开放式的通用计算标准，虽然NVIDIA也加入了开源的行列，但AMD认为CUDA方式并不符合自己的开放方向而放弃采用。
在游戏中，特别是在3D游戏中，真实性往往是需要高标准的硬件设施才能达到的。在3D技术发展早期，图形芯片只能完成常规的渲染操作，而关键的建模和光照运算必须以软件模拟的方式由CPU来完成，而NVIDIA在1999年8月推出的一款具有革命意义的GeForce256芯片，它具有硬件T&L引擎，可独自完成建模和光照运算，大大降低了CPU的负担，显卡的3D效能也获得了突飞猛进的提升!不过，尽管GPU的出现让CPU负担减轻，但除了工艺水平改进，频率提升，管线堆叠之外，没有真正实质性的变革，CPU仍需负责图形相关的物理运算工作，依然采用沉闷的游戏渲染方式。正是在这种形势下，AGEIA Technologies于2002年提出物理加速的概念，此后的6年时间里AGEIA潜心专注于对此技术的研究。PhysX物理加速技术强大的物理计算和处理能力所带来的全新震撼的真实游戏体验，在业界得到一致认同，并将成为未来3D图形发展中一项不可或缺的重要技术。全球显卡巨头NVIDIA于08年2月一句完成完成并购。工作原理从工作原理上来说，
物理加速处理技术主要负责两个工作：
1.如何近乎自然的操纵物体移动；
2.在周围环境的影响作用之下，物体如何接近真实的做出交互性回应。
在以往的许多游戏中，物体的移动往往跟现实世界相去甚远。因为大多数游戏中的动态场景都是预先定义好的，或是由某事件触发的固定动画播放。这样做是为了省却不堪重负的GPU在物理运算方面的工作，而牺牲了玩家的真实场景体验。比如开枪打一堵墙，即使是威力巨大的武器也只能在很薄的墙体上留下些弹痕，而不能导致倒塌或摧毁；被你击毙的所有敌人，都以预先定义好的千篇一律的方式倒地；当你正驾驶坦克在不断获得一次次胜利，争取更大战果的时候，你却被前面的一片灌木丛挡住了去路……玩家往往因为这些游戏开发的技术瓶颈而不能体验到身临其境的真实感而引以为憾。
PhysX
物理加速卡PhysX物理加速技术体现在硬件和软件两大应用层面:以PPU为核心的物理加速卡以及PhysX物理引擎
一、硬件——物理加速卡（以PPU为核心）
AGEIA于2005年生产了世界上第一块3D图形物理加速处理芯片，也就是PPU（Physics Processing Unit）。以此芯片为核心的物理加速卡，是一种全新的PC硬件范畴，市面上的AGEIA PhysX物理加速卡，以及和华硕、影驰等PC硬件厂商合作生产的物理加速卡都是以PPU为核心的。 玩家们耳熟能详的《虚幻竞技场3》、《幽灵行动2：尖峰战士》、《好战者（warmonger）》、《细胞因子》、《赌命战士》、《战争机器》、《Beowulf》、《 City of Villains Medal Of Honor: Airborne》、《 Bladestorm: The Hundred Years' War》等140多款经典游戏都是以PhysX引擎为灵魂，并且都支持物理加速卡。
PPU的出现是为了解放随着图形发展而任务日益繁重的CPU,将原本使用软件技术并通过CPU运算处理的物理反应计算提取出来，专门来负责物理运算的处理工作。其强大的整数及浮点运算能力，可形成软、固质体动力，泛用碰撞侦测，有限元素分析，流体动力，毛发模拟，布料模拟等技术特效。随着PhysX引擎也将得到越来越多的游戏开发商的青睐，物理游戏将会如雨后春笋般涌现出来。物理加速卡这一英雄，也将会有越来越广阔的用武之地。
借助PhysX卓越的计算能力，玩家将看到各种逼真震撼的场景，例如：
1.尘土飞扬，碎渣四溅的大量粒子运动所形成的爆炸效果；
2.设计结构复杂的各种几何模型，以完成更加逼真的物理运动和交互动作；
3.环绕在运动中的物体周围的大量翻腾涌动的浓烟和尘雾效果；
4.逼真细腻的河水、泥石流、岩浆等流体运动模拟；
5.衣物、草丛、树叶之类软性物体能随风自然飘动效果；
6.衣物，旗帜等软性物体因外界各种影响做出不同的撕裂或变形效果；
7.刚性物体之间相互碰撞的运动计算，一定力度之下形成拟真的成千上万个碎片运动。
如此类推……
注:CPU、GPU和PPU三角关系(更多此类常见问题，可参考 http://www.physxtech.cn/physx/physx_faqs.php)交互方法理解三者关系的最好方法是理解他们是如何和游戏引擎交互的：CPU只考虑如何让游戏对玩家作反应，就好像一个大管家一样， 工作则重点是放在渲染质量方面、主要追求单纯的视觉效果，而不是将运作效能放在第一位。物理加速则着重渲染效果的“真实性”，设计成考虑对象的运动以及和虚拟世界之间的互动。但是物理加速有着和GPU完全不同的内部构架，它往往拥有软、固质体动力，泛用碰撞侦测，有限元素分析，流体动力，毛发模拟，布料模拟等技术特效，可以处理相当复杂的物理运算，而传统的CPU和GPU在执行这些任务时往往无法获得足够好的效能。物理加速的这些处理技术和GPU是完全不同的两个运算概念，因为物理运算需要十分强大的整数及浮点运算能力，而将以上这些分离出来交由物理加速处理架构的最大优势，这意味着未来3D运算也将从现有的CPU、GPU配合的方式变为CPU、物理加速处理和GPU三者的配合协作。厂商们所推出的物理加速的概念也是如此，它将原本使用软件技术并透过CPU运算处理的物理反应计算再提取出来给专门负责物理运算的硬件、芯片来处理。在短期来看，CPU“综合协调”，GPU“渲染、显示”，“处理物理交互”，三者共同完成逼真的游戏体验。　
比如在模拟一个大石头滚下山坡的场景时，现有的双核心处理器只能处理800-1000块石头互相碰撞、反弹、急冲的景象，无法展现出更广阔的场景。
可以说在短期，物理加速处理所带来的最大变化将是游戏特效，因为以目前的GPU硬件技术，游戏开发者已经很难整合环境和其他元素，打个比方：一阵冷风吹过一片寂静的，树将随风摇摆，数叶发出沙沙响声，百叶窗发出被风吹打的巨响，修道士手拿火把穿过古墓，他的的长袍很真实的随风摆动，女主角的所骑马的尾巴也自然的摆动，当前面的城堡突然爆炸，飞溅出来的碎石冲倒街上的围墙，这些特效将会让游戏真实感上一个台阶，同时基于物理模拟的视觉将会彻底改变此前单调乏味事先做的动画效果。
PhysX SDK
引擎简介PhysX 物理引擎为下一代游戏提供了最先进的动态运动交互物理效果: 成千上万个物体互相碰撞, 弥漫的烟雾, 与周围环境交互的布料系统, 喷涌的流体系统. 如果你想使你的游戏更生动逼真, 那么没有别的选择-你需要PhysX 物理引擎。
PhysX SDK™，它不仅可以应用于次世代PC游戏开发，还可应用在Console游戏开发中。目前该物理引擎已经和世界超过60家的游戏开发商和发行商进行了游戏物理开发的合作，包括亚太地区的中国、韩国和日本等的诸多知名游戏商。游戏列表可参见http://www.physxtech.cn/game/game_top.php。和腾讯公司合作开发的号称“最时尚的赛车网游”以及“最好玩的赛车网游”的QQ飞车（http://speed.qq.com），正是以PhysX物理引擎为技术核心。特性介绍PhysX SDK特性如下：（可参见http://www.physxtech.cn/developers/developers_sdk.php）
复杂的刚体物理系统
刚体动力学模块能够高度真实地模仿物体运动。该模块运用诸多物理概念， 如：参照系，位置，速度，加速度，动量， 力，旋转，能量，摩擦，冲量，碰撞，约束等，提供一个构建这些物理概念的工具箱，使你能够方便地创建多种类型的机械设备：
· 碰撞实体 （球，盒子， 胶囊状物体， 平面，高地， 凸状物体，三角形网格） 
· 各种铰链类型 （球形，回转形，菱形，圆柱形， 固定，距离形，滑轮，六自由度） 
· 创建和编辑高级人体（rag doll） 
· 材质和摩擦建模 
· 支持连续碰撞检测 
· 分组碰撞+碰撞筛选（可编程）
先进的角色控制器
角色控制器主要用于独立于刚体物理的第三人称或第一人称角色控制.
· 自动步幅调整特性
· 优势性分组
基于射线探测和铰接组合的车辆运动系统
PhysX SDK能够完美的模拟真实世界的车辆运动
· 车轮外形 
· 基于铰接的悬架
支持多线程/多平台/PPU
Ageia PhysX SDK 对单核及多核的PC平台, Xbox360, PS3 以及PhysX 加速卡都进行了优化
· 支持Ageia PhysX加速卡
· 细粒度的多线程控制
· 支持异步
· 内建的剖析工具
· 针对PS3及Xbox360平台的优化
流体的创建和模拟
基于粒子系统和粒子发射器，流体可以用来模拟液体和气体，具体包括：
· 支持光滑质点流体动力学（SPH）方法和无交互的简单流体模拟
· 用户可以在模拟过程中精确控制每一个粒子。
· 支持流体与刚体、布料及柔体的双向交互。
布料、使用布料裁剪成服装的过程及回放
PhysX SDK 的布料特性可以模拟由布料制作的物体，如旗帜和衣物等。
· 支持布料与刚体或坐标点的绑定
· 支持布料自身碰撞
· 支持可撕裂型布料、压力型布料及可变形的金属型布料
柔体模拟
AGEIA PhysX SDK 的柔体特性允许对可形变物体进行三维体模拟。同时它也可以用来模拟一些非经典的柔体类型，例如植物或者多层布料。
· 柔体与刚体或坐标点的绑定。 
· 提供创建柔体的体数据工具 TetraMaker。 
· 支持柔体的自碰撞和运动阻尼。
三维力场模拟
力场是一种SDK对象，它作为物理模拟参与者能够影响进入其势力范围的布料、柔体、流体和刚体的运动。你能通过力场实现诸如：狂风、沙尘暴、真空清理器、反重力区域等物理效果。
· 支持各种力场外形。如：球形、胶囊形、方体形、凸多面体形
AGEIA一直致力于将新的物理特性加入到新版本的PhysX SDK中，而游戏开发人员也会不断把这些新特性加入到他们最新最好的游戏中去。公司并购2008年2月初NVIDIA与AGEIA的并购，揭开了PhysX物理加速技术花落谁家的神秘面纱，这两个在各自领域都是领导者的结合必将给显卡技术带来新的突破，这一重大历史事件也引起了业界的热评如潮和殷切期待。
NVIDIA公司CEO黄仁勋表示，NVIDIA的策略是接手PhysX引擎，并将其移植加入NVIDIA的CUDA显卡通用计算架构中。“当下，我们正在做物理引擎向CUDA的移植工作，并将在这上面投入大量的人力物力。这一移植想必将提升我们GPU的销量，即使现在移植尚未完成也有效果。因为，将来移植成功后用户仅仅需要一次软件升级，所有现在支持CUDA的GPU都将能够运行PhysX物理引擎……而目前我们所有的GeForce 8系列GPU都支持CUDA。”
黄仁勋还认为，PhysX和GeForce的结合将带动更多的高端玩家组建多路SLI系统，从而真实震撼地感受到升级的游戏体验。未来可能会出现两款显卡负责图像，一块负责物理；或者一块负责图像，两块负责物理。发展前景总的来说，无论是在AGEIA自力更生阶段生产的物理加速卡，还是在与NVIDIA强强联手后将要实现物理运算的GeForce图形显卡中，PhysX物理加速技术已成为图形发展新方向的大势所趋，不仅会广为流传，还会在未来的成长道路上日趋茁壮。伴随着春天的脚步，PhysX物理加速技术迎来了全面开花的明天，正如NVIDIA的宣传语“PhysX Now Avaibale in Green”