编者按:最近正在热映的好莱坞视效大片《复仇者联盟3:无限战争》,获得了好评和追捧,其中复联英雄在瓦坎达战场的激烈对战可以算是整部影片的高潮。中国视效公司Base FX也参与了该剧的制作,制作的场景包含了复联英雄驾驶飞机在瓦坎达降落、苏瑞救治幻视等场景。Base FX灯光项目主管阮浩回顾了复联英雄驾驶飞机在瓦坎达降落这个场景制作经过,讲述了怎样克服制作的难点。


在复联英雄驾驶飞机在瓦坎达降落这个场景里,Base FX负责整个环境的制作,包括停机坪、黑豹的宫殿、战斗机、国王侍卫以及后方的城市等,其中城市是由ILM(工业光魔)提供的环境图修改而成,其余的均为CG渲染。


1527214636135786.jpg


1. 不同元素拆分纾解渲染压力


第一个难点是这个场景巨大,包含了上百个CG元素和几十套贴图,建筑物上有一块巨大的玻璃,需要进行巨量的反弹、反射、折射运算,构成了很大的渲染压力,最初预计渲染时间可能会达到每帧30个小时以上。为了解决这个问题,制作团队把各种不同元素进行拆分渲染,并根据各种元素的重要性重新分配渲染质量。比如玻璃上远处飞机的反射,由于在画面中只占几个像素所以只需要很低的渲染质量,并且不需要贴图,只要纯色带高光的材质即可。每个资产都有三套不同质量的贴图,对于距离摄像机较远的物体,就可以用最低质量的贴图以节省渲染时间。

 

1527214665629856.jpg


2.环境球渲染方式让反射更真实


第二个难点是玻璃上反射的城市看起来并不真实。由于城市是客户提供的环境图,因此反射出来的城市不会随着镜头的推进产生透视变化,使得一开始后面的玻璃看起来不像是真实的反射,而像一张贴在建筑上的图片。因此Base FX放弃了一开始使用hdrLight来渲染反射的方式,而是使用一个巨大的环境球方式来渲染。在环境球上贴上城市的环境图作为自发光,然后用客户提供的深度图来当成置换贴图给环境球加上置换,让城市不同的建筑物之间产生距离变化。这样镜头推进的时候就可以看到,玻璃上反射的建筑物产生了一些微妙的透视变化。同时我们也会给玻璃上加一个bumpnoise。因为现实中的玻璃不可能完全是个平面,表面肯定会有起伏,加上bumpnoise可以更好地模拟这一效果,让画面更加生动真实。

 

1527214683124391.jpg


3.折中灯光设置使CG元素融入实拍素材


第三个难点是这一场次的镜头由于拍摄时间不同、艺术效果需要等因素导致实拍素材的光源方向不一致,甚至两个镜头的光源方向完全相反,这使得确定CG元素光源的时候面临了很大挑战。经过不断的测试协商,最后决定把这些镜头分成两批,分别使用相对折中的灯光设置,让CG元素能融入实拍素材的同时又不会造成穿帮。


1527214719307892.jpg


整体来看,这组镜头由于场景巨大,CG元素很多,渲染压力也很大,需要上下游组更好地沟通配合,比如玻璃反射效果。由于玻璃反射效果是一次成型,合成调整的空间比较小,而反射效果又必须跟合成部门所调节的背景城市效果保持一致,因此很考验部门之间的协作配合。最终采用的方法是先让合成部门和环境部门对客户提供的环境图进行初步调整,待结果相对满意之后再交给灯光部门渲染反射。灯光部门在渲染的时候也会把城市的反射效果拆开渲染,以便在环境图效果更新之后能以最快的速度提交新版本给下游组。