正在此时,OpenCL诞生了。苹果提出OpenCL的初衷是为Mac OS X提供GPU通用计算加速支持。而在进入Khronos Group体系后,有了Intel、AMD、NVIDIA等巨头的加入,最终成型的OpenCL标准已经不仅限于GPU加速,而是可以利用GPU、CPU乃至各种架构协处理器芯片的计算能力,进行各种用途的计算应用。显然,物理加速也不会排除在外。
日前,AMD就展示了他们基于OpenCL,和多个企业、阵营合作发展开放式游戏物理加速的计划:
首先是Pixelux。这家2004年成立于瑞士的小公司并不知名。他们开发的“Digital Molecular Matter”(DMM)就是一款物理引擎中间件,曾应用在乔治卢卡斯的电影特效制作当中。去年,卢卡斯公司的《星球大战:原力释放》是首款使用DMM引擎的游戏作品,近期Pixelux还推出了Maya软件的DMM引擎插件。在同AMD展开合作后,该公司将把DMM引擎引入OpenCL,使用CPU+GPU发展物理加速。
再来是Bullet,这是一款跨平台的开源物理引擎。根据游戏开发者杂志的统计,目前全球游戏开发者当中,使用NVIDIA PhysX引擎的占到26.8%,Intel Havok引擎占22.7%,而第三名就是占10.3%的Bullet。AMD目前正在联合一众开发人员,将Bullet开源物理引擎库“翻译”为OpenCL格式。
从下面这张展示文档截图中就可以看到,AMD的“开放物理”计划以OpenCL为核心,在其基础上引申出Pixelux、Bullet和Havok(基于OpenCL的GPU加速布料模拟),扩展OpenCL和DirectCompute技术。根据目前的这些计划,该方案应当不仅限于AMD平台,而是在OpenCL的框架内,支持各厂商的硬件进行物理加速,这应该就是其“开放物理”的定义。另外,AMD的计划也是“目前唯一提交到Khronos Group的GPU + CPU通用加速物理解决方案”。