Havok物理引擎不彻底指南--从入门到放弃

Havok概述

img

  Havok,全称为Havok Game Dynamics SDK,译做Havok游戏动力开发包。人们常常说到的,与PhysX相提并论的Havok物理模拟引擎,只是Havok引擎中的物理部分而已。html

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

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

  自2000年Havok 1.0版本发布以来,采用Havok引擎开发的游戏(全平台)已超过280种。因为Havok的开放性以及不依赖特定硬件支持的特色,不少游戏大做都采用Havok引擎。例如:《星际争霸2》、《暗黑破坏神3》、《战地:叛逆连队2》、《失落的星球2》、《半条命2》、《细胞分裂》、《生化危机5》、《孤岛惊魂2》、《辐射3》、《求生之路》、《正当防卫》、《波斯王子:遗忘之沙》、《争分夺秒》、《星球大战:原力释放2》、《闪点行动:龙之崛起》等。浏览器

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

​ 北美时间 2015 年 10 月 2 日,微软宣布已经收购 Intel 旗下游戏开发引擎公司 Havok。ruby

​ 在2019年游戏开发者大会2019(GDC)上,Unity宣布将Havok物理引擎加入到Unity中,在Package Manager包管理器上发布其预览版本包,这意味着全部Unity用户都能使用起这款著名的物理引擎。在当今主机世代中,Havok驱动了超过一半的顶尖游戏,出色地知足了用户的物理模拟需求。网络

Havok的组成

Havok其实由七个部分组成多线程

Havok Physic

  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计算就能达到很好的物理模拟效果。

img

Havok 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。

Havok Behavior

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

Havok Cloth

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

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

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

Havok Cloth引擎演示

Havok Destruction

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

  带来史无前例的高范围破坏,可彻底毁坏游戏内的全部物体(载具、建筑、桥梁、树木.....)和部分地形

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

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

img

Havok AI

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

  Havok AI能够帮助游戏开发者更好的进行游戏中人工智能的开发,借助Havok AI SDK开发者能够更容易的设计出更出色、聪明的游戏角色。好比这套工具就包含自动路径搜索功能,可让游戏角色迅速、动态的自主进行路径规划。

​ 在GDC2009上就展现了一段,士兵躲避着炮火自动搜索安全路径穿过道路的片断,给与会者留下了很深的印象。此外,它还包括各类通用件的组合、网络化的智能集成等。

支持Havok引擎的游戏与软件

全平台Havok引擎游戏

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

甚至是辐射4和ns上的塞尔达荒野之息,也是应用到了Havok物理引擎!!!

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

这是几年前的统计了,如今估计不止了。

使用Havok引擎的软件:

  3ds MAX、Adobe Atmosphere等

使用Havok引擎制做的电影

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


Havok与PhysX的简单比较

两者关系:竞争对手

​ 2007年,在Intel收购了物理引擎界的领军者Havok后,Nvidia也收购了排名第二的AGEIA。正式将PhysX技术划入旗下。

​ 2008年,Intel使出了扩展Havok物理引擎市场的杀手锏——免费!即便是使用Havok引擎开发商业游戏也彻底不须要付费。Havok在受权文档中称,Intel将全数负担全部游戏开发商购买Havok引擎受权的费用。

​ 而intel宣称Havok能够无偿使用后,NVIDIA也紧随其后将其开源。

PhysX开源地址:https://github.com/NVIDIAGameWorks/PhysX

效果

​ 所谓PhysX物理加速,是指相对于CPU来说,GPU加快了PhysX物理引擎的计算速度,仅支持N卡,但也可多平台。

​ Havok引擎具备嵌入性和高效性的特色,随着CPU多线程技术的发展,其仅依靠CPU就能带来良好的物理效果。它能够用CPU计算也能够用GPU计算,并且支持多平台A卡N卡。

宣传及知名度

​ Havok Physic只是个物理引擎,跟硬件无关、操做系统无关,也就是“没后台”,没人愿意打广告(东家Intel不生产最终成品,不最终收钱,因此也不肯意)。

​ 大部分游戏也是使用过Havok Physic,且再加上它被宣布免费,因而何须浪费一个广告位置给Havok呢?

Havok在宣传方面可太惨了,知名度真的低

​ Havok相比physx来讲广告打得少不少,因而在普通人眼中名气没有physx那么大,但它还是一个很好的物理引擎。

​ Havok的历史悠久,使用的开发商比较多,特别是游戏都是PS3XBOX360PC三版本同时出,用Havok的优点更明显(从支持Havok的游戏清单里面就能看出来)

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


Havok教程

​ 目前国内学习最关键一点是教程很是少,因此新手入门难,因此我在阅读Havok的技术教程文档后部分文档进行了翻译,可在个人博客看到。

​ 而后我查阅了很多资料和博客,包括国内外的,终于找到了可贵的Havok相关教程。下面有个不错的英文免费教程,建议配合浏览器的自动翻译进行学习。

​ 最近Unity与Havok的合做也让我看到了比较方便地将Havok运用到Unity上的曙光,以前原本就是这个想法,只是学习过程艰难。

SDK文档和代码:

​ 能够去官网注册请求受权免费的Havok的sdk:https://www.havok.com/about-us/,或者上百度贴吧找到好心人分享的sdk整合包

教程及学习推荐(主要是Havok Physic)

国内:

  1. Havok入门教程:https://me.csdn.net/shangguanwaner
  2. Havok类讲解和应用:https://me.csdn.net/u012942555
  3. Havok笔记:https://blog.csdn.net/ZJU_fish1996
  4. Havok物理引擎与Unity3D的结合:https://blog.csdn.net/Kaitiren/article/details/75041968
  5. 优酷上的Havok的中文视频教程http://i.youku.com/havokengine
  6. Unity中的Havok物理https://blogs.unity3d.com/2019/11/06/havok-physics-in-unity/
  7. 游戏开发者大会2007上Havok演示视频: http://v.youku.com/v_show/id_cg00XMjkxMTc1Ng==.html
  8. 游戏开发者大会2019(GDC)上,Unity宣布将Havok物理引擎加入到Unity中:https://v.qq.com/x/page/w3020iatevv.html

国外:

  1. 《 Havok物理引擎教程系列》https://mmmovania.blogspot.com/2014/03/havok-physics-engine-tutorial-series.html

  2. 《 Havok物理引擎教程系列》的支持存储库:https://github.com/mmmovania/HavokPhysicsTutorials

  3. 一个利用OpenGL和Havok Physics的简单C ++游戏引擎:https://github.com/wobbier/source3-engine

部分资料参考自百度百科

转载标明出处:做者AMzz 博客: https://www.cnblogs.com/AMzz/

相关文章
相关标签/搜索