PhysX是什麼

  PhysX,是一套由AGEIA公司開發的物理運算引擎,簡而言之,就是令虛擬世界中的物體運動符合真實世界的物理定律,以使游戲更加富有真實感。PhysX可以由CPU計算,但其程式本身在設計上還可以調用獨立的浮點處理器(例如GPU和PPU)來計算,也正因為如此,它可以輕鬆完成像流體力學模擬那樣的大計算量的物理模擬計算。 PhysX物理引擎可以在包括Windows,Linux,Xbox360,Playstation3,Mac等在內的全平台上運行。 

8

AGEIA時代的PhysX

  PhysX物理運算引擎由五名年輕的技術人員開發,他們成立了AGEIA公司。由於PhysX物理引擎在設計上就並不適合用CPU去計算,因此AGEIA公司還為PhysX引擎設計了專門的運算硬體,PhysX物理加速卡。PhysX物理加速卡的核心被稱為PPU,即物理處理器(Physics processing Unit)。PPU在AGEIA公司被nVIDIA公司收購後已停止生產。

nVIDIA時代的PhysX

  2008年,Nvidia收購了AGEIA。正式將PhysX技術劃入旗下。nVIDIA PhysX承襲自AGEIA PhysX,但Nvidia在此基礎上推出了nVIDIA PhysX物理加速,並將PhysX物理加速功能移植到nVIDIA GPU中,用戶不必額外購買PhysX物理加速卡就能享受到PhysX物理加速功能。藉助CUDA結構,nVIDIA重新編寫了PhysX物理加速程式,將PhysX物理加速引擎從AGEIA PPU移植到了nVIDIA GPU上。 

  所謂PhysX物理加速,是指相對於CPU來講,GPU加快了PhysX物理引擎的計算速度。並不是說PhysX引擎只能由nVIDIA GPU處理。 

nVIDIA劣化CPU執行PhysX效率

  如果使用CPU處理PhysX時,PhysX引擎只會調用CPU單線程計算。RealWorld Technologies網站的作者David Kanter使用Intel的VTune進程查看工具分析了多款支援PhysX特效的游戲,發現當這些游戲使用CPU處理物理特效時,大部分的代碼使用的仍然是老舊的x87浮點算數指令,而不是效率高得多的SSE指令(SSE指令的完成同樣任務的速度能達到x87指令的1.5-2倍)。

支援PhysX的游戲

  目前為止,在全平台上(PC,Xbox,Playstation)共有約260種游戲採用了PhysX引擎。其中在PC平台上,共有226種游戲採用PhysX引擎(截止2011.7.26)。

網友評論