什么是PhysX
编辑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调到最低级别。
PPU
甲物理处理器(PPU)是专门设计的,以减轻在CPU上的计算负担,特别是涉及物理计算的处理器。PhysXPPU由华硕、BFGTechnologies、戴尔和ELSATechnology以PCI或PCIe卡的形式提供给消费者。
从PhysXSDK2.8.3版开始,不再支持PPU卡,并且不再生产PPU卡。由Ageia设计的PhysXPPU独立卡的最后一个版本具有与专用9800GTX大致相同的PhysX性能。
GPU
在Nvidia收购Ageia之后,PhysX的开发不再使用PPU扩展卡,而是专注于现代GPU的GPGPU功能。
现代GPU在操作和显示计算机图形方面非常有效,其高度并行的结构使它们在使用PhysX加速物理模拟方面比通用CPU更有效。
任何支持CUDA的GeForce显卡(8系列或更新的GPU,至少有32个内核和至少256MB专用显存)都可以利用PhysX,而无需安装专用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的软件包括:
- 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。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/128743/