Havok
Havok
H徠avok,全稱為Havok Game Dynamics SDK,譯作Havok遊戲動力開發包。一般稱為Havok,是一個用於物理(動力學)效應模擬的遊戲引擎,為電子遊戲所設計,注重在遊戲中對於真實世界的模擬。使用撞擊監測功能的Havok引擎可以讓更多真實世界的情況以最大的擬真度反映在遊戲中。它包含PhysX、FX及其他一系列著名的物理模擬與運算引擎,被廣泛地應用於遊戲、軟體和電影當中。
人們經常說到的,與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外,尚沒有遊戲支持。
Havok Physics物理引擎展示
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 Animation引擎演示
Havok動作引擎的特點包括:高效動畫壓縮和解壓;運動混合;根據速度、方向和重量提供動作控制;動作緩和曲線支持等。
如果沒有Havok Animation,遊戲中車輪不會轉動,兩腿不會邁開,士兵也不會換彈匣或者蹲、站、跳、卧倒、側傾。最新版的動作引擎帶來流暢的動作,在使用寒霜引擎的ruby demo中,僅ruby臉部就有上百個可動部件,這是前所未有的。值得一提的是很多好萊塢電影大片也是使用Havok Animation。
Havok行為引擎。它可以讓遊戲中的虛擬人物學會新的行為、動作、戰術。你是否曾注意到,在一些採用havok的遊戲中,就像《光暈3》和《半條命2》,友好的虛擬人物會轉身面向你,會和你產生互動。敵人則不僅會沖向你開火,他們也會尋找 掩護,在《彩虹6號:盾牌行動》之類的戰術遊戲中,敵人甚至擁有包抄、迂迴等戰術。集成在寒霜引擎中的Havok Behavior更為強大,例如你會看到虛擬人物弓腰通過,攀爬,或者跳過障礙,遇到爆炸物選擇躲避或是撿起來扔回去。
Havok Cloth引擎演示
Havok Cloth的基本特性包括基於物理的布料模擬、多線程與平台優化、拉伸/阻尼/彎曲等布料行為屬性、基於人物模型的布料創建工具等等。
加入AMD開放物理計劃的Havok引擎,就是這個Havok Cloth引擎。AMD曾經展示過一個由HD4870X2組建的,基於ATI Stream和OpenCL,運用Havok Cloth引擎的演示視頻。
Hav徠ok剛體破壞引擎。這是一種高效的跨平台的剛體破壞模擬引擎。Havok剛體破壞引擎採用Collision Detection碰撞檢測系統,這將有別於以往傳統遊戲中的hitbox系統。適合造成動態破壞。
帶來前所未有的高範圍破壞,可完全毀壞遊戲內的所有物體(載具、建築、橋樑、樹木.....)和部分地形
帶來前所未有的高精度破壞,你可以削去飛行中飛機的翅膀或者其他什麼地方,也可以炸壞房屋一角,這一切都不是程序編輯好的,不是調用破壞后的模型和 貼圖,你可以決定破壞什麼部位。
《戰地 叛逆連隊2》使用寒霜引擎渲染,寒霜引擎中集成了內部版本的Havok Destruction 2.0版本。這使得遊戲中高達99%的建築都可以被破壞掉。
Havok人工智慧引擎。在2009年遊戲開發者大會上,Havok展示了Havok引擎家族的新成員:Havok人工智慧引擎。
Havok AI可以幫助遊戲開發者更好的進行遊戲中人工智慧的開發,藉助Havok AI SDK開發者可以更容易的設計出更出色、聰明的遊戲角色。比如這套工具就包含自動路徑搜索功能,可以讓遊戲角色迅速、動態的自主進行路徑規劃。在GDC2009上就展示了一段,士兵躲避著炮火自動搜索安全路徑穿過道路的片段,給與會者留下了很深的印象。此外,它還包括各種通用件的組合、網路化的智能集成等。
《紅色派系》中由Havok生成的物理特效
目前為止,在全平台上,共有353種遊戲使用Havok引擎。超過了PhysX的309種。Havok仍然是物理模擬引擎界的領軍者。
其中PC平台的Havok遊戲共163個。
下面為全平台Havok引擎遊戲列表:
遊戲名稱 | 遊戲平台 | Havok引擎類型 | 遊戲名稱 | 遊戲平台 | Havok引擎類型 |
反恐24小時 | PS2 | Physics | 50美分:防彈 | XBOX,PS2 | Physics |
速度與激情之A2狂飆 | PC | Physics | 超級兵工廠 | XBOX 360 | |
衝破火網:黑鷹 | PSP | Physics | 特工雨果 | PS2 | Physics |
特工雨果:滾滾滑板 | PC,PS2 | Physics | 心靈殺手 | XBOX 360 | Animation, Physics |
鬼屋魔影 | PC,Xbox 360,PS2,PS3,Wii | Physics | 美國陸軍2:真實戰士 | XBOX 360 | Physics |
天空3 | Xbox 360 | Physics | Amsterdam Taxi Madness | PC | Physics |
別惹螞蟻 | PC,PS2,Wii | 武裝與危險 | PC,Xbox360 | Physics | |
刺客信條 | PC,Xbox360,PS3 | Animation, Physics | 刺客信條2 | PC,Xbox360,PS3 | Animation, Physics |
鐵臂阿童木 | PS2 | Physics | 末日戰車 | PC | Physics |
後院摔角 | Xbox,PS2 | Physics | 後院摔角2 | Xbox,PS2 | Physics |
班卓熊:神奇螺絲 | Xbox 360 | Physics | 戰地1943 | Xbox360,PS3 | Physics |
戰地:叛逆連隊 | Xbox360,PS3 | Destruction | 戰地:叛逆連隊2 | PC,XBox360,PS3 | Destruction |
BEN10:外星神力維爾加科斯的攻擊 | Xbox360,PS2,Wii,PSP | Physics | 古羅馬猛將傳 | PS2 | Physics |
諾曼底任務:突襲柏林 | PC | Physics | 生化奇兵 | PC,Xbox 360 | Animation, Physics |
生化奇兵2 | PC,Xbox 360,PS3 | Animation, Physics | 黑暗地帶:51區 | PC,Xbox360,PS3 | Animation, Physics |
轟炸方塊 | Wii | Physics | 轟炸方塊:猛擊聚會 | Wii | Physics |
球瓶終結者 | PC | Physics | 戰火兄弟連:進軍30高地 | PS2 | Physics |
野獸傳奇 | Xbox360,PS3 | Animation, Physics | 坎貝拉獵人:2010 | Xbox360,PS3 | Physics |
遊戲狂歡節 | Wii | Physics | 遊戲狂歡節:迷你高爾夫 | Wii | Physics |
汽車總動員 | PSP | Physics | 名人體育 | Wii | Physics |
英雄連 | PC | 英雄連:抵抗前線 | PC | Physics | |
柯南 | Xbox360,PS3 | Animation, Physics | 死刑犯2:充血 | Xbox360,PS3 | Physics |
死刑犯:罪惡起源 | PC,Xbox360 | 卡羅琳 | PS2,Wii | Physics | |
除暴戰警 | Xbox 360 | Physics | 除暴戰警2 | Xbox 360 | Physics |
古惑狼賽車 | Xbox,PS2 | Physics | 但丁地獄 | Xbox 360,PS3 | |
魔法門之黑暗彌賽亞 | PC,Xbox 360 | 暗黑血統 | Xbox 360,PS3 | ||
聖劍傳說4 | PS2 | Physics | 顏料寶貝 | Wii | Physics |
喪屍圍城 | Xbox 360 | Physics | 死亡空間 | PC,Xbox 360,PS3,PSP | Physics |
致命生物 | Wii | Physics | 死亡風暴海盜 | Physics | |
紐約街頭教父:偶像 | Xbox 360,PS3 | Physics | 惡魔之魂 | PS3 | Animation, Physics |
賞金奇兵2:庫鉑復仇 | PC | Animation, Physics | 毀滅全人類2 | PC,Xbox,PS2 | Physics |
毀滅全人類:解放威廉 | Wii | Physics | 殺出重圍:隱形戰爭 | PC,Xbox | Physics |
天災:危機之日 | Wii | Animation, Physics | 迪斯尼公主:魔法世界 | PS2,Wii | Physics |
DJ英雄 | Xbox 360,PS3 | Cloth | 龍與地下城Online:風暴來臨 | PC | Physics |
EA遊戲廣場 | Wii | Physics | 頑皮小鬼混亂大冒險 | PC,Xbox,PS2 | Physics |
緊急出動 | PS2,Wii | Physics | 歐洲暴力賽車 | PC | Physics |
屍變重生 | PC,Xbox,PS2 | Physics | 極度恐慌:機密檔案 | PC,Xbox,PS3 | Physics |
極度恐慌2:起源計劃 | PC,Xbox 360,PS3 | Physics | 神鬼寓言2 | Xbox 360 | Animation, Physics |
輻射3 | PC,Xbox 360,PS3 | Animation, Physics | 孤島驚魂2 | PC,Xbox 360,PS3 | Animation, Physics |
異魂傳承 | PS3 | 巔峰破碎 | Xbox 360,PS3 | Animation, Physics | |
俄羅斯之戀 | Xbox,PS2 | 全能戰士:十錘 | PC | Physics | |
全能戰士 | PC,Xbox,PS2 | Physics | George of the Jungle: Search for the Secret | PS2,Wii | Physics |
高山滑雪 | PS3 | 戰斧:野獸騎士 | Xbox 360,PS3 | Animation, Behavior, Physics | |
黃金眼:黑幫情報員 | Xbox,PS2 | 吉他英雄5 | Xbox360,PS3 | Animation, Physics | |
吉他英雄街機版 | PC | Animation, Physics | 吉他英雄3 | PC,Xbox360,PS3 | Animation, Physics |
吉他英雄世界巡演 | PC,Xbox 360,PS3 | Animation, Physics | 吉他英雄:金屬樂隊 | PC,Xbox 360,PS3 | |
半條命2:橙盒版 | PS3 | Physics | 光暈2 | PC,Xbox | Physics |
光暈3 | Xbox 360 | Physics | 光暈3:地獄空降兵 | Xbox 360 | Physics |
光環戰爭 | Xbox 360 | Physics | 快樂大腳 | PC,PS2,Wii | Physics |
遊戲名稱 | 遊戲平台 | Havok引擎類型 | 遊戲名稱 | 遊戲平台 | Havok引擎類型 |
哈雷機車:漫遊世界 | PC | Physics | 哈雷機車:極速之輪 | PC | Physics |
哈利波特與火焰杯 | PC,Xbox,PS2,PSP | 哈利波特與鳳凰社 | PC,Xbox 360,PS3,Wii | Animation, Physics | |
天劍 | PS3 | Animation, Physics | 暴雨 | PS3 | Cloth,Physics |
暗黑之門:倫敦 | PC | Animation, Physics | 南北戰爭:秘密任務 | PC,Xbox 360,PS2,PS3 | Physics |
決戰太平洋 | PC,Xbox 360,PS3 | Physics | 瘋狂改裝車賽 | PC | Physics |
卡通賽車 | PS2 | Physics | 虎克之炮艦巡航 | PC,PS2 | Physics |
我是一個輻射突變異性 | PC | Physics | IHRA拖車大賽:運動家版 | PC,Xbox,PS2 | Physics |
職業拖車大賽2005 | PS2 | Physics | 印第安納瓊斯與皇杖 | PS2,PSP,Wii | Physics |
頭文字D:山口復仇 | PC | Physics | 鋼鐵俠 | PC,Xbox 360,PS3,PS2,Wii | Animation, Behavior, Physics |
鋼鐵俠2 | Xbox360,PS3 | 阿凡達 | PC,Xbox360,PS3 | Animation, Physics | |
侏羅紀:獵物 | Xbox360,PS3,Wii | Physics | 正當防衛 | PC,Xbox 360,Xbox,PS2 | Physics |
凱恩與林奇:死人 | PC,Xbox 360,PS3 | Physics | 殺戮地帶2 | PS3 | Physics |
殺戮地帶:解放 | PSP | Physics | 霹靂遊俠2 | PC,PS2 | Physics |
霹靂遊俠 | PC,PS2 | Physics | 求生之路 | PC,Xbox 360 | Physics |
求生之路2 | PC,Xbox360 | Physics | 虛擬樂高積木 | PC | Physics |
倫敦賽車手 | PC | Physics | 倫敦賽車手2 | PC | Physics |
倫敦賽車手:瘋狂破壞 | PC | Physics | 倫敦賽車手:警察也瘋狂 | PC | Physics |
倫敦賽車手:世界錦標賽 | PC | Physics | 華納群星總動員:超級兵工廠 | Xbox 360 | |
魔戒:第三紀元 | Xbox,PS2 | Physics | 失落的星球2 | PC,Xbox,PS3 | Destruction |
失落星球:極限狀態 | PC,Xbox360,PS3 | Destruction | 馬達加斯加2:逃往非洲 | Xbox360,PS2,PS3,Wii | Animation, Behavior, Physics |
瘋狂世界 | Wii | Animation, Physics | 大規模行動 | PS3 | |
美國漫畫英雄:復仇女神 | Xbox,PS2,PSP | Physics | 漫畫英雄超級戰隊 | PS2,Wii,PSP | Physics |
漫畫英雄終極聯盟2 | Xbox 360,PS3 | Animation, Physics | 馬克斯 佩恩2 | PC | Physics |
榮譽勳章:英雄 | PSP | 榮譽勳章:先遣部隊 | PS2,Wii | Physics | |
榮譽勳章:英雄2 | Wii,PSP | Physics | 榮譽勳章:血戰太平洋 | PC | Physics |
雇傭兵2:戰火紛飛 | PC,Xbox360,PS2,PS3 | Animation, Physics | 雇傭兵 | Xbox,PS2 | Physics |
微型機器4 | PC,PSP,PS2 | Physics | 午夜狂飆:改裝車大賽 | PC | Physics |
北美職業棒球超明星 | Wii | Physics | 摩登大賽車 | PS3 | Animation, Physics |
怪獸屋 | PS2 | Physics | 真人快打:少林武僧 | Xbox,PS2 | Physics |
機車風暴 | PS3 | Animation, Physics | 機車風暴:太平洋裂縫 | PS3 | Animation, Physics |
我的模擬人生 | PC,Wii | Physics | 我的模擬人生:王國 | Wii | Physics |
我的模擬人生:賽車 | Wii | Physics | NBA09:深入比賽 | Xbox 360,PS3 | Animation, Physics |
死靈幻象 | PC | Physics | 極品飛車12 | PC,PS2,PS3,Xbox 360,Wii,PSP,iPhone | Physics |
寵物大冒險2 | PSP | 忍者之刃 | Xbox 360 | Animation, Physics | |
Novastrike | PS3 | 世界彩彈錦標賽2009 | Xbox360,PS2,PS3,Wii | Animation, Physics | |
閃點行動2:龍騰 | PC,Xbox360,PS3 | Animation, Physics | 籬笆牆外 | PC,Xbox,PS2 | Physics |
痛楚 | PS3 | Animation, Physics | 恐懼殺手 | PC | |
恐懼殺手:地獄之戰 | PC,Xbox | Physics | 恐懼殺手:嗑藥過量 | PC | Physics |
魔域反攻 | PC,Xbox,PS2 | Physics | 完美特工:零 | Xbox 360 | Physics |
森林尋寶曆險記 | PC,Xbox,PS2 | Physics | 51號星球 | Wii | Physics |
Power Rangers Dino Thunder | PS2 | Physics | 波斯王子 | PC,Xbox 360,PS3 | Physics |
波斯王子:遺忘之沙 | PC,Xbox 360,PS3 | Physics | 超能力戰警 | Xbox PS2 | Physics |
彩虹六號:迫在眉睫 | Xbox,PS2 | 料理鼠王 | Xbox 360,PS3,PSP | ||
紅色派系:游擊戰 | PC,Xbox360,PS3 | Animation, Physics | 安魂曲 | PC | |
生化危機5 | PC,Xbox360,PS3 | Physics | 生化危機:暗黑編年史 | Wii | Physics |
Ringling Bros. and Barnum & Bailey Circus | Wii | Physics | 機器人大擂台 | Xbox,PS2 | Physics |
機器人大擂台2:設計與破壞 | PC | Physics | 太空堡壘:入侵 | Xbox,PS2 | Physics |
室內狂飆 | Xbox | Physics | 黑道聖徒 | Xbox360 | |
秘密特工:終極犧牲 | PC,Xbox360,PS2 | Physics | 暗影狂奔 | PC,Xbox360 | Physics |
Sonic The Hedgehog | Xbox360,,PS3 | Physics | 索尼克世界冒險 | Xbox360,PS3 | Physics |
索尼克:世代 | Xbox360,PS3,PC | Physics | 索尼克:失落的世界 | WIIU,PC | Physics |
索尼克:力量 | XBOX ONE,PS4,PC,NS | Physics | 索尼克滑板失重 | Wii,PS2 | Physics |
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(行為),動作等在內的都有涉及