IT计算技术下的《阿凡达》
2010-08-14树子
文 树子
这个几乎完全虚拟的科幻世界吸引了全世界的目光,而在它身后,则是Weta Digital庞大的计算集群和虚拟设备。
>> 《阿凡达》背后拥有众多高科技IT技术。
160分钟、14年、2.3亿美元的制作成本、总成本超过5亿美元、3000多个特效镜头、仅37名真人演员却拥有2000名幕后工作人员、800个为CGI服务的特效人员……在这个冬天,卡梅隆花费14年时间打造出的科幻巨作《阿凡达》点燃了整个中国所有电影院的火爆场面。几乎每一个走出电影院的观众都认为,虽然老套的剧情并没有什么出彩之处,大团圆的结局也让人少了些许回味,但是长达160分钟的电影依然没有“Run to pee”的时间,每一个情节和场面都让人不忍站起身来。
这个几乎完全虚拟的科幻世界吸引了全世界的目光,而在它身后,则是Weta Digital庞大的计算集群和虚拟设备。事实上,由于《阿凡达》大量采用了数字特技,因此对于计算和传输的要求非常高。卡梅隆也多次表示,之所以这一剧本酝酿10多年才投入拍摄,是因为此前计算机软硬件的条件无法达到特技效果所需要的水平。
那么,究竟是怎样的IT技术在背后支撑着《阿凡达》的拍摄呢?
虚拟摄影机完成不可能任务
《阿凡达》使用两台索尼HDCF950 HD摄像机进行拍摄,这两台摄影机可以拍出不同角度的画面,用来模拟双眼观看事物的感觉,提供不同视角的画面。因为装配不同的滤镜,当被摄物体进入镜头时图像的一部分会被分别遮住,这样一来,传递给大脑的就是一种视差错觉,最终得到三维视角的画面。
卡梅隆花了10年时间研究虚拟3D摄影机,在用上了传感器捕捉系统之后,卡梅隆可以在影片最终完成之前就看到实际的效果。虚拟摄影机本身并没有镜头,只有一个LCD显示屏以及从传感器获取演员位置及动作信息的接收器。演员穿上特制的带有传感器的服装在布景中表演,卡梅隆就可以在虚拟摄像机的LCD显示屏上看到已经与CG背景画面合成的画面效果。
另外一个在拍摄中被使用的高清摄像机集群是用来精确地捕捉演员的每一个动作,甚至包括每一次扬起眉毛。新系统比以往的动态捕捉精确度高出数倍,这一系统的核心是一个距离演员面部仅几英寸距离的微缩高清摄影头,用以记录演员面部细微表情,然后把95%面部动作传送给计算机内的虚拟角色,将这些表情“贴”在经电脑加工后的纳威人脸上。
除了运用“动作捕捉(Motion Capture)”技术拍摄没有实际场景的演员表演之外,摄影棚内还同时架设一套“协同工作摄像机(Simulcam)”。这套系统由摄影棚顶部的140个数字摄像机组成,摄像机通过追踪现场LED灯打出的近红外光谱反射,将捕捉到的数据传输到计算集群中,再将光谱的反射与演员的运动进行组合分析,得出整个镜头的立体模型。这一模型将被被映射到后期的渲染场景中,使最终的场景更加接近真实世界。
使用虚拟摄像机还可以根据卡梅隆的需求随意作出各种不可能的镜头动作。比如在最后的大战中,摄像机一直跟着主角在空中飞行,传统摄像机很难完成如此宏大的场景拍摄,但是虚拟摄像机可以根据导演的需求在空中随意移动,整个过程的运动轨迹能够被系统捕捉下来并合成到后期的画面处理中。
图形计算软硬兼施
Weta Digital是卡梅隆的幕后英雄,这家由著名导演彼得·杰克逊创建的数字工作室完成了《阿凡达》电影中800多个CG人物和大量逼真场景。在整个CG视觉特效历史上,《阿凡达》第一次把需要的单元数量从百万级别提高到了十亿级别,由此产生的光线追踪及变化渲染工作将是不可估量的。
2009年3月,Weta Digital首席技术官Paul Ryan、渲染调研负责人Luca Fascione和NVIDIA Research高级架构师Jacopo Pantaleoni认为,他们需要一个全新的、灵活的光线追踪渲染方案为《阿凡达》服务。随后,NVIDIA为Weta Digital设计开发了一个全新的计算光线追踪引擎PantaRay,大大加速了CG制作和渲染过程。
NVIDIA表示,PantaRay光线追踪渲染处理器在Tesla S1070 GPU计算服务器的执行速度比在普通CPU服务器上最多能快上25倍。Weta研发部主管Sebastian Sylwan甚至夸张地称,这种方式与传统方式的速度差异“可能达到100倍”。
在计算架构方面,卡梅隆选择了由著名的Pixar公司开发的、名为Alfred的多任务阶梯式架构,把一个大任务分成数千个独立的小单元来处理。每当在整个计算集群中有CPU完成任务,就会被随机分配新的任务。在高峰时段,这一计算集群每天要为《阿凡达》处理1万多个任务,约1300万~1400万个单元。
>> Weta Digital完成了绝大部分的3D画面渲染。
数据中心的坚实保障
虚拟摄像机也好,图形渲染工作也罢,没有强劲的数据中心是不可能实现的。由于Weta Digital由构建物理模型的Weta工作室和进行实际运算的Weta数据中心两部分组成,因此Weta Digital在提供了制作技术的同时也提供了拥有强大运算能力的数据中心。
根据Weta Digital的相关人员介绍,他们在2008年重新配置了1万多平方米的机房。新的系统由4个超级计算集群组成,使用了1280台HP BladeSystem BL2x220c刀片服务器,累积峰值计算性能高达205万亿次浮点运算/秒。这一改进使得Weta Digital的处理能力提高了一倍,使其不仅能够提高处理能力,而且无需扩建数据中心或者支付冷却新增刀片服务器所需的费用。这些服务器通过光纤连接读写大约3PB(1PB=1024TB)的数据,这些数据存放在BlueArc和NetApp的存储上,数据传输使用光纤通道,而操作系统使用Linux。这一计算集群在当年的全球TOP 500超级计算机中排在200名以内。
在网络连接方面,计算集群之间的连接采用万兆以太网。因为在高速计算中,数据流要求绝对稳定,运算速度要求也很高,不能有丝毫的延迟,所以只能通过本地机房网络以高带宽完成数据交换。不过,相比3PB的原始数据,电影完成后的数据量相对来说并不多,一帧的数据量为12 MB,每分钟的数据为17.28GB,整部电影的数据为2.8TB,仅为原始数据的千分之一左右。
另外,由于机房使用了大量计算设备,其产生的热量相当大。为保持机房平稳运转,Weta Digital数据中心使用了多种方式进行散热,其中包括装配强制水冷设备,提升地板以增强散热等等。最好的情况下,这个数据中心可以比同等规模的常规机房节省40%制冷成本。