PhysX是Nvidia开发的开源实时物理引擎中间件SDK,作为NvidiaGameWorks软件套件的一部分。

最初,支持PhysX的视频游戏旨在通过PhysXPPU(由Ageia设计扩展卡)加速。然而,Ageia公司的收购Nvidia公司后,专用PhysX物理卡已经停产赞成的API中正在运行的CUDA-启用的GeForce图形处理器。在这两种情况下,硬件加速都允许从CPU卸载物理计算,从而允许它执行其他任务。

PhysX和其他中间件物理引擎用于当今的大多数视频游戏中,因为它们使游戏开发人员不必编写自己的代码来实现经典力学牛顿物理学),例如软体动力学

PhysX的特点

PhysX引擎和SDK可用于MicrosoftWindows、macOS、Linux、PlayStation3、PlayStation4、Xbox360、XboxOne、Wii、iOS和安卓。

PhysX是一个多线程物理模拟SDK。它支持刚体动力学、软体动力学(如布料模拟,包括撕裂和加压布料)、布娃娃和角色控制器、车辆动力学、粒子和体积流体模拟。

硬件加速

(PC)最上面的截图显示了在游戏设置中PhysX调到最高级别时,MafiaII中碎片是如何模拟的。底部屏幕截图显示了一个类似的场景,将PhysX调到最低级别。

顶点

NvidiaAPEX技术是围绕PhysXSDK构建的多平台可扩展动态框架。它于2010年8月在MafiaII中首次引入。Nvidia的APEX包括以下模块:APEXDestruction、APEXClothing、APEXParticles、APEXTurbulence、APEXForceField和之前于2011年暂停的APEXVegetation。]

从版本1.4.1APEXSDK已弃用。

英伟达Flex

FleX是一种基于粒子的实时视觉效果模拟技术。传统上,视觉效果是使用针对刚体、流体、服装等的专门解算器创建的元组合来制作的。由于FleX对所有对象类型使用统一的粒子表示,因此它可以实现不同模拟物质可以相互交互的新效果无缝地。这种统一的物理解算器是离线计算机图形世界的主要工具,其中广泛使用了AutodeskMaya的nCloth和Softimage的Lagoa等工具。FleX的目标是利用GPU的强大功能将这些离线应用程序的功能引入实时计算机图形中。

来自RealWorldTechnologies的批评

2010年7月5日,RealWorldTechnologies发布了对PhysX架构的分析。据此分析,当时PhysX应用中使用的大部分代码都是基于x87指令的,没有进行任何多线程优化。在CPU上运行PhysX代码时,这可能会导致性能显着下降。文章建议使用SSE指令重写PhysX可能会xxx减少CPUPhysX和GPUPhysX之间的性能差异。

在回应RealWorldTechnologies的分析时,PhysX的产品经理MikeSkolones表示SSE支持已被抛在后面,因为大多数游戏都是先为游戏机开发的,然后再移植到PC上。因此,即使很少或根本没有优化,现代计算机也比控制台更快更好地运行这些游戏。Nvidia的高级公关经理BryanDelRizzo解释说,CPUPhysX2.x已经提供了多线程,开发人员可以使用它。他还表示,PhysXSDK的第3版将引入自动多线程和SSE。

PhysXSDK3.0于2011年5月发布,代表了对SDK的重大改写,带来了改进,例如更高效的多线程和适用于所有支持平台的统一代码库。

PhysX的用法

电子游戏中的PhysX

PhysX技术被游戏引擎使用,例如UnrealEngine(版本3以后)、Unity、Gamebryo、Vision(版本6以后)、InstinctEngine、Panda3D、Diesel、Torque、HeroEngine和BigWorld。

作为少数主要的物理引擎之一,它被用在很多游戏中,比如巫师3:狂猎、Warframe、KillingFloor2、Fallout4、蝙蝠侠:阿卡姆骑士、无主之地2等。这些游戏大多使用CPU来处理物理模拟。

可选支持硬件加速PhysX的视频游戏通常包括附加效果,例如可撕布、动态烟雾或模拟粒子碎片。

PhysX

其他软件中的PhysX

其他支持PhysX的软件包括:

  • ActiveWorlds(AW),一个3D虚拟现实平台,其客户端在Windows上运行
  • AmazonLumberyard,由亚马逊开发的3D游戏开发引擎
  • Autodesk3dsMax、AutodeskMaya和AutodeskSoftimage,计算机动画套件
  • DarkBASICProfessional(带有DarkPHYSICS升级),一种针对游戏开发的编程语言
  • DXStudio,用于创建交互式3D图形的集成开发环境
  • Futuremark的3DMark06和Vantage基准测试工具
  • MicrosoftRoboticsStudio,用于机器人控制和模拟的环境
  • Nvidia的SuperSonicSled和RagingRapidsRide,技术演示
  • OGRE(通过NxOgre包装器),一个开源渲染引擎
  • 的物理抽象层,物理仿真API的抽象系统(它提供COLLADA和镰刀物理编辑器对的PhysX支持)
  • Rayfire,Autodesk3dsMax的插件,允许压裂和其他物理模拟
  • 物理引擎评估实验室,一种旨在评估、比较和基准物理引擎的工具。
  • EpicGames的UnrealEngine游戏开发软件。虚幻引擎4.26及更高版本已正式弃用PhysX。
  • UnityApS的Unity(游戏引擎)。Unity的面向数据的技术堆栈不使用PhysX。
0

点评

点赞

相关文章