文/ 沉舟舟 图/ 芝士多多
你知道,苹果成熟之后,会因为重力往下落;急刹车时,人会在惯性的作用下往前冲。这些物体运动的规律,就是物理学研究的对象。小到蚂蚁爬行,大到星球运转,真实世界中的万事万物都是在物理的“约束”下运行的。
用电脑模拟出的虚拟世界,物理就管不着了。苹果可以落地,也可以飞向外太空;人可以服从惯性,也可以在急刹车时稳如泰山。但是,我们已经在潜移默化中习惯了真实世界的物理现象,因此电影里的情节也必须在物理的框架内展现,这样看起来才真实,才有代入感。
于是,物理引擎就出现了。物理引擎通过一系列复杂的计算,让电脑中的虚拟世界也能遵照现实世界里的物理定律。比如,它能“告诉”电脑,虚拟导弹只能按照物理定律中的弹道前进,不能毫无限制地随意乱飞。
物体的运动是非常复杂的,物理引擎也是从模拟简单的动作开始,慢慢升级,慢慢成长。瞧,到现在,仍有一些动作它无法完美模拟呢!让我们一起来看看物理引擎成长道路上的几道难关吧。
汽车转弯激起的尘土,超人和怪兽大战撞飞的山石,炸弹爆炸冲击而起的碎片等大量而微小的物体的运动。
难处:这些看似简单的场景,都有无数粉尘、细屑等微小物体(统称为粒子)在运动,要将它们的运动规律统一模拟出来,难度可想而知。
波涛汹涌的大海、洗澡时飞溅的水花、落在身上的雨滴等液体的运动。
难处:液体没有固定的形状,运动轨迹难以捉摸。如果要模拟物体在液体中的运动,比如海上航船的颠簸,难度就更大了。
鼻涕虫、果冻、外星怪兽一类软软的物体的运动。
难处:观察抖动的果冻就能知道,软软的物体运动起来,可以用“牵一发而动全身”来形容,需要在把握整体动作的时候关注身体的每一个细节。
行走、奔跑、打斗等人或动物身体的运动。
难处:身体运动不仅仅是关节或肌肉的活动,还与重力、惯性等息息相关。例如,在虚拟角色爬上高台的画面中,不但要展示出角色的动作,还要让观众能感受到角色的“体重”,而不是轻飘飘的。
旗帜飘扬、衣服抖动等布料的运动。
难处:布料运动的难度在于模拟布料和人体的互动。瞧,一个简单的抬手动作,衣服就会产生各种不同的褶皱,更不用说穿脱衣服时衣服褶皱的复杂变化。
那么,这些难关都克服了吗?
前面几项基本上都克服了,就是最后的布料运动还无法达到“完美”,因此,我们很少在电影中看到虚拟人物穿脱衣服的画面。
那还真是“看起来简单,做起来难”。
你瞧,物理引擎不但能模拟单一物体的运动,还能设计复杂的运动场景,比如:两辆车相撞后,各自按照怎样的路线运行,它们激起的烟尘是怎样的状态,车内的人该如何运动,等等。
听起来,物理引擎好像很强大,但仅仅用来拍电影,有些大材小用了吧?
哈哈,被你说对了。
跟电影一样,电子游戏的画面也需要借助物理引擎来完成。与电影不同的是,游戏中的角色更自由,需要更加强大的物理引擎来“规范”他们的动作。
举个简单的例子,电影中的士兵只会往一个设定好的方向射击,而游戏中的士兵可以在玩家的操作下,往任意方向射击,子弹的飞行轨迹、击中物体后的效果等都会因此发生相应的改变。这就需要物理引擎对相关物体之间的关系进行全方位的计算。
大家对网络购物应该非常熟悉了。在网上买衣服的一大问题,就是无法试穿。买家不知道这件衣服的样式和大小到底是否适合自己,只能买了再说。
有研究人员估计遭遇过类似的烦恼,因此他们将物理引擎用到了在线试衣系统里。他们对衣服的材质、重量、质感、光泽等都进行了逼真的模拟。用户可以选择与自己体形相似的虚拟模特试穿这些衣服,并且可以实时控制模特做出旋转、跳跃、抬腿、下蹲等动作。用户就能由此全方位了解衣服的情况。
等这项技术成熟推广,我们足不出户就能买到称心如意的衣服了。
听说过“两个铁球同时落地”的故事吗?有了物理引擎,老师就可以像真的一样演示在高塔上扔球了。
想验证用杠杆是否可以翘起地球?通过物理引擎将地球简化成一个小球,再设置一根无限长的杠杆和一个不会被压溃或移动的支点,然后去看看结果就可以啦。
理论上,羽毛和铁球在真空中会同时落地,可课堂上如何制造真空呢?找物理引擎帮忙就能实现。
有了物理引擎的帮助,这些与物理有关的经典场景都能展现在课堂上,我们就能更直观地了解物理的奥秘。
既然能走进课堂辅助教学,物理引擎自然能够更进一步,走上科学研究的岗位。据说,研究人员设计物理引擎的初衷之一,就是模拟火炮的弹道,再根据模拟结果修正火炮结构。
除此之外,物理引擎在工程上还有许多用处,比如,可以模拟高速水流冲击桥墩的情景,以测试桥墩的强度;可以对挖掘土壤的过程进行仿真分析,以设计出结构更合理的挖掘机;可以模仿交通事故,来改进车辆的安全性能。