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集成的是该版本 源代码路径: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中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(粒子)制作数据的工具
扩展
nVidia的物理系统的更多相关文章
- Atitit 游戏引擎---物理系统(1)------爆炸效果
Atitit 游戏引擎---物理系统(1)------爆炸效果 1.1. 动画框架的来源flex,jqueryuijs,anim , cocos2d 1 1.2. Jqueryui的特效库 1 1.3 ...
- 1.物理系统PhysicsWorld,RayCast
1 3.0物理系统PhysicsWorld T07PhysicsWorld.h #ifndef __T07PhysicsWorld_H__ #define __T07PhysicsWorld_H ...
- 物理系统迁移虚拟化P2V技术
企业搭建虚拟化平台之后的第一件事肯定是将现有的服务器应用业务转移到虚拟服务器上,这就是虚拟化整合服务器的第一步,也是虚拟化程序的基础功能之一:P2V的转化功能. AD: 企业搭建虚拟化平台之后的第 ...
- Physics(物理系统)
物理: Physics Box2d Unity 内置NVDIA PhysX物理引擎 刚体:要使一个物体在物理控制下,简单添加一个刚体给它.这时,物体将受重力影响,并可以与其他 ...
- Unity物理系统的触发器
如何触发触发器函数? 触发器中相互的,当其中一个是触发器,两个物体进入碰撞,双方的触发器函数都会触发. 两个碰撞盒穿入? 解决办法:给其中一个添加刚体 触发器的物理配置 以上是个人理解,看过API之后 ...
- Unity3D学习笔记(四):物理系统碰撞和预制体
Rigidbody(刚体组件):加了此组件游戏物体就变成刚体了 ----Mass(质量,单位kg):重力G = 质量m * 重力加速度g(g=9.81 m/s^2) --------冲量守恒定理 动量 ...
- 【腾讯GAD暑期训练营游戏程序班】游戏中的物理系统作业说明文档
一.需求分析• 添加一辆新NPC车,可以让其与主角车碰撞:• 添加一些新物件,能够与车互动,在其触发事件将其移除:• 添加一些无法撞动的事件:• 添加NPC车的自动移动逻辑:• 在课上赛车的示例上添加 ...
- Ubuntu系统---安NVIDIA 驱动后 CUDA+cuDNN 安装
Ubuntu系统---安NVIDIA 驱动后 CUDA+cuDNN 安装 --------------------------------------------@20190726--------- ...
- Ubuntu系统---NVIDIA 驱动安装
Ubuntu系统---NVIDIA 驱动安装 第一次安装“NVIDIA 驱动”,小小的激动,因为终于可以玩GPU了.预想一块GPU,盼望太久,差点放弃,感谢J姐让我捡个漏.但是,第一次新的试错过程,网 ...
随机推荐
- mysql 主从数据校验
使用工具pt-table-checksum: /usr/bin/pt-table-checksum --user=root --password='mysqlpass' --host=127.0.0. ...
- jenkins 插件
- python处理excel总结
工作中,大家经常会使用excel去处理数据以及展示,但是对于部分工作我们可以借助程序帮忙实现,达到高效解决问题的效果,比如将接口返回的json解析并保存结果到excel中,按一定规律处理excel中的 ...
- 【android】安卓平台版本和API版本的对应关系
安卓平台版本和API版本对应关系
- stm32L0工程建立(HAL+IAR,无cubemx)
https://files.cnblogs.com/files/CodeWorkerLiMing/STM32HAL%E5%BA%93%E5%AD%A6%E4%B9%A0%E2%80%94%E5%B7% ...
- selenium2常用API介绍
我们模拟web操作都是基于元素来操作的,我们首先要先确定元素,然后这个元素下对应的方法就可以看WebElement的方法. 1.点击操作 WebElement button=driver.findEl ...
- 常用C/C++预处理指令详解
预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查.预处理命令以符号“#”开头. 常用的预处理指令包括: 宏定义:#define 文件包含:#include 条件编译:#i ...
- 如何将Python对象保存在本地文件中?
Python对象的永久存储 1.使用Python的pickle模块 import pickle class A: def __init__(self,name,a): self.name=name s ...
- luogu2761 软件补丁问题
状压最短路 #include <iostream> #include <cstring> #include <cstdio> #include <queue& ...
- 大数据学习——akka学习
架构图 重要类介绍 ActorSystem 在Akka中,ActorSystem是一个重量级的结构,他需要分配多个线程,所以在实际应用中,ActorSystem通常是一个单例对象,我们可以使用这个Ac ...