PhysX

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
PhysX by NVIDIA
原作者NovodeX AG (ETH Zurich)
開發者Nvidia Corporation
(2008-至今)
AGEIA Technologies
(2004-2008)
NovodeX AG
(2001-2004)
當前版本
  • 9.21.0713 (2021年10月15日;穩定版本)[1]
編輯維基數據鏈接
源代碼庫https://github.com/NVIDIA-Omniverse/PhysX (5.x)
https://github.com/NVIDIAGameWorks/PhysX (4.x)
編程語言C++
操作系統Microsoft Windows, macOS, Linux, PlayStation 2, PlayStation 3, PlayStation 4, Xbox 360, Xbox One, Wii, iOS, Android
許可協議BSD授權條款
網站開發者網站
開發文檔
BFG科技推出的一張PhysX顯卡

PhysX是一套由AGEIA設計的執行複雜的物理運算的PPU,又可以代表一款開源[2]實時物理引擎SDK。後為Nvidia GameWorks軟件套裝的一部分。

最初,支持PhysX的遊戲旨在通過由Ageia設計的PhysX PPU擴展卡進行加速。AGEIA聲稱,PhysX將會使設計師在開發遊戲的過程中使用複雜的物理效果,而不需要像以往那樣耗費漫長的時間開發一套物理引擎。以往使用了物理引擎,還會使一些配置較低的電腦無法流暢運行遊戲。AGEIA更宣稱,PhysX執行物理運算的效率比當前的CPU與物理處理軟件的組合高出100倍。在Nvidia收購Ageia之後,專用的PhysX擴展卡停產,取而代之的是在支持CUDAGeForce GPU上運行API。在這兩種情況下,硬件加速使得可以將物理計算從CPU中轉移,從而使CPU能夠執行其他任務。

今天,PhysX和其他物理引擎被廣泛應用於許多遊戲中,因為它們使得遊戲開發者無需編寫自己的代碼來實現物理模擬,例如模擬軟體動力學。[3]

歷史[編輯]

如今被稱為PhysX的物理引擎起源於一個名為NovodeX的物理引擎。該引擎由瑞士公司NovodeX AG開發,該公司是蘇黎世聯邦理工學院(ETH Zurich)的一個衍生公司。[4] 2004年,Ageia收購了NovodeX AG,並開始開發一種可以加速物理計算、輔助CPU的硬件技術。Ageia將這項技術命名為PhysX,SDK也從NovodeX改名為PhysX,加速器卡被稱為PPU(物理處理單元)。[5]

在開發過程中,第一個使用PhysX技術的遊戲是《斯大林地鐵站》(The Stalin Subway),於2005年9月在俄羅斯的遊戲商店獨占上架。[6]

2008年,圖形技術廠商Nvidia收購了Ageia。[7] Nvidia開始在其GeForce系列顯卡上啟用PhysX硬件加速功能[8],並最終放棄對Ageia PPU的支持。

PhysX SDK 3.0於2011年5月發布,對SDK進行了大量重寫,帶來了諸如更高效的多線程和適用於所有支持平台的統一代碼庫等改進。[3]

在2015年的遊戲開發者大會(GDC 2015)上,Nvidia將PhysX的源代碼放在GitHub上,使用者需要在developer.nvidia.com進行註冊。[9]這個專有的SDK向開發者免費提供,無論是商業還是非商業用途,在WindowsLinuxmacOSiOSAndroid平台上都可以使用。[10]

在2018年12月3日,PhysX在BSD許可證下成為開源,但此變更僅適用於計算機和移動平台。[11]

在2022年11月8日,開源版本被更新為PhysX 5,仍然採用相同的BSD許可證[12]

特性[編輯]

PhysX引擎和SDK適用於Microsoft WindowsmacOSLinux[11]PlayStation 3[13][14]PlayStation 4[15]Xbox 360[16]Xbox One[17]Wii[18]iOSAndroid[11]

PhysX是一個多線程物理模擬SDK。它支持剛體動力學、軟體動力學、布娃娃系統和角色控制器、車輛動力學粒子模擬體積流體模擬

硬件加速[編輯]

PPU[編輯]

物理處理單元(PPU)是一種專門設計的處理器,旨在減輕CPU的計算負擔,特別是涉及物理的計算。這概念類似於對上GPU,但在早期的計算機中,GPU用於處理矢量圖形,並且延伸到3D圖形。但GPU對物理處理無能為力,故目前大部分物理處理都交給CPU處理,這無疑是加重了CPU本來就不輕的負擔。PhysX PPU以PCIPCIe卡的形式由ASUS[19]BFG Technologies[20][21]Dell[22]ELSA Technology[23]等廠商提供給消費者。

自PhysX SDK 2.8.3版本開始,不再支持並不再生產PPU卡。[24]Ageia設計的PhysX PPU獨立卡的最後版本大致與專用的9800GTX具有相同的PhysX性能。[25]

當年PhysX物理加速卡規格[編輯]

  • 內存:128 MB GDDR3 RAM華碩據說有發行256 MB GDDR3 RAM的版本)
  • 接口界面:PCIPCI Express
  • 球體碰撞能力:5.3億次每秒(最大能力)
  • 浮點運算能力:530,000次每秒(最大能力)
  • 價格:220英鎊 300美元 2000人民幣 9500台幣(估計)
    • BFG推出的PhysX擴展卡售價為2000人民幣

GPU[編輯]

在Nvidia收購Ageia之後,PhysX的開發偏離了PPU擴展卡,而是專注於現代GPU的GPGPU能力。

現代GPU非常擅長處理和顯示計算機圖形,其高度並行的結構使它們比通用CPU更有效地加速使用PhysX進行物理模擬。

任何支持CUDA的GeForce圖形卡(8系列及以上),並至少具有32個核心和至少256MB專用圖形內存的圖形卡[26])都可以利用PhysX,無需安裝專用的PhysX卡。

有趣的是,據說NVIDIA在當時透過第三開發者,有意讓ATI的顯示卡支援PhysX運算,AMD官方未對此表態。後來,AMD宣佈旗下產品會被Havok物理引擎優化,它是PhysX物理引擎的競爭對手。

NVIDIA APEX PhysX[編輯]

NVIDIA在GDC 2009上介紹了APEX PhysX,它允許藝術家更高效的創作物理內容。[27]

Nvidia APEX技術是圍繞PhysX SDK構建的多平台可擴展動力學框架。它首次在2010年8月的《黑手黨II》中引入。[28]

Nvidia的APEX包括以下模塊:APEX Destruction、APEX Clothing、APEX Particles、APEX Turbulence、APEX ForceField,以及2011年停止開發的APEX Vegetation。[29][30]

從版本1.4.1開始,APEX SDK已被棄用。[31]

NVIDIA Flex[編輯]

FleX是一種基於粒子的實時視覺效果模擬技術。傳統上,視覺效果是使用專門的剛體、流體、服裝等專用求解器創建的元素的組合製作的。由於FleX對所有對象類型都使用統一的粒子表示,它使得不同的模擬物質可以無縫地相互作用。這種統一的物理求解器是離線計算機圖形的重要組成部分,其中諸如Autodesk Maya的nCloth和Autodesk Softimage的Lagoa等工具被廣泛使用。FleX的目標是利用GPU的能力將這些離線應用程序的功能帶入實時計算機圖形領域。[32]

來自Real World Technologies的批評[編輯]

於2010年7月5日,Real World Technologies發表了一篇關於PhysX架構的分析[33]。根據這篇分析,當時在PhysX應用程序中使用的大部分代碼都基於x87CPU指令,沒有進行任何多線程優化。這可能導致在CPU上運行PhysX代碼時性能顯著下降。文章建議使用SSE指令對PhysX進行重寫,這可能會大大減少CPU PhysX和GPU PhysX之間的性能差距。

作為對Real World Technologies分析的回應,PhysX的產品經理Mike Skolones表示[34],SSE支持被拋在了後面,因為大多數遊戲首先是為遊戲主機開發,然後再移植到PC上。因此,即使幾乎沒有進行優化,現代計算機運行這些遊戲的速度也比遊戲機快得多,效果也更好。

Nvidia的高級公關經理Bryan Del Rizzo解釋說,多線程已經在CPU PhysX 2.x中可用,開發人員可以利用它。他還表示,自動多線程和SSE將在PhysX SDK的第3版中引入。[35]

PhysX SDK 3.0於2011年5月發布,代表了SDK的重大改寫,帶來了諸如更高效的多線程和統一的代碼基礎等改進。[3]

用法[編輯]

遊戲[編輯]

PhysX技術被諸如虛幻引擎(從第3代開始)、UnityGamebryo、Vision Engine(從第6代開始)、Instinct Engine[36]、Panda3D、Diesel、Torque、HeroEngine和BigWorld遊戲引擎所使用。[26]

作為為數不多的主要物理引擎之一,PhysX被用於許多遊戲中,例如巫師3:狂獵星際戰甲殺戮空間2輻射4蝙蝠俠:阿卡姆騎士行星邊際2, 無主之地2。這些遊戲大多使用CPU來處理物理模擬。

支持硬件加速PhysX的遊戲通常包含額外的效果,如可撕裂的布料、動態煙霧或模擬的粒子碎片。[37][38][39]

其他軟件[編輯]

其他支持PhysX的軟件包括:

測試軟體[編輯]

網站oZone3D.net已推出相關的測試軟體,名為FluidMark,用來考察電腦的物理計算性能。[52]

參見[編輯]

參考資料[編輯]

  1. ^ https://www.nvidia.com/de-de/drivers/physx/physx-9-21-0713-driver/.
  2. ^ NVIDIA PhysX SDK 4.1. Engadget. [2022-04-05] (美國英語). 
  3. ^ 3.0 3.1 3.2 NVIDIA宣布发布PhysX SDK V3. Nvidia. [2011-06-03]. (原始內容存檔於2011-05-24). 
  4. ^ NovodeX AG. ETH Zurich. [2018-12-04]. (原始內容存檔於2018-01-08). 
  5. ^ César A. Berardini. AGEIA Technologies Interview. 2005-04-12 [2011-06-08]. (原始內容存檔於2011-09-21). 
  6. ^ Physics Engine: PhysX. MobyGames. [2023-09-06] (英語). 
  7. ^ NVIDIA completes Acquisition of AGEIA Technologies (新聞稿). NVIDIA Corporation. 2008-02-13 [2009-03-18]. 
  8. ^ PhysX For CUDA, Linux Support A Given?. Phoronix. Phoronix Media. 2008-02-14 [2008-02-14]. 
  9. ^ GitHub上的PhysX. Nvidia. [2015-03-06]. 
  10. ^ 截至2017年1月7日的PhysX SDK. Nvidia. [2017-09-03]. (原始內容存檔於2017-01-07). 
  11. ^ 11.0 11.1 11.2 PhysX SDK. NVIDIA Developer. 2018-11-28 [2018-12-05]. (原始內容存檔於2018-12-05) (英語). 
  12. ^ Open Source Simulation Expands with NVIDIA PhysX 5 Release. Nvidia. [2023-06-15]. (原始內容存檔於2023-05-28). 
  13. ^ Sony Computer Entertainment Enters Into Strategic Licensing Agreement With AGEIA (PDF) (新聞稿). Sony Computer Entertainment, Inc. 2005-07-21 [2006-08-23]. (原始內容 (PDF)存檔於2006-03-11). 
  14. ^ Playstation 3 gets free PhysX from Nvidia. Kotaku. 2009-03-18. 
  15. ^ Lowe, Scott. Nvidia Announces PhysX Support for PlayStation 4. 2013-03-07. 
  16. ^ PhysX – Overview – GeForce. Nvidia.com. [2011-11-30]. (原始內容存檔於2009-04-29). 
  17. ^ NVIDIA Announces PhysX Support for Microsoft Xbox One Game Console. Nvidia.com. [2014-11-09]. (原始內容存檔於2014-11-09). 
  18. ^ News – Pre-GDC: Nvidia PhysX Approved For Wii Developers. Gamasutra. 2009-03-19 [2011-11-30]. 
  19. ^ Asus 128mb PhysX Card Review/Preview. 2006-07-12. 
  20. ^ AGEIA And BFG Technologies Enter Into Retail Distribution Agreement. (原始內容存檔於2006-04-26). 
  21. ^ BFG Ageia PhysX Card Review. 2007-10-01. 
  22. ^ AGEIA PhysX - graphics card - AGEIA PhysX - 128 MB Specs. Cnet. 
  23. ^ ELSA teams up with Ageia. 
  24. ^ How to restore PPU support with latest PhysX Drivers | PhysXInfo.com – PhysX News. PhysXInfo.com. 2011-01-17 [2011-11-30]. (原始內容存檔於2011-11-24). 
  25. ^ English articles from PC Games Hardware. www.pcgameshardware.com. 2009-01-26. 
  26. ^ 26.0 26.1 PhysX FAQ. Nvidia.com. [2015-12-10]. 
  27. ^ 存档副本. [2010-09-20]. (原始內容存檔於2009-08-31). 
  28. ^ Olin Coles. Mafia-II Video Game Performance Review. BenchmarkReviews.com. [2010-08-23]. 
  29. ^ APEX. [2011-06-08]. 
  30. ^ Category:APEX - PhysX Wiki. PhysXInfo.com. [2013-07-21]. 
  31. ^ APEX 1.4.1 - Release Notes (APEX has been deprecated). gameworksdocs.nvidia.com. [2018-12-05]. 
  32. ^ NVIDIA FleX. NVIDIA Developer. 2015-08-13 [2019-04-17] (英語). 
  33. ^ PhysX87: Software Deficiency. www.realworldtech.com. 
  34. ^ Stokes, Jon. Did NVIDIA cripple its CPU gaming physics library to spite Intel?. Arstechnica.com. 2010-07-08 [2011-11-30]. 
  35. ^ Nvidia: We're not hobbling CPU PhysX | thinq_ | Page 1. Thinq.co.uk. [2011-11-30]. 
  36. ^ Instinct Software - Instinct Engine SDK. Instinctengine.com. [2013-10-04]. (原始內容存檔於2015-02-13). 
  37. ^ Matt Butrovich. 《Mirror's Edge》中的PhysX探究. 《The Tech Report》. 2009-02-12 [2011-04-06]. 
  38. ^ Rich Brown. Nvidia的PhysX让PC版《蝙蝠侠:阿卡姆骑士》值得等待. 《cNET.com》. 2009-09-21 [2011-04-06]. 
  39. ^ Matthew Murray. 《黑手党2》:使用PhysX值得吗?. 《ExtremeTech》. 2010-09-02 [2011-04-06]. 
  40. ^ PhysX - Lumberyard User Guide. 
  41. ^ Jim Thacker. Videos: Autodesk reveals new features in Maya 2012. cgchannel.com. 2011-03-01 [2011-04-06]. 
  42. ^ 3ds Max 2012和Maya 2012增加了PhysX支持. Beyond3D.com. 2011-03-01 [2011-04-06]. (原始內容存檔於2017-07-08). 
  43. ^ Randall Hand. NVidia PhysX和CUDA在Softimage 2011中. Vizworld.com. 2010-05-05 [2011-04-06]. 
  44. ^ The Game Creators Integrate AGEIA PhysX Technology into DarkBASIC Professional (新聞稿). The Game Creators. 2006-03-22 [2006-09-23]. (原始內容存檔於2006-04-27). 
  45. ^ 概述. DX Studio. Worldweaver. [2008-11-02]. (原始內容存檔於2009-07-05). 
  46. ^ AGEIA Joins Futuremark's 3DMark Benchmark Development Program. FindArticles (CBS Interactive). BusinessWire. 2006-09-27 [2008-11-03]. 
  47. ^ Simulation Overview. Microsoft Robotics Developer Center. Microsoft. 2012年3月. 
  48. ^ Boeing, Adrian. 引擎. Physics Abstraction Layer. [2007-11-18]. 
  49. ^ Pierre-Terdiman, GitHub - Pierre-Terdiman/PEEL: Physics Engine Evaluation Lab., 2019-03-22 [2019-03-22] 
  50. ^ Unreal Engine 4.26预览. 2020-09-24. 
  51. ^ Unity - 手册:物理. 
  52. ^ 首款PhysX物理基准测试工具:FluidMark 1.0.0. [2008-08-12]. (原始內容存檔於2016-03-04). 

外部連結[編輯]