第二版大礼包(http://www.nvidia.cn/content/graphicsplus/cn/download.asp)包含了诸如演示程序、屏幕保护程序和游戏Demo等内容。这里,笔者将以具备代表性的两个时间较短的演示程序和一段Physx游戏Demo为例,来体验Physx的魅力。
第一个演示程序的第一个场景突出了流体在重力作用下的变化,体现的是它与周围物体的互动。值得注意的是,较少的液体并不是程序化地挤满管子或者贴着管壁流下去,在管子弯折的地方,你会发现水流先是呈平抛状离开管壁,然后撞上对面的管壁,顺着弯折的管壁,缓缓流下。
第二个场景主要表现水的煮沸效果。用户可能很少在游戏中见到沸腾的水,即使见过,也不够真实。在这个场景中,水分子下层的能量较高,上层的能量较低,于是水从下层冲破至上层造成翻滚。值得一提的是,水在转弯处的反弹和终的抛洒被模拟得非常真实,这种多层次的细节表现增加了虚拟世界的真实性。
需要说明的是,两个演示程序都可以模拟CPU和GPU进行工作并可以随时切换模式,这可方便考察CPU软件加速和GPU Physx物理加速对游戏速度的影响。其中,第一个流体演示程序
PhysxFluids分为多个场景,可以展示流体在不同状态下的物理表现和效果,例如流动和沸腾等。在程序演示中,流体不再是简单的贴图和程序化的波浪,而是作为一堆粒子与环境互动,模拟真实的物理效果。
处理器:Core2 Duo E6600 @2.98GHz
显卡:NVIDIA GeForce 8800 GTS 320MB
内存:DDR2 1000 2GB×2
过去,游戏表现物体之间的压缩、变形和反弹等状态都比较死板,当外力撤消后,物体不能恢复原状,即范性形变。而现实中,弹性形变非常多,即当外力撤消后,物体能恢复原状。可以说,弹性形变更符合真实的客观环境,另一个程序就是演示物体在遭受弹性形变后的形态变化——一堆软体在一个盒子里转动摇晃,表现出压缩、变形、反弹和不断恢复的过程。
软体在遭受外力后变形与恢复的过程
两个演示程序都很好地模拟了流体与周围环境的互动情况,不过利用GPU物理加速模式时的
fps平均领先CPU加速模式30%以上,尤其是在一些计算量比较大的设置或者场景下。
CPU处理和GPU处理在演示程序中的性能对比(表中单位为fps)
为了更好的体现差别,笔者尽可能将设置调整为高,以便看出两者的区别。值得注意的是,64fps应该是渲染大值,无法再突破。
CPU |
GPU | |
水管 |
11 |
35 |
沸腾 |
31 |
64 |
水波 |
39 |
64 |
离心 |
12 |
64 |
漏斗 |
8 |
64 |
软体 |
10 |
44 |