三国之争谁主沉浮:谈GPU物理加速之路
Havok的努力终于在2006年见到了成效,2006年Havok发布了基于GPU平台的物理加速引擎Havok FX,紧接着与同年7月份又发布了Havok 4.0 SDK开发套件,加入了新的Havok Behavior和Havok FX组件。Havok Behavior能为游戏加入基于物理特性的互动角色行为以增加游戏真实性。Havok FX则可利用ATI和NVIDIA GPU强大的图形处理能力,用于物理计算并获得更真实的游戏体验。并且直接支持索尼PS3以及微软操作系统。
Havok 4.0开发套件的发布正好符合NVIDIA与ATI的胃口,于是NVIDIA与ATI纷纷与Havok建立了合作伙伴的关系,可以说Havok 4.0开发套件的发布不仅仅让Havok公司进入了一个崭新的时代,也让NVIDIA和ATI兴奋不已。从此,GPU物理加速时代到来,我们姑且称这次的GPU物理加速为1.0时代。
但是,由于当时显卡的运算能力还不是特别强大,再加上引擎和显卡架构的原因,想要在GPU上实现Havok物理加速,必须要单独使用一块显卡来专门处理物理运算。当时,正是Geforce 7与X1000系列显卡流行的年代,NVIDIA和ATI也纷纷利用了这种方式在GPU上实现了物理加速技术。
虽然同样采用了Havok FX引擎,并且都是双卡互联形式实现,但是两家的解决方案却大相径庭:NVIDIA是通过DirectX API来实现物理加速,而AMD-ATI则是通过数据并行计算架构提取(Data Parallel Processing Architecture Abstraction )直接与Havok FX引擎交换数据,让Havok FX引擎直接与GPU沟通,而不需要通过Direct3D和OpenGL API,AMD-ATI著名的Close To Metal(CTM)接口就是在这个时期提出的。简单的理解就是,AMD-ATI的实现方式是“GPGPU”通用计算的形式来做物理运算,而NVIDIA是让显卡通过DirectX以“GPU”的工作方式在做物理加速(其实也是GPGPU应用范畴)。