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中Pawn行走時的碰撞檢測、重力、武器射擊、流體(FluidSurfaceActor)的模擬是本身實現的
② 人物死亡,調用SetPawnRBChannels(TRUE)開啓布娃娃系統(ragdoll),而且將SetPhysics(PHYS_RigidBody),則會使用Pawn的PhysicsAsset數據進行PhysX物理模擬
③ 載具使用是PhysX物理模擬 (udn 設置載具 載具系統技術指南)
④ 從RigidBodyBase派生的Actor(如:RB_ConstraintActor、RB_PrismaticActor)開啓模擬後,會進行PhysX物理模擬
⑤ 破壞(FracturedStaticMesh)、軟體會使用PhysX進行物理模擬
Apex
Apex(physx 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(面料) --> NvCloth(docs 私有庫 github)
APEX Destruction(破壞) --> Blast(api docs authoring docs 私有庫 github)
APEX Particles(粒子) --> Flow(docs 私有庫 github)
APEX Turbulence(湍流)
APEX ForceField(力場)
APEX Vegetation (植被 開發已暫停)
在UE3中使用Apex
布料:APEX Clothing in UE3(udn en 中文)
破壞:APEX Destruction in UE3(udn en 中文)
FleX
FleX(physx 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(粒子)製做數據的工具
擴展