为了使之看起来真实可信,仿真模型必须巧妙地处理数量庞大的粒子。要用电脑制作出令人信服的粒子系统,关键在于计算和表现每个粒子的运行轨迹。要记录每个粒子的运行轨迹,所需的运算量极其庞大。有时,即使使用了占满几个房间的高速电脑,有些场景中的一个镜头也需要花费几天的计算时间!
在电脑生成的图像中,大部分三维对象仅仅是真实物体的视觉表象。换言之,没有为了完全吻合真实物体而将三维对象分解到原子水平。要达到如此细微的程度,远远超过了当前系统的处理能力和时间限制。通常,三维对象仅仅是一个外壳,或者是个空架子。在大多数情况下,只要看起来真实就可以了。但如果在拍摄过程中三维对象必须发生巨大变化,例如,海浪逐渐上升拍击到另一个对象上,那么,就必须有一个方法来逼真地表现这种变化。
在《完美风暴》中,工业光魔公司使用多重粒子系统完成了这项艰巨的工作。粒子系统被构建到海洋模拟系统中,每当海浪撞击一个对象(船只、人员或者另一个海浪)时,粒子系统就创造出数百万个粒子。粒子系统被赋予了各种属性或行为,这些属性告诉每个粒子从系统发射出来后该如何运动。
在模拟系统中,影响粒子行为的另一个必不可少的部分是撞击模型。简单地讲,撞击模型告诉每个粒子和场景中的每个其他对象,当它们与另一个对象的表面相撞时,或者和另一个粒子相撞时,应该如何反应。
让我们来看看扑向安德鲁·盖尔号的海浪,以及Maya模型的模拟过程:
计算机为其跟踪的每个粒子单独执行全部计算。通过精确控制每个粒子的适用规则,从整体上看,整个事件就跟真的一模一样。
然而,模拟并非总是“看起来不错”,或者达到导演确切想要的效果。例如,从安德鲁·盖尔号船首溅下的水量可能就没有彼得森希望的那么多。此时,工业光魔公司就要调整模拟系统中的数百个参数,以非常精确的顺序来喷洒更多的粒子。此外,这种叫做发射器的特殊不可见对象经常被用来制作环境效果,如浓雾和薄雾等。
着色器(shader)是一种复杂的工具,用于分析对象的光、密度和表面颜色,并确定对象具体将要显示出来的样子。当着色器和粒子系统一起使用时,用着色器制作的水滴不是单纯的白色小点,而是逼真的半透明点。
粒子系统为每个镜头增加的复杂度令人倍感惊叹。在一些带有大浪的镜头中,每帧中所包含的粒子数可以达到数十亿之多!计算和渲染如此细致的图像需要大量时间;存储这些图像所需的磁盘空间甚至超过了《星战前传1》。
编辑推荐