物理加速技術
物理加速技術
大家或許有聽過處理器(CPU)、繪圖處理器(GPU),但物理加速引擎大家或許沒聽過,而在2005年3月的「遊戲開發者會議GDC」上就出現了這個新名詞!它就是AGEIA公司在GDC2005遊戲開發者大會上推出了物理處理器,被稱為05年度圖形領域的重大技術創新。隨著,兩大圖形晶元廠商NVIDIA、ATI也各自推出了基於GPU基礎之上物理加速技術。物理加速技術,有兩種,一種是PhysX,另一種是Havok簡而言之,這是PC遊戲的又一次變革。其宗旨是,“Make it Real!”。
Havok公司於1998年成立於都柏林,為遊戲、影視產業提供互動式軟體和服務,並在物理、動畫技術方面居於領先地位,與索尼、任天堂、微軟、EA、育碧、Pandemic Studios等大型遊戲廠商都有合作,其技術被廣泛用於PS2、PS3、PSP、Xbox、Xbox 360、Wii、GC、PC等各種平台,以及150多款遊戲《光環3》、《槍神》、《摩托風暴》、《鎮壓》、《帝國時代3》、《汽車總動員》等。
“物理加速卡”相信很多朋友都不陌生,特別對老資格的DIY用戶來說,在當時擁有一塊3dfx的Voodoo歷史上第一塊3D加速卡是何等的榮耀!但堪稱千古絕唱3DFXVOODOO系列最終被NVIDIA收購。而全球第一家開發出的“物理加速處理器(Physics ProcessingUnit)”PhysX的廠商Ageia也最終沒有逃過被NVIDIA收購的命運……
Havok成立於1998年,主要為遊戲開發商提供物理模擬技術,從而使對象能夠以更加真實的狀態展現。
這家位於愛爾蘭首都都柏林的公司的產品已經被多款遊戲所採用,如《halo 2》、《生化奇兵》和《半條命2》。《黑客帝國:尼奧之路》、《特洛伊》和《查理和巧克力工廠》等知名電影中也都使用了havok公司的產品。在成立不到10年中,Havor公司已經在美國三藩市、聖安東尼奧市、得克薩斯州、瑞典首都斯德哥爾摩、印度加爾各答市、德國慕尼黑和日本東京等地設立了分公司。
開發者可以使用該免費版製作非商業性質的遊戲、中間件、和科學研究項目。
2007年9月15日消息,Intel公司稱,Intel將收購一家世界知名遊戲模擬技術公司Havok。Havok是一家專業提供視頻遊戲開發商和電影特效團隊所需軟體和服務的數字媒體公司,它所開發的havok物理模擬引擎已經得到全世界遊戲開發商和電影製作商的歡迎和使用。
據一份Intel公司新聞稿稱,Havok將成為Intel的一家全資子公司,收購之後的Havok將繼續從事自己的業務範圍。Havok公司CEO大衛。歐米拉在一份聲明中表示,收購將使Havok邁入新的市場機遇。
AMD宣布,將聯合英特爾旗下Havok公司開發顯卡物理技術,優化顯卡遊戲物理效果。據國外媒體報道,在物理技術方面,英特爾收購了Havok,NVIDIA買下了Ageia。如今,AMD最終選擇了英特爾旗下的Havok。AMD方面 稱,Havok的技術非常先進,執行效率較高,關鍵是非常便宜,公司已經計劃在處理器上針對Havok技術進行全面優化。同時,AMD也希望讓 Radeon核心來負責相應的物理運算,而即將發布的RV770中的物理加速運算能力就來自Havok。
很顯然,AMD同英特爾已經達成了共識,認為物理加速還是主要依靠處理器來實現,而不是像NVIDIA那樣通過顯卡實現。
據悉,英特爾於去年9月中旬以1.1億美元將Havok收購,Havok已經作為英特爾的全資子公司運作了10個月。Havok以獨立發展的形式從事Havok FX物理處理應用編程介面(API)的研發,這可以讓運演演算法則更好地在GPU上運用。Havok的主要對手就是被NVIDIA收購的Ageia,Ageia也在從事與Havok API類似的研究工作。作為合作的一部分,Havok和AMD計劃在AMD x86處理器上針對Havok技術進行全面優化。另外,雙方今後還將考慮讓ATI Radeon顯示核心承擔部分物理模擬效果。
目前在遊戲里被大量普遍應用的物理引擎有兩種,分別是Ageia開發的PhysX以及Havok的Havok系列引擎,目前使用這些引擎的遊戲加起來總共超過四百款,不過需要使用PhysX物理加速卡的遊戲加起來不足百款,而剩下的遊戲都可以通過CPU來進行物理運算。
但面對越來越多的3D模型和越來越多的實際特效沒有物理加速是不可能的。NVIDIA收購了Ageia自然有PhysX物理加速,那AMD呢?那自然是選擇應用率更高的Havok推出的Havok物理加速引擎。AMD之所以選擇Havok引擎有幾個原因。
第一:目前在全球遊戲領域裡被廣泛應用的物理引擎的只有Ageia和Havok,其中Ageia被對手NVIDIA收購自然不會去選擇採用。
第二:從物理引擎的遊戲實際應用數量上看,使用Havok引擎的遊戲約為總數量的3/4款,而使用PhysX技術的只剩下的1/4款。自然是首選Havok物理加速引擎。
第三:PhysX主要是讓GPU去運算物理效果,而Havok則是讓CPU+GPU聯合來運算,符合AMD的GPGPU的發展線路。
目前,在通用計算和圖形處理領域裡可以說是三國鼎立。Intel堪稱通用計算的龍頭,但是只有CPU而沒有真正獨立的GPU,雖然在各種宣傳中一再強調CPU的重要性,但從其收購Havok來看,Intel自然也想在圖形處理領域裡分一杯羹。而圖形領域裡的龍頭NVIDIA則與Intel相反,其只擁有GPU而沒有完整獨立的CPU。但最近兩年的發展趨勢不難看出NVIDIA正在努力地向通用計算領域裡挺進。而AMD在成功收購ATI之後,則是同時即擁有完整獨立的GPU和CPU,而GPGPU的概念也再一次成為關注焦點。
“GPGPU”可以被稱為通用圖形處理器。其中第一個“GP”通用目的(GeneralPurpose)而第二個“GP”則表示圖形處理(GraphicProcess),這兩個“GP”搭配起來就是“通用圖形”。而再加上“U”(Unit)就成為了完整的通用處理器。
擁有雙向發展的AMD更需要讓GPU有個完美的發展前景,在GPU中基於了一套完整的DiretX、OpenGL開放標準,並且在發布了開源工具、Linux開源驅動之後又繼續向外界公開GPU的微代碼。AMD認為只有開放的標準才能讓自己走得更遠。而且AMD也希望與其他廠商共同前進集思廣益,共同打造出一個完美開放式的通用計算標準,雖然NVIDIA也加入了開源的行列,但AMD認為CUDA方式並不符合自己的開放方向而放棄採用。
在遊戲中,特別是在3D遊戲中,真實性往往是需要高標準的硬體設施才能達到的。在3D技術發展早期,圖形晶元只能完成常規的渲染操作,而關鍵的建模和光照運算必須以軟體模擬的方式由CPU來完成,而NVIDIA在1999年8月推出的一款具有革命意義的GeForce256晶元,它具有硬體T&L引擎,可獨自完成建模和光照運算,大大降低了CPU的負擔,顯卡的3D效能也獲得了突飛猛進的提升!不過,儘管GPU的出現讓CPU負擔減輕,但除了工藝水平改進,頻率提升,管線堆疊之外,沒有真正實質性的變革,CPU仍需負責圖形相關的物理運算工作,依然採用沉悶的遊戲渲染方式。正是在這種形勢下,AGEIA Technologies於2002年提出物理加速的概念,此後的6年時間裡AGEIA潛心專註於對此技術的研究。PhysX物理加速技術強大的物理計算和處理能力所帶來的全新震撼的真實遊戲體驗,在業界得到一致認同,並將成為未來3D圖形發展中一項不可或缺的重要技術。全球顯卡巨頭NVIDIA於08年2月一舉將其併購。
從工作原理上來說,
物理加速處理技術主要負責兩個工作:
1.如何近乎自然的操縱物體移動;
2.在周圍環境的影響作用之下,物體如何接近真實的做出交互性回應。
在以往的許多遊戲中,物體的移動往往跟現實世界相去甚遠。因為大多數遊戲中的動態場景都是預先定義好的,或是由某事件觸發的固定動畫播放。這樣做是為了省卻不堪重負的GPU在物理運算方面的工作,而犧牲了玩家的真實場景體驗。比如開槍打一堵牆,即使是威力巨大的武器也只能在很薄的牆體上留下些彈痕,而不能導致倒塌或摧毀;被你擊斃的所有敵人,都以預先定義好的千篇一律的方式倒地;當你正駕駛坦克在不斷獲得一次次勝利,爭取更大戰果的時候,你卻被前面的一片灌木叢擋住了去路……玩家往往因為這些遊戲開發的技術瓶頸而不能體驗到身臨其境的真實感而引以為憾。
PhysX物理加速技術體現在硬體和軟體兩大應用層面:以PPU為核心的物理加速卡以及PhysX物理引擎
一、硬體——物理加速卡(以PPU為核心)
AGEIA於2005年生產了世界上第一塊3D圖形物理加速處理晶元,也就是PPU(Physics Processing Unit)。以此晶元為核心的物理加速卡,是一種全新的PC硬體範疇,市面上的AGEIA PhysX物理加速卡,以及和華碩、影馳等PC硬體廠商合作生產的物理加速卡都是以PPU為核心的。玩家們耳熟能詳的《虛幻競技場3》、《幽靈行動2:尖峰戰士》、《好戰者(warmonger)》、《細胞因子》、《賭命戰士》、《戰爭機器》、《Beowulf》、《 City of Villains Medal Of Honor: Airborne》、《 Bladestorm: The Hundred Years' War》等140多款經典遊戲都是以PhysX引擎為靈魂,並且都支持物理加速卡。
PPU的出現是為了解放隨著圖形發展而任務日益繁重的CPU,將原本使用軟體技術並通過CPU運算處理的物理反應計算提取出來,專門來負責物理運算的處理工作。其強大的整數及浮點運算能力,可形成軟、固質體動力,泛用碰撞偵測,有限元素分析,流體動力,毛髮模擬,布料模擬等技術特效。隨著PhysX引擎也將得到越來越多的遊戲開發商的青睞,物理遊戲將會如雨後春筍般湧現出來。物理加速卡這一英雄,也將會有越來越廣闊的用武之地。
藉助PhysX卓越的計算能力,玩家將看到各種逼真震撼的場景,例如:
1.塵土飛揚,碎渣四濺的大量粒子運動所形成的爆炸效果;
2.設計結構複雜的各種幾何模型,以完成更加逼真的物理運動和交互動作;
3.環繞在運動中的物體周圍的大量翻騰涌動的濃煙和塵霧效果;
4.逼真細膩的河水、泥石流、岩漿等流體運動模擬;
5.衣物、草叢、樹葉之類軟性物體能隨風自然飄動效果;
6.衣物,旗幟等軟性物體因外界各種影響做出不同的撕裂或變形效果;
7.剛性物體之間相互碰撞的運動計算,一定力度之下形成擬真的成千上萬個碎片運動。
如此類推.
理解三者關係的最好方法是理解他們是如何和遊戲引擎交互的:CPU只考慮如何讓遊戲對玩家作反應,就好像一個大管家一樣,工作則重點是放在渲染質量方面、主要追求單純的視覺效果,而不是將運作效能放在第一位。物理加速則著重渲染效果的“真實性”,設計成考慮對象的運動以及和虛擬世界之間的互動。但是物理加速有著和GPU完全不同的內部構架,它往往擁有軟、固質體動力,泛用碰撞偵測,有限元素分析,流體動力,毛髮模擬,布料模擬等技術特效,可以處理相當複雜的物理運算,而傳統的CPU和GPU在執行這些任務時往往無法獲得足夠好的效能。物理加速的這些處理技術和GPU是完全不同的兩個運算概念,因為物理運算需要十分強大的整數及浮點運算能力,而將以上這些分離出來交由物理加速處理架構的最大優勢,這意味著未來3D運算也將從現有的CPU、GPU配合的方式變為CPU、物理加速處理和GPU三者的配合協作。廠商們所推出的物理加速的概念也是如此,它將原本使用軟體技術並透過CPU運算處理的物理反應計算再提取出來給專門負責物理運算的硬體、晶元來處理。在短期來看,CPU“綜合協調”,GPU“渲染、顯示”,“處理物理交互”,三者共同完成逼真的遊戲體驗。
比如在模擬一個大石頭滾下山坡的場景時,現有的雙核心處理器只能處理800-1000塊石頭互相碰撞、反彈、急沖的景象,無法展現出更廣闊的場景。
可以說在短期,物理加速處理所帶來的最大變化將是遊戲特效,因為以目前的GPU硬體技術,遊戲開發者已經很難整合環境和其他元素,打個比方:一陣冷風吹過一片寂靜的,樹將隨風搖擺,樹葉發出沙沙響聲,百葉窗發出被風吹打的巨響,修道士手拿火把穿過古墓,他的的長袍很真實的隨風擺動,女主角的所騎馬的尾巴也自然的擺動,當前面的城堡突然爆炸,飛濺出來的碎石衝倒街上的圍牆,這些特效將會讓遊戲真實感上一個台階,同時基於物理模擬的視覺將會徹底改變此前單調乏味事先做的動畫效果。
PhysX 物理引擎為下一代遊戲提供了最先進的動態運動交互物理效果: 成千上萬個物體互相碰撞, 瀰漫的煙霧, 與周圍環境交互的布料系統, 噴涌的流體系統. 如果你想使你的遊戲更生動逼真, 那麼沒有別的選擇-你需要PhysX 物理引擎。
PhysX SDK™,它不僅可以應用於次世代PC遊戲開發,還可應用在Console遊戲開發中。目前該物理引擎已經和世界超過60家的遊戲開發商和發行商進行了遊戲物理開發的合作,包括亞太地區的中國、韓國和日本等的諸多知名遊戲商。和騰訊公司合作開發的號稱“最時尚的賽車網游”以及“最好玩的賽車網游”的QQ飛車,正是以PhysX物理引擎為技術核心。
PhysX SDK特性如下:
複雜的剛體物理系統
剛體動力學模塊能夠高度真實地模仿物體運動。該模塊運用諸多物理概念,如:參照系,位置,速度,加速度,動量,力,旋轉,能量,摩擦,衝量,碰撞,約束等,提供一個構建這些物理概念的工具箱,使你能夠方便地創建多種類型的機械設備:
· 碰撞實體(球,盒子,膠囊狀物體,平面,高地,凸狀物體,三角形網格)
· 各種鉸鏈類型(球形,迴轉形,菱形,圓柱形,固定,距離形,滑輪,六自由度)
· 創建和編輯高級人體(rag doll)
· 材質和摩擦建模
· 支持連續碰撞檢測
· 分組碰撞+碰撞篩選(可編程)
先進的角色控制器
角色控制器主要用於獨立於剛體物理的第三人稱或第一人稱角色控制.
· 自動步幅調整特性
· 優勢性分組
基於射線探測和鉸接組合的車輛運動系統
PhysX SDK能夠完美的模擬真實世界的車輛運動
· 車輪外形
· 基於鉸接的懸架
支持多線程/多平台/PPU
Ageia PhysX SDK 對單核及多核的PC平台, Xbox360, PS3 以及PhysX 加速卡都進行了優化
· 支持Ageia PhysX加速卡
· 細粒度的多線程式控制制
· 支持非同步
· 內建的剖析工具
· 針對PS3及Xbox360平台的優化
流體的創建和模擬
基於粒子系統和粒子發射器,流體可以用來模擬液體和氣體,具體包括:
· 支持光滑質點流體動力學(SPH)方法和無交互的簡單流體模擬
· 用戶可以在模擬過程中精確控制每一個粒子。
· 支持流體與剛體、布料及柔體的雙向交互。
布料、使用布料裁剪成服裝的過程及回放
PhysX SDK 的布料特性可以模擬由布料製作的物體,如旗幟和衣物等。
· 支持布料與剛體或坐標點的綁定
· 支持布料自身碰撞
· 支持可撕裂型布料、壓力型布料及可變形的金屬型布料
柔體模擬
AGEIA PhysX SDK 的柔體特性允許對可形變物體進行三維體模擬。同時它也可以用來模擬一些非經典的柔體類型,例如植物或者多層布料。
· 柔體與剛體或坐標點的綁定。
· 提供創建柔體的體數據工具 TetraMaker。
· 支持柔體的自碰撞和運動阻尼。
三維力場模擬
力場是一種SDK對象,它作為物理模擬參與者能夠影響進入其勢力範圍的布料、柔體、流體和剛體的運動。你能通過力場實現諸如:狂風、沙塵暴、真空清理器、反重力區域等物理效果。
· 支持各種力場外形。如:球形、膠囊形、方體形、凸多面體形
AGEIA一直致力於將新的物理特性加入到新版本的PhysX SDK中,而遊戲開發人員也會不斷把這些新特性加入到他們最新最好的遊戲中去。
2008年2月初NVIDIA與AGEIA的併購,揭開了PhysX物理加速技術花落誰家的神秘面紗,這兩個在各自領域都是領導者的結合必將給顯卡技術帶來新的突破,這一重大歷史事件也引起了業界的熱評如潮和殷切期待。
NVIDIA公司CEO黃仁勛表示,NVIDIA的策略是接手PhysX引擎,並將其移植加入NVIDIA的CUDA顯卡通用計算架構中。“當下,我們正在做物理引擎向CUDA的移植工作,並將在這上面投入大量的人力物力。這一移植想必將提升我們GPU的銷量,即使現在移植尚未完成也有效果。因為,將來移植成功後用戶僅僅需要一次軟體升級,所有現在支持CUDA的GPU都將能夠運行PhysX物理引擎……而目前我們所有的GeForce 8系列GPU都支持CUDA。”
黃仁勛還認為,PhysX和GeForce的結合將帶動更多的高端玩家組建多路SLI系統,從而真實震撼地感受到升級的遊戲體驗。未來可能會出現兩款顯卡負責圖像,一塊負責物理;或者一塊負責圖像,兩塊負責物理。
總的來說,無論是在AGEIA自力更生階段生產的物理加速卡,還是在與NVIDIA強強聯手后將要實現物理運算的GeForce圖形顯卡中,PhysX物理加速技術已成為圖形發展新方向的大勢所趨,不僅會廣為流傳,還會在未來的成長道路上日趨茁壯。伴隨著春天的腳步,PhysX物理加速技術迎來了全面開花的明天,正如NVIDIA的宣傳語“PhysX Now Avaibale in Green”