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集成的是该版本  源代码路径:Engine\Source\ThirdParty\PhysX3   运行时库:Engine\Binaries\ThirdParty\PhysX3

ApexDestruction:Engine\Plugins\Runtime\ApexDestruction

NvCloth:Engine\Source\ThirdParty\PhysX3\NvCloth

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

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

nVidia的物理系统的更多相关文章

  1. Atitit 游戏引擎---物理系统(1)------爆炸效果

    Atitit 游戏引擎---物理系统(1)------爆炸效果 1.1. 动画框架的来源flex,jqueryuijs,anim , cocos2d 1 1.2. Jqueryui的特效库 1 1.3 ...

  2. 1.物理系统PhysicsWorld,RayCast

     1 3.0物理系统PhysicsWorld T07PhysicsWorld.h #ifndef __T07PhysicsWorld_H__ #define __T07PhysicsWorld_H ...

  3. 物理系统迁移虚拟化P2V技术

    企业搭建虚拟化平台之后的第一件事肯定是将现有的服务器应用业务转移到虚拟服务器上,这就是虚拟化整合服务器的第一步,也是虚拟化程序的基础功能之一:P2V的转化功能. AD:   企业搭建虚拟化平台之后的第 ...

  4. Physics(物理系统)

    物理: Physics            Box2d   Unity 内置NVDIA PhysX物理引擎 刚体:要使一个物体在物理控制下,简单添加一个刚体给它.这时,物体将受重力影响,并可以与其他 ...

  5. Unity物理系统的触发器

    如何触发触发器函数? 触发器中相互的,当其中一个是触发器,两个物体进入碰撞,双方的触发器函数都会触发. 两个碰撞盒穿入? 解决办法:给其中一个添加刚体 触发器的物理配置 以上是个人理解,看过API之后 ...

  6. Unity3D学习笔记(四):物理系统碰撞和预制体

    Rigidbody(刚体组件):加了此组件游戏物体就变成刚体了 ----Mass(质量,单位kg):重力G = 质量m * 重力加速度g(g=9.81 m/s^2) --------冲量守恒定理 动量 ...

  7. 【腾讯GAD暑期训练营游戏程序班】游戏中的物理系统作业说明文档

    一.需求分析• 添加一辆新NPC车,可以让其与主角车碰撞:• 添加一些新物件,能够与车互动,在其触发事件将其移除:• 添加一些无法撞动的事件:• 添加NPC车的自动移动逻辑:• 在课上赛车的示例上添加 ...

  8. Ubuntu系统---安NVIDIA 驱动后 CUDA+cuDNN 安装

    Ubuntu系统---安NVIDIA 驱动后  CUDA+cuDNN 安装 --------------------------------------------@20190726--------- ...

  9. Ubuntu系统---NVIDIA 驱动安装

    Ubuntu系统---NVIDIA 驱动安装 第一次安装“NVIDIA 驱动”,小小的激动,因为终于可以玩GPU了.预想一块GPU,盼望太久,差点放弃,感谢J姐让我捡个漏.但是,第一次新的试错过程,网 ...

随机推荐

  1. MongoDB - 启动&连接数据库

    1> 启动数据库 1.1> 依次添加如下目录: 1.1.1> mongodb-space 1.1.2> mongodb-space/conf 1.1.3> mongodb ...

  2. linux系统防火墙关闭

    临时关闭防火墙 #systemctl  stop  firewalld 永久关闭服务端防火墙 #systemctl  disabled   firewalld getenforce   查询状态 临时 ...

  3. Docker 在容器中部署静态网站

    Docker 在容器中部署静态网站 在容器中部署静态网站 设置容器的端口映射 run -P``--publish-all=true|false:容器暴露的所有端口进行映射 -p``--publish= ...

  4. C++:100阶乘数组输出

    #include <iostream> using namespace std; int main(){ int i =1; int a[2048]={0}; while(i !=101) ...

  5. python入门:模拟简单用户登录(自写)

    #!/usr/bin/env python # -*- coding: utf-8 -*- #模拟简单用户登录(自写) import getpass a = raw_input("Pleas ...

  6. 【Maven】 (请使用 -source 8 或更高版本以启用 lambda 表达式)

    在使用mvn install编译maven项目时,报了 “ (请使用 -source 8 或更高版本以启用 lambda 表达式)”错误,是因为设置的maven默认jdk编译版本太低的问题. 可使用两 ...

  7. 反爬虫之搭建IP代理池

    反爬虫之搭建IP代理池 听说你又被封 ip 了,你要学会伪装好自己,这次说说伪装你的头部.可惜加了header请求头,加了cookie 还是被限制爬取了.这时就得祭出IP代理池!!! 下面就是requ ...

  8. sql 单表/多表查询去除重复记录

    单表distinct 多表group by group by 必须放在 order by 和 limit之前,不然会报错 *************************************** ...

  9. 树莓派开发板入门学习笔记1:[转]资料收集及树莓派系统在Ubuntu安装

    参考教程(微雪课堂):http://www.waveshare.net/study/portal.php 树莓派实验室: http://shumeipai.nxez.com/2014/12/21/us ...

  10. __vet_atags

    参考:atags--__vet_atags标签    arch/arm/include/asm/setup.h /* * linux/include/asm/setup.h * * Copyright ...