• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            芳草春暉

            偶爾記錄自己思緒的地方...

             

            Havok VS PhysX 漫談物理加速世界!

            第1頁:物理大戰新篇章

              2008年6月,NVIDIA與AMD-ATI先后發布了自家新一代高階產品GT200(GeForce GTX 280/260)與RV770(Radeon HD 4850/4870),我們在驚詫于新產品的極限性能時,眾多新技術引用也是玩家關注的重點,例如NVIDIA的CUDA架構,AMD-ATI的GPGPU解決方案等。在眾多的技術當中,物理加速技術由于震撼的視覺體驗及兩家不同的解決方案再次成為了人們關注的焦點。

              NVIDIA發布的CUDA 2.0開發包中蘊含了PhysX物理加速技術,NVIDIA的意向是使用GPU通過CUDA架構來實現物理加速;而作為同時擁有CPU與GPU業務的AMD自然會選擇CPU+GPU為主導的Havok物理引擎。2007年9月Intel閃電收購Havok之后,NVIDIA與AMD-ATI的GPU物理加速計算就顯得非常尷尬,因為Intel收購Havok的目的就是使Havok引擎專注于CPU物理運算,為了對抗Intel(亦或是說CPU),NVIDIA收購了Ageia及其PhysX引擎,使PhysX引擎專注于GPU物理運算。AMD-ATI如何選擇物理加速方案在RV770之前業界充滿了猜測,因為無論是Havok還是PhysX引擎,都是競爭對手的產品,而為了AMD更加長遠的Fusion計劃,AMD-ATI最終選擇了前者。

              物理加速技術在2006年Ageia發布物理PhysX加速卡時被人們所關注,甚至有人笑稱3D加速成就了3DFX,而物理加速將成就Ageia,但是由于Ageia采用的是PhysX硬件物理卡加速方式,而物理卡又價格不菲,雖然Ageia也出售PhysX引擎,但是由于沒有PhysX硬件加速卡支持的話效率會降低,在加上NVIDIA與AMD-ATI當時都采用了Havok引擎作為標準,因此一直沒有受到游戲開發商及廣大玩家的重視。而Havok引擎在很長一段時間都是致力于CPU軟件加速,但是隨著Havok 4.0工具中Havok FX的發布就不一樣了,Havok FX引擎是通過GPU來進行物理加速,主要針對當時的PhysX引擎。

              關于GPU與CPU在做物理運算時的差距這里就不多做介紹了,有很多這方面的文章可尋,總體來說GPU運行物理運算可以是四核CPU的十幾倍到幾十倍不等,比PPU有幾倍到幾十倍的性能提升。而我們這里主要探討的NVIDIA與AMD-ATI GPU加速昨天、今天與明天!

            第2頁:昨天—殊歸同途的Havok FX引擎

              Havok FX發布于2006年中,前文已經提到,Havok FX引擎是通過GPU來進行物理加速,當時的NVIDIA與AMD-ATI都不約而同的支持Havok FX引擎,首先來看NVIDIA的NVIDIA SLI Physics技術,NVIDIA是采用SLI模式的第二塊顯卡來進行物理加速。

              從上圖中可以看出,Havok FX API通過DirectX將數據發給GPU驅動,如果游戲或者驅動不支持SLI物理,那么將不會發送物理數據,反之則交給GPU 2進行物理計算,計算結果則返回給Havok API。

              與NVIDIA的物理解決方案類似,AMD-ATI同樣采用Havok FX引擎,同樣基于多卡互聯CrossFire來實現物理加速,第二塊顯卡來進行GPU物理加速。

              當時AMD-ATI的X1000系列GPU的設計理念是搭建智能化的芯片架構,使得芯片內部的運算靈活性增強,根據外部接口API的不同,可以實現完全不同的運算任務,并且命名為DPP(Data Parallel Processing )并行數據處理架構。

              雖然同樣采用了Havok FX引擎,并且都是雙卡互聯形式實現,但是兩家的解決方案卻大相徑庭:NVIDIA是通過DirectX API來實現物理加速,而AMD-ATI則是通過數據并行計算架構提取(Data Parallel Processing Architecture Abstraction )直接與Havok FX引擎交換數據,讓Havok FX引擎直接與GPU溝通,而不需要通過Direct3D和OpenGL API,AMD-ATI著名的Close To Metal(CTM)接口就是在這個時期提出的。簡單的理解就是,AMD-ATI的實現方式是“GPGPU”通用計算的形式來做物理運算,而NVIDIA是讓顯卡通過DirectX以“GPU”的工作方式在做物理加速(其實也是GPGPU應用范疇)。

              至于兩種方案的優劣其實討論起來真的沒有意義,因為實際上除了NVIDIA與AMD-ATI自家演示的小DEMO與視頻之外,目前支持GPU物理加速的游戲幾乎沒有,大部分使用到物理加速的游戲還都是使用CPU物理加速的方式,包括我們熟知頂級大作《Crysis》、《使命召喚4:現代戰爭》等等……

            第3頁:今天—PhysX決戰Havok FX

              當NVIDIA宣布CUDA集成PhysX物理引擎時,很多人都會認為PhysX引擎只支持GPU物理加速技術,這也是AMD-ATI選擇Havok FX引擎的主要原因。然而實際上PhysX引擎最初是只支持CPU與PPU,而不支持GPU,即使是融入CUDA之后,PhysX引擎也仍然支持CPU物理加速。之所以給人PhysX引擎只支持GPU物理加速的錯覺,是因為NVIDIA表示今后將大力發展GPU物理加速,但這并不表示PhysX引擎排斥CPU或者CPU+GPU的解決方案。

              無論是GPU還是CPU、PPU、Cell(PS3)都可以通過HAL翻譯層來實現軟、固質體動力(Soft or Rigid Body Dynamics)、通用碰撞偵測(Universal Collision Detection)、有限元素分析(Finite Element Analysis)、流體動力(Fluid Dynamics)、毛發模擬(Hair Simulation)以及更先進的布料模擬(Cloth Simulation)、自然模擬(Natural Motion)等在內新穎技術。

              通過CUDA通用接口,PhysX引擎將NVIDIA GPU中的Thread Scheduler(線程管理器)模擬成Control Engine(控制引擎CE),而Streaming Processors來模擬Vector Processing Engine(矢量處理引擎,VPE),其中CE控制引擎負責任務的指派,相當于PhysX中的主管機構,而真正的物理運算任務則是由VPE矢量引擎來完成,最后通過Data Movement Engine(數據移動引擎DME)輸出。關于最新GT200物理運算的優勢已經被NVIDIA吹的天花亂墜,這里就不多介紹了,感興趣的朋友參見《NVIDIA奪面雙雄 GT200全球同步首測》一文。

              而AMD-ATI則繼續選擇Havok FX引擎,不過RV770系列實現物理加速的方法也已經不同于之前的CrossFire雙卡解決方案,之前Radeon X1000系列是通過據并行計算架構提取直接與Havok FX引擎相連接(其實也可以通過Direct3D和OpenGL API),然而由于對抗CUDA的原因,AMD-ATI也需要自己的GPGPU規范,而AMD-ATI則選擇了蘋果公司力推的通用計算行業標準OpenCL,它能與圖形硬件及多核CPU相協調以提高系統的整體性能,而AMD-ATI的Havok物理加速技術就是基于CAL/Brook+的。

              實質上講無論是CTM接口,還是現在的CAL/Beook+,AMD-ATI執行物理加速的概念都沒有變,那就是GPGPU的并行能力進行物理運算,而NVIDIA方面可以真正稱的上市GPGPU物理加速還是從CUDA開始的。另外我們也注意到,之前無論NVIDIA還是AMD-ATI在展示自己物理運算時都是基于雙卡技術,而如今他們更愿意談論單卡。

            第4頁:明天—技術與現實之間的抉擇

              那么物理加速技術的明天到底是Havok FX引擎還是PhysX引擎的天下?我們先來看一下雙方的陣營:PhysX引擎目前只有NVIDIA一家支持,有消息稱AMD-ATI目前也正在與NVIDIA商榷授權的問題,那么有可能AMD-ATI最終也支持PhysX引擎;Havok FX引擎目前已經得到AMD-ATI的支持,加上Havok的所有者Intel,目前構成了Intel+AMD-ATI對抗NVIDIA的局面。

             

            物理加速陣營對比

             

              支持引擎 加速態度
            Intel
            Havok
            CPU
            AMD-ATI
            Havok(PhysX引擎正在商榷)
            CPU+GPU
            NVIDIA
            PhysX引擎
            GPU
             

              三方對于物理加速是由GPU還是由CPU執行的態度開篇已經闡明,實際上這場物理大戰最終的抉擇就是落在了到底是CPU加速還是GPU加速上,我們先來看一下最簡單的物理加速計算過程。小熊在線www.beareyes.com.cn

              無論PhysX引擎還是Havok引擎物理計算都基于以下步驟:

              Integrate整合初步計算
            Collide碰撞判定
            Solve Collisions碰撞結果計算

              在Integrate整合初步計算階段,進行物理對象的一些初始物理狀態的初始化,包括速度、加速度等各項信息,為后面的運算做準備。Collide 碰撞判定進行一些對象之間的碰撞檢測,并以對的形式進行處理(因為碰撞總是兩個物體相互的),Solve Collisions碰撞結果計算階段則是對碰撞的后處理,包括碰撞后的速度等。Solve Collisions碰撞結果計算階段是最復雜的,那么我們可以看出物理計算是一個對并行計算非常依賴的運算。小熊在線www.beareyes.com.cn


            Solve Collisions

              我們看到,物理運算所需的大量并行計算正是GPU所具備的優勢,利用GPU做物理運算確實是天經地義的事,那么是不是說物理計算目前就是該由GPU來負責呢?在回答這個問題之前我們先來看一下NVIDIA在近期發布的PhysX驅動,搭配PhysX驅動在運行3DMark Vantage CUP測試第二個場景的時候,由于GPU接替(或者說是加速)物理運算,使這個場景成績暴增,可以看出GPU取代CPU物理加速時的決定性優勢,而在NVIDIA最新發布虛幻3物理地圖演示中,我們卻可以看到如下的成績:


            1680×1050


            2560×1600

              GPU進行物理加速在進行很少使用到圖形渲染的3DMark Vantage CPU測試第二個場景,以及較低分辨率下進行游戲時,GPU物理加速確實效果令人滿意,但是隨著分辨率的增加,GPU物理加速在游戲中的表現就不在我們想象的那樣完美,對比CPU加速,有些場景甚至還有成績的下降!

              這是游戲中GPU與CPU的關系決定的,在游戲中,顯卡大多數時候都是在滿負荷運行,這時根本無暇分身做物理運算!那么這時CPU在做什么?游戲是非搶占型程序,也就是說如果一般游戲不會全部榨干CPU性能,所以我們在進行游戲時經常看到CPU的占用率并非100%,如果是4核CPU而游戲又不支持多核的話,那么這時CPU的性能就在浪費!

              實際的情況已經很明了,GPU確實非常做物理運算,但是實際情況卻是GPU心有余而力不足,利用目前閑置的CPU來做物理加速似乎是最好的選擇,而如果我們有兩塊顯卡的話也許就解決了GPU自顧不暇的問題,這是不是讓你想到了當初NVIDIA及AMD-ATI都不約而同選擇Havok FX物理加速的原因——一塊顯卡做圖形渲染,一塊顯卡做物理加速!

              今后物理的發展最終走向何方?也許會是GPU強大到做物理加速如現在的視頻解碼,也許是今后游戲繼續榨干顯卡的性能,由多核CPU閑暇來做物理計算,也許是Fusion的CPU+GPU協同操作,總之,一切皆有可能,我們拭目以待……

            posted on 2010-05-04 22:53 CrazyDev 閱讀(1123) 評論(0)  編輯 收藏 引用 所屬分類: 圖形技術

            導航

            統計

            常用鏈接

            留言簿(1)

            隨筆檔案

            文章分類

            文章檔案

            C/C++

            CEGUI

            Friend Bog

            Game Industry

            Lua

            OGRE

            Other

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲综合日韩久久成人AV| 国产一区二区精品久久凹凸| 亚洲国产精品久久久久婷婷软件| 青青草原精品99久久精品66| 久久人妻AV中文字幕| 亚洲精品国产第一综合99久久| 久久久免费观成人影院| 欧美激情精品久久久久久| 亚洲国产精品一区二区三区久久| 欧美麻豆久久久久久中文| 污污内射久久一区二区欧美日韩| 欧美午夜精品久久久久久浪潮| 久久精品国产清自在天天线| 性高湖久久久久久久久AAAAA| 欧美亚洲国产精品久久高清| 久久人妻AV中文字幕| …久久精品99久久香蕉国产| 99久久国产主播综合精品| 久久中文字幕视频、最近更新| 欧美日韩久久中文字幕| 久久婷婷五月综合色高清| 嫩草影院久久99| 一本久久精品一区二区| 久久精品国产精品亚洲毛片 | 国产精品成人无码久久久久久 | 精品国产VA久久久久久久冰| 99热成人精品热久久669| 国产91久久综合| 中文字幕无码久久人妻| 色综合久久久久久久久五月| 青草影院天堂男人久久| 国产精品久久婷婷六月丁香| 精品综合久久久久久888蜜芽| 久久人人爽人人精品视频| 久久精品国产2020| 99热都是精品久久久久久| 国产69精品久久久久久人妻精品| 久久最近最新中文字幕大全| 久久久久精品国产亚洲AV无码| 色综合久久88色综合天天| 婷婷久久香蕉五月综合加勒比|