首页 > 范文大全 > 正文

物理处理加速面面看

开篇:润墨网以专业的文秘视角,为您筛选了一篇物理处理加速面面看范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

最近不少即将推出的游戏都加入了支持Havok物理加速引擎或PhysX物理加速的说明5。这些说明是什么意思呢?什么是物理处理,物理处理加速又是什么?不同的物理处理加速有什么差别吗?

给你最真实的感受―物理处理

在弄清楚什么是物理处理加速前,必须先了解什么是物理处理――当你拿起砖头狠狠砸向玻璃时,玻璃碎了,碎片四溅。如果玻璃碎片划到了你的衣服,那么布料的的形态也有一定的改变,甚至直接被划破。这个过程就包含了众多的物理事实。比如用力砸玻璃、玻璃的破碎、爆裂过程等。同理,如果想在游戏中体验类似砸玻璃的过程,必定也需要模拟这样的物理过程。对计算机来说,借助于物理学,通过计算机处理,在游戏或应用软件中表现出符合真实物理情况的处理的过程,就叫物理处理,它能使画面更加真实。

必须承认的是,物理处理仅在游戏的运行速度或者某些特定方面针对物理事实做出了特别优化。比如《超级玛丽》中的管道工,一定要加速才能跳过某些非常宽的“坑”。我们熟知的《半条命2》加入了一些诸如碰撞、破碎和重力效果的物理处理。这些物理效果大大加强了游戏的可玩性,比如可以用石头砸死怪物;敲碎的木箱每次形态都不一样,并伴随大量木片散落;射出去的箭矢会随着重力作用而下坠。

游戏加速我说了算―物理处理加速

《半条命2》的物理处理虽然很惊艳,但游戏中打不破的玻璃永远只有裂纹;敲不烂的墙壁也仅仅出现一个小坑,而如爆炸、烟尘、火焰等物理效果的处理也不尽如人意;正面看起来不错的火焰,侧面看只是没有厚度的薄片;植物也不会随着环境的变化而变化。如此种种现象正是由于CPU的计算能力有限,无法将最真实的画面呈现出来的表现。由于CPU的计算能力有限,无法计算太多的物理资源,因此我们需要新技术辅助甚至全盘处理物理效果,这就是物理处理加速。

烟尘是由固体小颗粒在空气中集聚形成的一种物理状态。每一个小颗粒都会同周围的颗粒碰撞,并不断运动和扩散。如果想在游戏中表现真实的烟雾,最好的方式是计算每一个烟尘粒子的运动状况,最后总结起来形成烟尘。但对于CPU来说,其本身浮点运算能力有限,游戏中还要处理如AI计算、数据统筹和大量的游戏数值计算等,计算能力已经捉襟见肘。简单的物理处理还好说,一旦遇到了如烟尘这种由上万个粒子的个体行为组成的物理系统的计算时,CPU资源就会严重告罄,根本不可能应付和3D处理技术同样复杂而庞大的物理效果。

因此,在CPU性能不足的情况下,有必要采用统一的API(应用程序接口),并借助其它适合大规模并行计算,或者专为物理处理设计的处理设备,来满足物理计算越来越复杂的需求,这就是物理处理加速的本质。一款精彩而充满互动性的游戏需要更为丰富而真实的物理效果。当主角穿行树丛,树丛会被人物拨开,然后反弹回去,草地也随风自然摆动,主角身上的布料自然地飘扬。这些看似细小的物理处理部分,却深刻影响着游戏的真实性。

物理处理加速的两大阵营―PhysX和Havok

正如3D处理技术目前有OpenGL和Direct X两个成熟的API支持,物理加速技术也需要稳定而支持广泛的API。目前比较流行的物理处理API有NVIDIA的PhysX和英特尔的Havok,两者不能相互兼容。

NVIDIA的PhysX物理加速技术是目前真正可以称得上是“加速”的物理处理技术。PhysX的优点在于可以使用NVIDIA主流的GeForce 9系列显卡进行物理加速计算。不过目前只有《虚幻竞技场3》等极少数游戏支持PhysX。

一般说来,GPU在浮点运算方面的性能超出CPU十几倍。PhysX正是利用了这一优势,将GPU强大的浮点运算性能用于物理计算,极大提升了物理计算的性能。并且,PhysX在保证强大计算性能的前提下,有效提高物理加速的易用性,用户只需安装额外驱动(后期甚至直接整合在显卡驱动中),就可以轻松使用物理加速技术。不过在一些对3D性能要求很高的游戏中出现物理计算和3D计算抢资源的情况,反倒降低了游戏的流畅程度。这也是PhysX未来改进的一个重要方面。

Havok物理加速引擎是Havok公司的自有API。Havok成立于1998年,是一个专门为游戏开发商提供物理仿真技术的公司。英特尔公司于2007年9月收购了Ha v o k 及旗下所有物理加速技术包括游戏版权。相比NVIDIA的PhysX,英特尔的Havok更为成熟,支持更为广泛。但是Havok的弱点也非常明显,它目前暂时没有类似GeForce 9系列显卡那样强力的处理设备的支持。不过,AMD公司不久之前也宣布支持Havok,并且有可能仿照NVIDIA在未来的Radeon系列显卡中加入对Havok的计算支持。

常见的物理处理

流体计算:流体计算注重诸如油、水等材料的物理运动计算。比如从高处将一杯水到下,此时水在空中的形态、运动情况,跌落到地面时的撞击情况,水花、流动方向、扩散情况等都属于流体计算的内容。

粒子计算:这是一个内容丰富的计算项目,也是物理计算中的重要内容,包含了对火焰、烟尘等效果的计算。

毛发模拟计算:毛茸茸的玩具、怪物身上的毛发、美女瀑布般的长发等都属于这个计算项目。这类计算也需要大量的浮点运算资源。特别是毛发的计算,最好涉及到每一根毛发的物理状态,这样才足够真实。布料模拟计算:布料这种软性物体的计算也是非常困难的。布料上每一个点的运动和状态都有必要详细地计算出来,否则难以呈现布料轻盈、柔软而且洒脱的效果。

碰撞计算:玩过足球游戏的人都知道游戏中的碰撞是多么糟糕了,僵硬而虚假的碰撞让游戏真实感大打折扣。在碰撞计算中,对于两个物体的接触和受力情况进行全面分析,最后得出符合真实的碰撞表现。爆炸计算:爆炸物体的气流冲击、碎片运动、对周围物体的影响都将纳入计算范围。

本期我们学到了什么?

1.物理处理是借助于物理学,通过计算机处理,在游戏或应用软件中表现出符合真实物理情况的计算。

2.因为CPU的计算能力不够,无法计算太多的物理资源,因此我们只能采用新技术辅助甚至全盘接手处理物理效果,这就是物理处理加速。

3.目前比较流行的物理处理API有NVIDIA公司的PhysX和英特尔公司的Havok。