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/

相關文章
相關標籤/搜索