zoukankan      html  css  js  c++  java
  • nVidia的物理系统

    PhysX

    PhysX(wiki en  中文physx wiki   physx wiki2)是nVidia公司一款跨平台实时物理引擎,可使用硬件(GPU、PPU: Physics Processing Unit, 物理处理器)加速

    支持刚体(rigid bodies)、软体(soft bodies)、流体(fluids)、面料(cloths)、力场(force fields)等

    目前已在github上开源,有3个开源项目:

    PhysX3.3(私有库):其中集成了Apex1.3.4

    PhysX3.4公有库:其中集成了Apex1.4,UE4.22集成的是该版本  源代码路径:EngineSourceThirdPartyPhysX3   运行时库:EngineBinariesThirdPartyPhysX3

                                         ApexDestruction:EnginePluginsRuntimeApexDestruction

                                         NvCloth:EngineSourceThirdPartyPhysX3NvCloth

                                         Blast:EnginePluginsExperimentalBlastPluginSourceThirdParty

    PhysX(公有库):最新版本为4.1

    == 以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 

  • 相关阅读:
    Saltstack安装及入门
    网络-flannel及calico
    vxlan 协议
    5G系统架构
    5G及移动边缘计算(MEC)学习笔记(3)
    linux 环境变量
    Python 包管理工具
    linux 后台运行程序
    训练测试样本划分
    kmeans 聚类 k 值优化
  • 原文地址:https://www.cnblogs.com/kekec/p/10819859.html
Copyright © 2011-2022 走看看