開放物理計畫的由來
當Intel收購Havok和Nvidia收購AGEIA後,物理引擎產業發生了戲劇的一幕:
Intel由於沒有獨立GPU生產能力,因此極力推動物理模擬引擎由多執行緒的CPU計算,H
Nvidia由於沒有CPU生產能力,因此極力推動物理模擬引擎由GPU,也就是顯示卡計算。而且PhysX引擎本身就不大適合用CPU計算。
實際上,以目前的技術,無論CPU還是GPU都無力獨自支撐複雜的物理模擬計算。只有CPU與GPU聯合計算才能最大程度的提高計算效率。AMD擁有CPU、晶片組、GPU全平台設計生產能力,然而卻沒有自己的物理模擬引擎,始終受制於人。
還好這時候OpenCL出現了,為AMD的開放物理計畫打下了基礎。
開放物理計畫的基本組成
AMD的開放物理計畫的基礎是OpenCL,OpenCL是一種接口程式。簡單的說,OpenCL在這個計畫中的作用就是把物理模擬引擎的計算指令翻譯給GPU,讓GPU可以計算。這樣,以OpenCL為基礎,AMD開放物理計畫聯合了Havok,Bullet和Pixelux三種物理引擎。其中Havok是世界三大物理引擎之首,Bullet是世界三大物理引擎第三位(排名第二的是Nvidia的PhysX)。
Pixelux。這家2004年成立於瑞士的小公司並不知名。他們開發的“Digital Molecular Matter”(DMM)就是一款物理引擎中間件,曾套用在喬治盧卡斯的電影特效製作當中。盧卡斯公司的《星球大戰:原力釋放》是首款使用DMM引擎的遊戲作品,近期Pixelux還推出了Maya軟體的DMM引擎外掛程式。在同AMD展開合作後,該公司將把DMM引擎引入OpenCL,使用CPU+GPU發展物理加速。
Bullet,這是一款跨平台的開源物理引擎。根據遊戲開發者雜誌的統計,目前全球遊戲開發者當中,第三名就是占10.3%的Bullet。AMD目前正在聯合一眾開發人員,將Bullet開源物理引擎庫“翻譯”為OpenCL格式。
AMD圖形部門首席技術官Eric Demers說到,“建立一個開放易用的物理引擎的環境對於遊戲開發者和玩家來說是一個重要的成就,這可以擺脫那些封閉的或專用的解決方案。Bullet Physics整合到合作夥伴的開發過程中可以幫助推廣物理引擎的使用,並確保這些遊戲在發布時,無論在任何的硬體環境下都可以使遊戲玩家得到良好的體驗。”
開放物理計畫也是“目前唯一提交到Khronos Group的GPU + CPU通用加速物理解決方案”。
開放物理計畫的發展
AMD在2010年3月9日發布的官方新聞稿中稱,從即日起開放物理開發環境將以Bullet引擎作為默認的剛性物體物理系統,並結合Pixelux的DMM2材料物理引擎。遊戲開發者可以使用熟悉的Bullet引擎設計剛性物質,並在此基礎上添加擁有真實彎曲和破碎效果的DMM物體。
另外,在AMD的資助下,Pixelux將把PC平台上的DMM2引擎向遊戲開發商免費發放,不收取任何授權費用,並包含最新高級版本的所有特性,當然其中包括GPU加速。預計PC免費版DMM21近期就會發放給感興趣的遊戲開發商。
AMD著重指出,以上談到的所有Bullet引擎功能都可以在任何支持OpenCL或DirectCompute的的硬體平台上運行。在AMD平台上,將使用ATI Stream技術予以實現。另外,AMD還已經開發出了實現Bullet引擎中光滑粒子流體力學(SPH)和柔性物體/布料模擬的GPU並行計算加速算法,近期將把該算法在OpenCL和DirectCompute中的實現代碼以開源形式公開。
在GDC2010展會上,AMD公司展示了在ATI Radeon HD5870上運行的基於“開放物理計畫”的演示DEMO(詳見擴展閱讀),同時AMD工作人員表示,關於開放物理計畫的詳細進展不方便透露,但是會有更多的演示DEMO展出。
2010年10月,在AMD Radeon HD6870/HD6850的發布會上,AMD公司展示了開放物理計畫的最新進展,基於Bullet Physics的GPU加速DEMO。
2010年12月,AMD為AMD Radeon HD6970量身定做了演示DEMO:HK-2207。DEMO的3D引擎為支持DirectX 11的新版Vision Engine ,物理引擎為開放物理計畫的核心成員之一:Bullet Physics。
AMD已經證實,Vision Engine 8遊戲引擎已經正式支持開放物理計畫,不久將有採用這一引擎的遊戲問世。