在PhysX设计之初,它是只支持CPU和PPU物理加速的,不过在被收购之后,NVIDIA通过CUDA架构将其重新编译,并打包进NVIDIA的驱动程序中进行发布。尽管NVIDIA表示今后将大力发展GPU物理加速,但这并不表示PhysX引擎排斥CPU或者CPU+GPU的综合解决方案。
通过CUDA通用接口,PhysX引擎将NVIDIA GPU中的Thread Scheduler(线程管理器)模拟成Control Engine(控制引擎CE),而Streaming Processors来模拟Vector Processing Engine(矢量处理引擎,VPE),其中CE控制引擎负责任务的指派,相当于PhysX中的主管机构,而真正的物理运算任务则是由VPE矢量引擎来完成,最后通过Data Movement Engine(数据移动引擎DME)输出。通过HAL翻译层来实现软、固质体动力(Soft or Rigid Body Dynamics)、通用碰撞侦测(Universal Collision Detection)、有限元素分析(Finite Element Analysis)、流体动力(Fluid Dynamics)、毛发模拟(Hair Simulation)以及更先进的布料模拟(Cloth Simulation)、自然模拟(Natural Motion)等在内新颖技术。
多线程PhysX引擎专为大型并行环境中的硬件加速而设计。AGEIA的PhysX处理器只有10个内核,而现在NVIDIA的GPU则具有多达216-240个内核。因此,NVIDIA的这些GPU非常适合利用PhysX软件。最重要的是,由于游戏物理学具有高度并行和互动的特性,因此GPU架构自然比CPU更加适合这种计算工作。借助于当今或下一代GPU(图像处理器),PhysX将为游戏玩家创造更多价值。
同时,NVIDIA为游戏开发人员提供了的PhysX SDK(软件开发工具包),使这些游戏开发人员能够开发出具备下一代物理学特色及硬件加速性能的游戏。该软件不仅具有极佳的功能性、稳定性、性能以及可扩展性,而且几乎所有的主要开发工具均支持本软件。值得一提的是,该套件还实现了微软Xbox 360与索尼PlayStaton 3之间的跨平台支持。而且,NVIDIA声称还将不断地在PhysX SDK新版本中加入新特性,令引擎的使用不断优化。
想知道一个梨子的味道,我们就要亲自去尝一尝。同样的道理,想知道PhysX到底是否真的如官方所说那么好,我们也要先看看它在实际游戏中到底能做到什么。通过查阅之前诸多的游戏资料,笔者发现通过对PhysX技术的支持,NVIDIA的GPU更能为我们实现将以下7种效果:
1. 尘土飞扬,碎渣四溅的大量粒子运动所形成的爆炸效果;
2. 设计结构复杂的各种几何模型,以完成更加逼真的物理运动和交互动作;
3. 环绕在运动中的物体周围的大量翻腾涌动的浓烟和尘雾效果;
4. 逼真细腻的河水、泥石流、岩浆等流体运动模拟;
5. 衣物、草丛、树叶之类软性物体能随风自然飘动效果;
6. 衣物,旗帜等软性物体因外界各种影响做出不同的撕裂或变形效果;
7. 刚性物体之间相互碰撞的运动计算,一定力度之下形成拟真的成千上万个碎片运动。