维爱迪-动画创作家园 >> 动画资源 >> 其他教程 >> DirectX不是全部!3D游戏图形技术解析 |
3D游戏图形技术之五—物理效果(PhysX)(图20)
图20
● 动态逼真—物理效果的实现
3D游戏中“物理”指的是什么呢?简言之就是模拟真实世界中的物理定律,使得运动物体产生一些复杂的交互性干涉,从而改变形状、轨迹或状态的一种技术。比如:流体(水、烟、雾)、碰撞、变形、爆炸、毁坏、布料、碎片……物理技术虽然属于图形技术的一种,但所涉及到的运算并非是图形渲染,而是大量的并行计算,等结果算出来之后才会进行后续的渲染操作。(图21)
图21
这里为什么要强调GPU物理加速呢,因为CPU物理加速其实早就进入实际应用阶段,但由于CPU性能有限(或者说CPU并不擅长做物理运算),大多数游戏仅采用了少许简单的物理效果作为点缀,未能给玩家带来视觉上的震撼力,也就容易被大家所忽视。比如《半条命2》系列游戏都使用了物理技术,在击穿木板或爆炸时会有一定的破坏效果,但如果不特别指出的话您可能注意不到。(图22)
图22
● 物理引擎并不是只有PhysX一种,但只有PhysX支持GPU加速
除了CPU外,还有专用的PPU(即物理加速卡)来进行物理运算,但随着GPU进入DX10时代,并行架构的流处理器拥有比PPU和CPU更强大的浮点运算能力,GPU物理加速技术被提上日程。
终于,在NVIDIA收购Ageia公司之后,通过CUDA技术将PhysX物理引擎重新编译了一遍,使得GeForce 8以上的N卡都能够支持物理运算,通过大量的测试来看,即便是低端N卡的物理加速能力也要比专用的物理加速卡强,CPU跟它根本不是一个级别。
就拿最近比较热门的《蝙蝠侠:阿卡姆疯人院》这款游戏来说,是否开启PhysX有着天壤之别,PhysX能够让蝙蝠侠的披风更拉风、地洞中的雾气在人经过时产生互动、地面上的碎片和纸屑在打斗过程中飞舞、地板砖桌椅墙壁都有可能被打碎、布料和旗帜随风而动……(图23)
图23
物理引擎也不是只有PhysX一种,已经被Intel收购的Havok也提供了很不错的物理解决方案,但目前支持GPU加速的还只有PhysX这一种,由于GPU拥有很强的运算能力,因此PhysX引擎所实现的物理效果最为出色,但对显卡的要求也很高。
开启PhysX之后是十分消耗资源的,GTS250以下级别的显卡性能损失特别大,最好是能安装一块额外的显卡做专门的物理加速运算,而GTX260+以上级别的显卡则可以同时处理图形渲染和物理加速运算,能够保证不低于30帧的速度。至于A卡则不支持PhysX加速,强行开启的话只能使用CPU进行运算,效率自然非常低下,不过使用A卡做渲染N卡做物理加速也是个临时解决方案