让3D画面更真实 物理处理揭秘
2009-12-21可乐D
可乐D
不少玩家朋友发现,在一些新出的游戏中都支持物理处理加速。而我们也了解到,在许多未来即将推出的3D游戏中也将支持物理处理加速。那么,到底什么是物理处理呢?为什么3D游戏常常需要对物理处理进行加速呢?
什么是物理处理
简单地说,物理处理就是借助于物理学原理,通过计算机的模拟处理,让游戏或应用软件中物理现象表现出符合真实情况的计算,这是一种让画面更加真实的视觉处理技术。
这是概述性的话,新手理解起来可能比较抽象,为了方便理解,我们结合日常生活中物理事件来做一个解析:
一个小孩用石头狠狠地砸向邻居家的玻璃窗,玻璃碎了,碎片四溅,玻璃碎片反弹到小孩的衣服上,衣服被划破了。在这个过程中包含了很多的物理事件,比如石头与玻璃的碰撞玻璃破碎,碎片划破衣服等。同理,如果想在游戏中真实地重现这样的过程,让画面更加真实,那么计算机就需要对物理过程进行模拟。
常见的物理处理有哪些
在游戏中加入物理效果,则可大大增强游戏的可玩性。比如可以扔石头砸死怪物,石头抛物线处理和撞击过程:木箱子被砸碎每次形态都不一样,并伴随大量木片散落,射出去的箭矢会由于重力的作用而下坠,等等。实际上,在许多大家熟知的《极品飞车》、《超级玛丽》,《半条命2》等游戏中都有大量类似的物理处理。
为何要对物理处理进行加速
一款精彩而充满互动性的游戏需要丰富而真实的物理效果,但是由于处理器运算能力是有限的,无法对所有的物理过程进行处理,而无法将最真实的画面呈现出来。
比如我们想在游戏中表现真实的烟雾,最好的方式是计算每一个烟尘粒子的运动状况,最后总结起来形成烟尘,但由于处理器的浮点运算能力有限,而且在游戏中还要进行其他计算,对于烟尘这种由上万个粒子的个体行为组成的物理系统,处理器资源就会严重告罄。
这时,计算机就需要一种能够适合大规模并行计算,或者专为物理处理设计的处理设备,以满足物理计算越来越复杂的需求,这就是物理处理加速。
哪些硬件可以进行物理处理加速
实际上,物理加速处理是一种基于硬件的软件模拟运算,在很早以前有专门的物理加速卡来进行计算,但是现在NVIDIAAMD-ATI等显卡已经在GPU中加入了物理处理引擎。目前,主要物理处理引擎API有NVIDIA的PhysX和lnlte的Havok两种。
★真正的物理“加速”:PhysX
NVIDIA的PhysX物理加速技术是目前真正可以称得上是“加速”的物理处理技术。PhysX的优点在于可以使用NVIDIA主流的GeForce 9系列显卡进行物理加速计算。由于GPU在浮点运算方面的性能超出CPU,PhysX利用这一优势,将GPU强大的浮点运算性能用于物理计算,极大提升了物理计算的性能。
小提示:
PhvsX在保证强大计算性能的前提下,有效提高物理加速的易用性,用户只需安装额外驱动就可以轻松使用物理加速技术了。实际上,除了GeForce 9,安装了新驱动后GeForce 8系列显卡也可以使用PhysX技术。
★支持更加广泛的物理加速:Havok
相比NVlDlA的PhysX,InteI的Havok更为成熟,支持也更为广泛。但是因为Intel自身的独立显卡性能较弱,而使得Havok的弱点也非常明显——没有强力GPU来提供支持。不过好在AMD-ATI已经宣布支持Havek,并且有可能仿照NVIDIA在未来的Radeon系列显卡中加入对Havok的计算支持。对于消费者来说,这无疑是一件好事。
小提示:
H8VOk成立于1998年,是一个专门为游戏开发商提供物理仿真技术的公司。InteI于2007年9月收购了Havok及旗下所有物理加速技术包括游戏版权。
相关资料:常见的物理处理
碰撞计算:在碰撞计算中,对两个物体的接触和受力情况进行全面分析,最后得出符合真实的碰撞表现。这种物理处理在球类游戏中最常见,如《FIFA》、《足球经理》等。
爆炸计算:爆炸物体的气流冲击、碎片运动、对周围物体的影响都将纳入计算范围。几乎在所有战争类或射击类游戏中都需要这种物理处理,比如大家熟悉的《反恐精英》、《孤岛惊魂》等。
毛发模拟计算:最常见的如美女的长发、怪物身上的毛发等,如果想让飘扬的长毛足够真实,物理计算最好能精确到每一根毛发的状态,很显然这将会耗费大量的浮点资源。
流体计算:比如流水、油等材料的物理运动计算。比如从高处将一杯水倒下,此时水在空中的形态、运动情况,跌落到地面时的撞击情况,水花、流动方向、扩散情况等都属于流体计算的内容。
粒子计算:这也是物理计算中的重要内容,比如要真实地模拟火焰、烟尘效果,就需要大量的粒子计算,这在绝大多数游戏中都会碰到。
柔性物体计算:布料运动计算是这一计算中最常见的一种,这也是非常难的物理计算,因为布料上每一个点的运动和状态都有必要详细地进行计算,否则难以呈现布料轻盈、柔软而且洒脱的效果。