下图是PhysX的基本架构,我们可以看到,游戏设计者处在架构的最上层,他们会在游戏设计中提出各种物理运算的要求,而PhysX则在SDK中提供了这些效果的实现方式,让游戏程序师可以轻松的实现这些效果,最后通过“硬件提取层模块”连接各种可以支持的硬件。
支持的硬件包括游戏机平台的处理器、x86架构的处理器、已经停产的PPU也能支持,当然还有NVIDIA的GPU,也就是说,PhysX可以实现的方式很多。
PhysX可以支持多种高级物理运算特效,那么究竟用什么载体去实施这些运算能达到最佳的效率呢?答案是GPU!
在被收购之前,PhysX通过专门的物理加速卡PPU去实现,这种实现方式在效率上没有任何问题,但在成本考量就有些失算了,购买单独的PPU加速卡需要投资的价格相对不菲(起码和一款中端显卡相当)。而且NVIDIA收购PhysX之后,PPU将不再有后继产品推出。
『PhysX物理运算的硬件实现方式很多,但GPU是最佳选择』
那么处理器能不能肩负起这个任务呢?当然是不可以了,如果CPU的运算效能有如此的强大,那么现今的游戏早已经在物理运算方面有大的提升和斩获了。
下图是四核处理器与GTX280显卡的物理运算情况对比,单纯计算核心数量上,四核处理器有四个并行的计算单元,而GTX280拥有240个这样的运算单元,在浮点能力上也大大超越CPU,对于物理运算这类需要大量并行计算的项目上,又是GPU发挥优势的机会,在大部分物理运算项目上,GTX280都能领先四核处理器十倍以上的性能。
上图是NVIDIA在物理运算方面的优势体现,NVIDIA是目前唯一能利用GPU硬件支持PhysX物理运算的厂商,因此在运算效率和运行性能上将大幅度领先仅采用CPU运算的竞争对手。