nVidia的物理系統

PhysXhtml

PhysX(wiki en  中文physx wiki   physx wiki2)是nVidia公司一款跨平臺實時物理引擎,可以使用硬件(GPU、PPU: Physics Processing Unit, 物理處理器)加速git

支持剛體(rigid bodies)、軟體(soft bodies)、流體(fluids)、面料(cloths)、力場(force fields)等github

目前已在github上開源,有3個開源項目:api

PhysX3.3(私有庫):其中集成了Apex1.3.4架構

PhysX3.4公有庫:其中集成了Apex1.4,UE4.22集成的是該版本  源代碼路徑:Engine\Source\ThirdParty\PhysX3   運行時庫:Engine\Binaries\ThirdParty\PhysX3併發

                                     ApexDestruction:Engine\Plugins\Runtime\ApexDestructionide

                                     NvCloth:Engine\Source\ThirdParty\PhysX3\NvCloth工具

                                     Blast:Engine\Plugins\Experimental\BlastPlugin\Source\ThirdParty性能

PhysX(公有庫):最新版本爲4.1flex

 

== 以PhysX3爲例,說明不一樣版本dll的區別==

PhysX3DEBUG_x64.dll  // Debug版本

PhysX3CHECKED_x64.dll   // 宏斷言版本

PhysX3PROFILE_x64.dll  // 性能數據收集功能版本

PhysX3_x64.dll    // Release版本

 

獲取nVidia Gameworks私有github庫方法,大體步驟以下:

1. 註冊NVIDIA Developer開發者帳號(不是有NVIDIA帳號就能直接登陸的,必須是開發者帳號)

2.贊成最終用戶許可協議(EULA),並在最後把本身的GitHub用戶名輸入。

3. 在一段時間後,會收到github上NvidiaGameWorksAdmin拉你入NVIDIAGameWorks組的郵件。

4. 加入NVIDIAGameWorks後,會收到NVIDIA GameWorks用github郵箱發的郵件,告訴你已經把你拉入GameWorks_EULA_Access Team,並被賦予「Pull」權限。

5. 訪問https://github.com/NVIDIAGameWorks,這個時候就能看見NvCloth、Blast、Flex、Flow等私有庫。

 

在UE3中使用PhysX(udn  en  中文

① UE3中Pawn行走時的碰撞檢測、重力、武器射擊、流體(FluidSurfaceActor)的模擬是本身實現的

② 人物死亡,調用SetPawnRBChannels(TRUE)開啓布娃娃系統(ragdoll),而且將SetPhysics(PHYS_RigidBody),則會使用Pawn的PhysicsAsset數據進行PhysX物理模擬

③ 載具使用是PhysX物理模擬  (udn 設置載具   載具系統技術指南

④ 從RigidBodyBase派生的Actor(如:RB_ConstraintActor、RB_PrismaticActor)開啓模擬後,會進行PhysX物理模擬

⑤ 破壞(FracturedStaticMesh)、軟體會使用PhysX進行物理模擬

 

在UE4中使用PhysX(en  中文

 

Apex

Apexphysx wiki)在PhysX之上開發一套跨平臺SDK,用於製做和運行復雜的物理數據(如帶破壞模型、面料等)

Apex1.3.4(隨PhysX3.3)和Apex1.4(隨PhysX3.4)已開源,具體文檔詳見:NVIDIA(R) APEX(TM) SDK Documentation

1.4版本以後,nVidia放棄了Apex,併發布了一些新開源項目NvCloth、Blast、Flow(私有庫)來替換Apex中各個組件

Apex的發佈記錄:NVIDIA(R) APEX(TM) SDK Release Notes

Apex的架構以下:

注1:Authoring爲製做物理資源的組件集合,Run-time爲運行物理資源的組件集合

注2:綠色部分爲nVidia提供的物理組件工具集

Apex包括以下組件模塊:

APEX Clothing(面料) --> NvClothdocs   私有庫 github
APEX Destruction(破壞) --> Blastapi docs    authoring docs  私有庫 github
APEX Particles(粒子) --> Flowdocs  私有庫  github
APEX Turbulence(湍流)
APEX ForceField(力場)
APEX Vegetation (植被 開發已暫停)

 

在UE3中使用Apex

APEX Framework(udn en  中文

布料:APEX Clothing in UE3(udn  en  中文) 

破壞:APEX Destruction in UE3(udn  en  中文

 

在UE4中使用Apex (en  中文

 

FleX

FleXphysx wiki)是GPU加速基於粒子模型的物理模擬庫,其源碼也在Github上開源(私有庫)

支持剛體(rigid bodies)、變形體(deformable bodies)、軟體(soft bodies)、流體(fluids)、面料(cloths)、氣體(gases)等

FleX Documentation

FleX UE4 Plugin Documentation

 

nVidia Gameworks documentation simulation中列出了全部物理相關的SDK組件

GameWorks PhysX Overview中介紹了最新的PhysX及基於PhysX的組件 

 

nVidia Gameworks Download Center中提供了PhysX相關的軟件下載(須要登陸nVidia開發者帳號),以下爲PhysX SDK3.4.0的下載內容:

3D Studio Max DCC plug-in for PhysX:PhysX的3Ds Max插件

Maya DCC plug-in for PhysX :PhysX的Maya插件

注:① DCC爲Digital Content Creation簡稱  ② DCC plug-in for PhysX

PhysX Visual Debugger(PVD):PhysX的可視化調試軟件。經過與被調試的PhysX程序創建鏈接,實時地將其物理元素可視化到PVD中

PhysX Lab:爲APEX Destruction(破壞)和APEX Particles(粒子)製做數據的工具

 

擴展

nVidia Developer站內搜索

nVidia Gameworks youtube頻道

NVIDIA GameWorks and UE4 

NvPhysX/UnrealEngine  github 

百度百科 PhysX 

相關文章
相關標籤/搜索