《超能陆战队》CG制作解析 揭秘Hyperion渲染器
在大多数人眼里,迪士尼因其动画而闻名于世,但事实上,迪士尼自成立以来,始终是把推动技术进步作为己任:《米老鼠》是最早实现声画同步的动画片,《白雪公主》是第一部动画长片,迪士尼也是最早使用三色染印法的公司。另外,最早的电脑动画技术就是迪士尼和皮克斯共同研发的。
最近上映的动画电影《超能陆战队》是迪士尼技术进步的又一例证,导演之一Don Hall表示:“影片讲述了一群小孩利用最先进的科技战胜邪恶势力的故事,而影片本身也是科技进步的产物。”
本片改编自漫威同名小说,故事围绕14岁的天才少年小宏展开,他居住的地方叫“旧京山”,正如其名,这是个融合了旧金山和东京风格的地方。起初,小宏的生活十分乏味,他的哥哥泰迪把他带到了旧京山理工学院的实验室,向他介绍了一群新朋友。泰迪发明了一个私人健康管家——大白,这是个可充气的医疗机器人。泰迪遇难后,小宏将大白升级为一个战斗机器人,并与朋友们一起组建了超能陆战队。
影片的一个高潮片段展示了小宏骑在大白背上飞越旧京山市,俯瞰金门大桥、太平洋海岸,穿越高楼大厦,然后降落在风力涡轮机上。
以往这样的镜头一定是通过二维手段(matte painting)完成的,但《超能陆战队》里这场戏却完全是三维建模渲染出来的,因此真实感要强很多。整个旧京山场景模型包含26万棵树、25万盏街灯、10万辆车以及8万多栋建筑,还有成千上万的人群。这些模型的布局结合了特定的分布图和程序化随机分布。
迪士尼首席技术官Andy Hendrickson表示,旧京山的制作难度相当大,其模型数量比之前三部影片加起来还要多。那么如何处管理这么多的模型呢?如何给它们打光并渲染呢?
这里便用到了迪士尼全新的全局光照渲染器Hyperion。Hendrickson说:“这是《超能陆战队》里最复杂的一场戏,每帧画面要计算105亿条光线。”
冒险之举
之所以旧京山场景包含这么多模型,部分原因在于迪士尼当时正在研发新的渲染器。迪士尼技术总监Hank Driskill表示,艺术家们当时想打破一些原有的限制,看看他们到底能做到怎样的水平。
然而,信仰并不意味着万事大吉。“选择Hyperion并不是明智之举,”Hendrickson说,“直到一年前我们都还不确定它能否起作用,所以我们都在冒险行事。一方面我们的场景极其复杂,另一方面制作截止日期已经固定了,而我们的整个技术都还在测试当中。”
在此之前,迪士尼的动画片大多使用RenderMan,为此,Hendrickson测试了Hyperion处理大量模型的能力,结果令人满意。他给全公司成员发了邮件,声称Hyperion的研发已经到了节骨眼上,大家得决定《超能陆战队》是否使用Hyperion。在邮件中他肯定了Hyperion的优异表现。
Hyperion着色技术解析
2013年6月,迪士尼首席软件工程师Brent Burley携团队发布了论文《产品级路径追踪中的分组延迟着色算法》(Sorted Deferred Shading for Production Path Tracing),该论文获得2013年欧洲渲染研讨会最佳论文。论文中提到:“基于光线追踪的全局光照越来越普及,然而光线路径和表面着色属性的各异性限制了光线追踪所能实现的效果。为了解决这一问题,我们提出了分组流程,将光线分解成同向光束,并对着色点进行分组。我们由此实现了一致性的着色流程,而无需使用着色缓存。”
为了符合影片制作需求,迪士尼技术总监Sean Jenkins对Hyperion做了优化和流程整合,他评论道:”Hyperion的强大之处在于它能处理所有的光线,对它们进行分类,然后计算投射在某一点上的所有光线。这是一种全新的处理方式,Brent认为连续性是首要考虑的因素,只要实现了一致性,其他事情就变得简单了。软件不必在天花板和桌子板凳间来回检查,光线分类是顺畅进行的。”
大多数光线追踪系统从摄影机发射光线,然后计算每一条光线照射到的点的颜色。光线发生反射时,渲染器继续跟随反射光线,计算它们对着色的贡献。如果不予限制,光线会一直这样反射下去,因此通常会在渲染器中限定光线反射次数。但是Hyperion跟踪的是一组同向光线,大约3300万条。
Burley进一步解释道:“我们将摄影机发出的光线在六个空间方向上进行分解,并将同向光线组成一束,因此共有六束彼此垂直的光线,每束光线约3300万根,渲染器跟踪这些光线照射到的点,并根据点所在的面对其进行分组,对同组的点进行相同的着色处理。着色器会为除了光源以外的所有物体生成反射光线,反射光线同样按照六个方向进行分解、成组,然后继续着色,这样一直运算下去,直到没有新的光线。”
这正是Hyperion每帧要计算上百亿条光线的原因。
Jenkins说:“正是由于我们实现了光线方向一致性,因此我们能够跟踪更多的光线,并设定更多的反射次数。实验表明,6次反射就能得到相当不错的效果,而这还没达到运算极限。这一算法实现了极为逼真的场景光照。”
Hendrickson补充道:“这是我们首次不受限制地同时渲染这么多元素,虽然果没有Hyperion的话我们也能完成这部电影,但画面会截然不同。”
好专业,虽然没有很懂,但是觉得你好牛!