Havok,全称为Havok Game Dynamics SDK,译作Havok游戏动力开发包。一般称为Havok,是一个用于物理(动力学)效应模拟的游戏引擎,为电子游戏所设计,注重在游戏中对于真实世界的模拟。使用撞击监测功能的Havok引擎可以让更多真实世界的情况以最大的拟真度反映在游戏中。它包含PhysX、FX及其他一系列著名的物理模拟与运算引擎,被广泛地应用于游戏、软件和电影当中。

外文名

Havok

别名

Havok Game Dynamics SDK

属性

游戏引擎

代表作品

宠物大冒险2

释义

效应模拟的游戏引擎

内容简介

人们经常说到的,与PhysX相提并论的Havok物理模拟引擎,只是Havok引擎中的一部分而已。

Havok成立于1998年,总部位于爱尔兰首都都柏林。2000年在游戏开发者大会上发布了Havok 1.0 。2.0版本在2003年的游戏开发者大会上发布;4.5版本在2007年3月释出,最新版本为5.5 ,引擎基于C/C++语言而成。2007年9月,Intel宣布收购Havok,之后不久,Intel宣布Havok引擎开放源代码并允许游戏开发人员免费使用。

Havok专注于游戏的仿真技术。其包含的Havok Physics物理引擎是物理模拟计算引擎界的领军者,世界三大物理引擎之首。(排名第二的是nVIDIA PhysX,第三的是Bullet)。

自2000年Havok 1.0版本发布以来,采用Havok引擎开发的游戏(全平台)已超过280种。由于Havok的开放性以及不依赖特定硬件支持的特点,很多游戏大作都采用Havok引擎。例如:《疯狂的麦克斯》、《星际争霸2》、《暗黑破坏神3》、《激战2》、《战地:叛逆连队2》、《失落的星球2》、《半条命2》(半条命虽然使用source做的,但是source是基于havok引擎的、《细胞分裂》、《生化危机5》、《孤岛惊魂2》、《辐射3》、《求生之路》、《正当防卫》、《波斯王子:遗忘之沙》、《争分夺秒》、《星球大战:原力释放2》、《闪点行动:龙之崛起》、《帝国时代3》、《黑道圣徒4》、《热血无赖》、《现代战争4:决战时刻》等。这与PhysX游戏都是较为冷门的情况大不相同。

Havok是Intel公司旗下产业,但是仍然与AMD公司保持良好的合作关系;Havok引擎是AMD”开放物理计划“的核心成员之一(另两个成员是Bullet和Pixelux DMM),计划中可以利用AMD Radeon HD4000系列以上的显卡进行物理加速计算。不过这项计划尚在开发中,除了几个演示DEMO外,尚没有游戏支持。

主要组成

Physics

Havok Physics物理引擎展示

Havok物理引擎。业界领先的实时碰撞计算和物理仿真解决方案,提供快速高效率的物理模拟计算。被200多个游戏所采用,且Havok Physics引擎可以运行在Windows、Linux、MAC、XBOX360、Playstation3等全平台上。Havok Physics是整个Havok引擎的基础。

Havok Physics物理引擎是业界功能最全面的物理仿真解决方案,它可以应用在诸如实时碰撞计算、动力学约束求解、车辆综合解决方案等领域。

Havok Physics基于CPU计算,尤其是在Intel收购Havok之后,Havok特别针对多核多线程CPU进行优化。多线程CPU的普及以及Havok Physics引擎本身的高效率特点,使得Havok仅仅依靠CPU计算就能达到很好的物理模拟效果。

FX

针对爆炸效果等大计算量的物理模拟,Havok曾经推出过Havok FX引擎。Havok FX引擎也是一种物理模拟计算解决方案,由CPU+GPU联合计算完成。GPU负责爆炸等大计算量的物理模拟。Nvidia与ATI都曾经与Havok就Havok FX进行过深入的合作。但是Intel收购Havok后,由于Intel本身不能生产独立的GPU,Havok FX发展就陷入停滞,虽然Intel官方没有宣布Havok FX引擎下马,但实际上Havok FX已经被Intel雪藏。

这也就意味着,ATI显卡虽然理论上支持Havok FX物理加速,但是由于Havok引擎中GPU计算部分已经停滞发展,所以

ATI显卡的Havok物理加速只是有枪无弹,缺少游戏支持。

这也是后来AMD启动“开放物理计划”的原因之一。

动作引擎

Havok Animation引擎演示

Havok动作引擎。是一种高效灵活的动作开发工具。在全平台上提供经过优化的回放和实时融合特性,并能与Havok Physics引擎完美合作,提高游戏的可玩性。

Havok动作引擎的特点包括:高效动画压缩和解压;运动混合;根据速度、方向和重量提供动作控制;动作缓和曲线支持等。

如果没有Havok Animation,游戏中车轮不会转动,两腿不会迈开,士兵也不会换弹匣或者蹲、站、跳、卧倒、侧倾。最新版的动作引擎带来流畅的动作,在使用寒霜引擎的ruby demo中,仅ruby脸部就有上百个可动部件,这是前所未有的。值得一提的是很多好莱坞电影大片也是使用Havok Animation。

Behavior

Havok行为引擎。它可以让游戏中的虚拟人物学会新的行为、动作、战术。你是否曾注意到,在一些采用havok的游戏中,就像《光晕3》和《半条命2》,友好的虚拟人物会转身面向你,会和你产生互动。敌人则不仅会冲向你开火,他们也会寻找 掩护,在《彩虹6号:盾牌行动》之类的战术游戏中,敌人甚至拥有包抄、迂回等战术。集成在寒霜引擎中的Havok Behavior更为强大,例如你会看到虚拟人物弓腰通过,攀爬,或者跳过障碍,遇到爆炸物选择躲避或是捡起来扔回去。

Cloth

Havok Cloth引擎演示

Havok布料模拟引擎。Havok Cloth不是说这个引擎只能模拟布匹的物理特性,而是能模拟一切柔性物体。如衣服,裙子,斗篷,外套、头发、尾巴、旗帜、横幅、窗帘、植物等等。

Havok Cloth的基本特性包括基于物理的布料模拟、多线程与平台优化、拉伸/阻尼/弯曲等布料行为属性、基于人物模型的布料创建工具等等。

加入AMD开放物理计划的Havok引擎,就是这个Havok Cloth引擎。AMD曾经展示过一个由HD4870X2组建的,基于ATI Stream和OpenCL,运用Havok Cloth引擎的演示视频。

刚体破坏

Havok刚体破坏引擎。这是一种高效的跨平台的刚体破坏仿真引擎。Havok刚体破坏引擎采用Collision Detection碰撞检测系统,这将有别于以往传统游戏中的hitbox系统。适合造成动态破坏。

带来前所未有的高范围破坏,可完全毁坏游戏内的所有物体(载具、建筑、桥梁、树木.....)和部分地形

带来前所未有的高精度破坏,你可以削去飞行中飞机的翅膀或者其他什么地方,也可以炸坏房屋一角,这一切都不是程序编辑好的,不是调用破坏后的模型和 贴图,你可以决定破坏什么部位。

《战地 叛逆连队2》使用寒霜引擎渲染,寒霜引擎中集成了内部版本的Havok Destruction 2.0版本。这使得游戏中高达99%的建筑都可以被破坏掉。

AI

Havok人工智能引擎。在2009年游戏开发者大会上,Havok展示了Havok引擎家族的新成员:Havok人工智能引擎。

Havok AI可以帮助游戏开发者更好的进行游戏中人工智能的开发,借助Havok AI SDK开发者可以更容易的设计出更出色、聪明的游戏角色。比如这套工具就包含自动路径搜索功能,可以让游戏角色迅速、动态的自主进行路径规划。在GDC2009上就展示了一段,士兵躲避着炮火自动搜索安全路径穿过道路的片段,给与会者留下了很深的印象。此外,它还包括各种通用件的组合、网络化的智能集成等。

引擎介绍

游戏

《红色派系》中由Havok生成的物理特效

比较著名的Havok引擎游戏包括:《阿拉玛王国:惩罚》《战地3》、《极品飞车:亡命天涯》《星际争霸2》、《暗黑破坏神3》、《战地:叛逆连队2》、《上古卷轴4》、《马克思 佩恩2》、《光晕3》、《半条命2》、《细胞分裂》、《生化危机5》、《F.E.A.R》 、《孤岛惊魂2》、《辐射3》、《阿凡达》、《求生之路》、《正当防卫》、《波斯王子:遗忘之沙》、《孢子》、《争分夺秒》、《红色派系:游击战》、《失落的星球2》《现代战争4决胜时刻》等。

目前为止,在全平台上,共有353种游戏使用Havok引擎。超过了PhysX的309种。Havok仍然是物理模拟引擎界的领军者。

其中PC平台的Havok游戏共163个。

下面为全平台Havok引擎游戏列表:

游戏名称游戏平台Havok引擎类型游戏名称游戏平台Havok引擎类型
反恐24小时PS2Physics50美分:防弹XBOX,PS2Physics
速度与激情之A2狂飙PCPhysics超级兵工厂XBOX 360
冲破火网:黑鹰PSPPhysics特工雨果PS2Physics
特工雨果:滚滚滑板PC,PS2Physics心灵杀手XBOX 360Animation, Physics
鬼屋魔影PC,Xbox 360,PS2,PS3,WiiPhysics美国陆军2:真实战士XBOX 360Physics
展开表格
游戏名称游戏平台Havok引擎类型游戏名称游戏平台Havok引擎类型
哈雷机车:漫游世界PCPhysics哈雷机车:极速之轮PCPhysics
哈利波特与火焰杯PC,Xbox,PS2,PSP哈利波特与凤凰社PC,Xbox 360,PS3,WiiAnimation, Physics
天剑PS3Animation, Physics暴雨PS3Cloth,Physics
暗黑之门:伦敦PCAnimation, Physics南北战争:秘密任务PC,Xbox 360,PS2,PS3Physics
决战太平洋PC,Xbox 360,PS3Physics疯狂改装车赛PCPhysics
展开表格软件

3ds MAX、Adobe Atmosphere、Virtools等。

电影

《特洛伊》《黑客帝国》等。

主要对比

Nvidia显卡用户应该会有印象,只要打开PhysX模式,游戏就会卡,特别是最早的那个尖峰战士2的物理岛关卡,不管你是不是在 做什么大事,就算呆着不动也卡,这是因为physx是以API实现的,是一个外部插件,不能和游戏引擎完美的结合起来,需要不断的检测你有没有触发每一个 条件,这需要大量的浮点运算,所以浮点运算能力强的显卡运算起来只是费劲,CPU模式打开它就只有个位数的帧了。而且physx只能执行nv官方提供的几 套算法,自由度不高.

而havok是一套功能丰富的游戏开发组件,开发者可以根据需要把其中几项功能封装到自己引擎的底层

,由于是CPU运算X86指令集,还能执行很多开发者 自己发明的代码,工作模式是引擎内部的触发式,所以有些情况下会看到你都看到BFBC2里面炮弹击中墙了几毫秒,墙才碎有延迟。如果你不断的同时击碎什么 东西,就不会有延迟了,因为游戏会自动切换到一个触发频率高的模式。有些havok游戏默认就工作在这个模式

大多数游戏用的都是 havok的同一套刚体力学模拟破坏系统,布料/头发的柔体力学模拟&气动方面的流体力学模拟插件都没发挥出来

在破坏的精度上,havok和physx是一样的,都可以精确到未来10年也发挥不出来的级别,不过两者在实际应用中发挥出的功力都不行。实现方法都是将一个物体划分为若干个碰撞模块,每个模块可以分别被从这个物体的整体上击碎下来,然后这个碎块还继续带有碰撞检测属性. 一般游戏里会设置他们几十秒后自动消失,而《战地 叛逆连队2》里几乎立刻没了

理论能达到的程度就是对着一个模型人开一枪,可以射出一个有空腔的洞,而不是将模型人击碎成几块,或者在屏幕上消失。这需要模型人由几十万个碰撞检测模块 组成

最重要的就算physx这种靠api实现的算法,在不同api的硬件上无法实现,不适合制作多人游戏,总不能你N卡可以看到一堵墙碎成粉末但是A卡用户只是看到墙体凭空消失吧?

同样是havok,版本也千差万别,而physx不同版本区别不大,而且havok不光是 物理模拟,是一整套游戏开发组件,包括AI(行为),动作等在内的都有涉及