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物理引擎。业界领先的实时碰撞计算和物理仿真解决方案,提供快速高效率的物理模拟计算。被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计算就能达到很好的物理模拟效果。
针对爆炸效果等大计算量的物理模拟,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动做引擎。是一种高效灵活的动做开发工具。在全平台上提供通过优化的回放和实时融合特性,并能与Havok Physics引擎完美合做,提升游戏的可玩性。
Havok动做引擎的特色包括:高效动画压缩和解压;运动混合;根据速度、方向和重量提供动做控制; 动做缓和曲线支持等。
若是没有Havok Animation,游戏中车轮不会转动,两腿不会迈开,士兵也不会换弹匣或者蹲、站、跳、卧倒、侧倾。最新版的动做引擎带来流畅的动做,在使用寒霜引擎的ruby demo中,仅ruby脸部就有上百个可动部件,这是史无前例的。值得一提的是不少好莱坞电影大片也是使用Havok Animation。
Havok行为引擎。它可让游戏中的虚拟人物学会新的行为、动做、战术。你是否曾注意到,在一些采用havok的游戏中,就像《光晕3》和《半条命2》,友好的虚拟人物会转身面向你,会和你产生互动。敌人则不只会冲向你开火,他们也会寻找 掩护,在《彩虹6号:盾牌行动》之类的战术游戏中,敌人甚至拥有包抄、迂回等战术。集成在寒霜引擎中的Havok Behavior更为强大,例如你会看到虚拟人物弓腰经过,攀爬,或者跳过障碍,遇到爆炸物选择躲避或是捡起来扔回去。
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%的建筑均可以被破坏掉。
Havok人工智能引擎。在2009年游戏开发者大会上,Havok展现了Havok引擎家族的新成员:Havok人工智能引擎。
Havok AI能够帮助游戏开发者更好的进行游戏中人工智能的开发,借助Havok AI SDK开发者能够更容易的设计出更出色、聪明的游戏角色。好比这套工具就包含自动路径搜索功能,可让游戏角色迅速、动态的自主进行路径规划。
在GDC2009上就展现了一段,士兵躲避着炮火自动搜索安全路径穿过道路的片断,给与会者留下了很深的印象。此外,它还包括各类通用件的组合、网络化的智能集成等。
比较著名的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仍然是物理模拟引擎界的领军者。
这是几年前的统计了,如今估计不止了。
3ds MAX、Adobe Atmosphere等
《特洛伊》《黑客帝国》等
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相关教程。下面有个不错的英文免费教程,建议配合浏览器的自动翻译进行学习。
最近Unity与Havok的合做也让我看到了比较方便地将Havok运用到Unity上的曙光,以前原本就是这个想法,只是学习过程艰难。
SDK文档和代码:
能够去官网注册请求受权免费的Havok的sdk:https://www.havok.com/about-us/,或者上百度贴吧找到好心人分享的sdk整合包
教程及学习推荐(主要是Havok Physic)
国内:
国外:
《 Havok物理引擎教程系列》:https://mmmovania.blogspot.com/2014/03/havok-physics-engine-tutorial-series.html
《 Havok物理引擎教程系列》的支持存储库:https://github.com/mmmovania/HavokPhysicsTutorials
一个利用OpenGL和Havok Physics的简单C ++游戏引擎:https://github.com/wobbier/source3-engine
部分资料参考自百度百科
转载标明出处:做者AMzz 博客: https://www.cnblogs.com/AMzz/