2016年最受好评的动画短片是如何制作出来的?

发表于2017-02-07
评论0 1.6k浏览

  无疑,2016年底最优秀、最经典的一部动画短片当属皮克斯的《鹬》(Piper)。每一部皮克斯优秀故事的背后,总是离不开艺术家们用技术所创造的一个又一个令人惊奇的画面。除了深入人心的故事和让人难以置信的惊艳画面,还有背后那些让人琢磨不透的高超技术。



来先回忆一下:



  短片中除了可爱的小鸟角色,生动的动画和惊艳的画面渲染,还有就是那个金黄色的美丽沙滩了。

  小伙伴们看了那么多遍,可是你有注意到沙滩的制作难度系数么?

  你知道皮克斯的开发团队为了实现沙滩和海水以及泡沫效果进行了哪些尝试么?

  想知道是如何作出来的么?

  今天,wuhu君获得授权分享来自CG世界的文章,和大家聊一聊实现的过程和细节,让小伙伴们从技术角度对这部动画短片有一个新的认识前方是技术贴,动画爱好者们也可以了解了解  O(∩_∩)O~~

  在这部《鹬》短片中,Renderman工具的开发团队帮助导演和艺术家们为观众们讲述了一个完美的故事情节。

  其实这个项目很早就在皮克斯内部启动了,开发组为了为皮克斯的电影呈现更好的画面效果,创造了一些非常牛逼的可行性前沿技术。当时正处于REYES(基于存储性能的REYES运算)向RIS(Renderman光线跟踪)过渡时期。

  “我们起初用RIS渲染的图像非常好,角色与环境匹配的非常完美,”《鹬》的灯光技术总监Erik Smitt说,“为了镜头的凝聚力,我们不再使用每个角色光照绑定处理我们的镜头,这是一个创造性的突破,因为我们可以更快的完成镜头制作。”他们可以在一个全物理方式中给镜头打光和处理着色工作。“很多常见的技术难题需要用不同的处理方法。”Erik Smitt补充道。


Houdini中视图窗口


最终镜头


真实沙滩的效果是怎么实现的?

  “制作海滩上的沙子。传统上,我们会用置换贴图和着色技巧实现一个细节丰富的海滩效果,”工具开发者Brett Levin说道,“但是我们想看看RIS到底能作什么。”他们的意思是用真实的沙粒添满整个沙滩,看看这一新开发的RIS技术到底有多牛X。



  其实皮克斯传统的做法也是如此。但是他们经过多次测试,发现在特写镜头中所用的法线置换贴图分辨率的置换细节大概需要计算36次,效率太低了,所以皮克斯的天才们开始思考一些行之有效解决方案。



每一个沙粒都是一个单独的模型


  最后,他们想出的结果是:用Mudbox雕刻沙丘,然后在Houdini中用Poisson Distribution在网格上生成沙子。


艺术家在操作Mudbox


  (Mudbox是数字雕刻与纹理绘画软件是由电影、游戏和设计行业的专业艺术家设计的,为三维建模人员和纹理艺术家提供了创作自由性,而不必担心技术细节。传统雕刻师以及新手和资深数字艺术家都能轻松地使用,用户可在几个小时内实现高效工作,而不是几个星期。如果你能捏制粘土,就能使用 Mudbox 中的工具。

  沙粒用Houdini中Grain解算器模拟的,它在网格上创建了一个沙子,这一结果的实现综合了一系列剔除技术,其中包括相机平截头体、面向角度和距离等。


Houdini 


  (Houdini (电影特效魔术师),是创建高级视觉效果的有效工具,因为它有横跨公司的整个产品线的能力,Houdini Master为那些想让电脑动画更加精彩的动画制作家们提供了空前的能力和工作效率。)

  再说回到《鹬》,短片中的每一个镜头中,海滩都是由数百万的沙粒组成的,每个沙粒大概有5000个面。这些颗粒没有用到凹凸贴图或者置换,都是在Houdini中程序生成的模型。


位置分布


整个沙区要怎么塑造?

  深浅变化不一的沙子是用RenderMan Primvars实现的,这给了着色团队很大的可控性,因为只有12粒沙子。整个沙区的颗粒是用物体实例和点云填充的,这两种数据类型是用皮克斯的 USD(Universal Scene Description)处理的,因为USD可以高效的处理非常复杂的场景。



  “渲染如此大的数据集也是一个很大的挑战,有些场景用了128的射线深度,这在以前的技术看来是不可能的,”Brett Levin说。这使得渲染出来的图像相当的逼真,RIS能够处理超大计算的需求供应。“我们用物理方式尝试创造性的方法解决一个镜头,这在RIS以前我们从未敢尝试过。”



用Light Transport模拟的自然光照沙粒效果


  沙子颜色要怎么处理呢?

  沙子的颜色采用的是阴天环境下沙滩上生成的反照率图,然后利用它制作了很多类型的着色器,包括什么贝壳,石头和折射玻璃。这些颗粒还必须是干湿结合,各式梯度的色彩和明暗度,这样才能模拟出让人信服的无数沙粒。


CGI图与真实照片对比


  另一个挑战是马赫带(Mach Bands),马赫带是视觉的主观感受在亮度有变化的地方出现虚幻的明亮或黑暗的条纹,马赫带效应是由于人的视觉系统造成的。

  所以,这会导致沙子的效果不理想。为此,团队创造了一个自定义抖动的解决方案出来,最后得到的图像效果非常自然。


马赫带现象


  我们平时去海边如果细心的伙伴都会发现在海岸线上,沙子会呈现很多不同的干湿状态。所以用CG实现不同沙子类型也是不小的挑战。皮克斯团队最后分出三种明显的类型:湿、潮湿和干



沙子的干湿类型

  对于微潮湿的沙子,它是有一定的粘性的,即松散又可以粘合在一起。为实现这个效果,团队创造了约束网,同时还带有一定的破碎约束让它可以有弄成碎屑的效果。这一切也都是在Houdini中进行的颗粒解算,然后把这些潮湿的微妙差异区分开,直接进入艺术的状态。



沙子张力与凝结

  那海滩上的波浪又是怎么实现的?

  水和泡沫是用Houdini中的FLIP解算器制作的。一开始团队制作了一个简单的波浪形体,然后从波浪上提取出一个前端边缘曲线并给方向编码。在此基础上建立特效波浪形体,再按流动性调整厚度。一开始用低分辨的FLIP模拟。

  最后,在平截头体区域的部分使用之前低分辨率模拟过程获得的速度进行高分辨率FLIP模拟。有时候为了艺术上的美感还需要调整波浪的时间。


海浪模拟解析图


泡沫的实现过程

  泡沫着色是用 Hibryd Volume/thin表面着色器完成的,为实现优秀的折射亮度泡沫粒子,把泡沫感觉表现的更真实,渲染时射线深度反弹次数超过100次。“Renderman喜欢这样的挑战。我们完全可以依靠光传递把泡沫和沙子表现的更真实。”对于泡泡的相互作用和破裂团队们应用了一些内部的解决方案,比如GIN,皮克斯用来在3D中创建场的一个系统,同时也是一个程序上的泡沫图案。这些小小的泡泡随着水表面的速度被带上来并使用幂律分布函数创建出来。密度是基于粒子间距并循环分布的,形成泡沫的堆叠和爆破。


   

GIN 泡泡解析图


弯月面现象的解决

  还有一个是水表面张力而导致的一种弯月面现象问题。弯月面现象的出现是由于液体对固体浸润或不浸润的作用,使液体在圆柱形的管子里,呈现不同的液面。最常见的就是装在玻璃管里的水面会呈现凹面状态,而水银呈现凸状。

  那么在沙滩上海水冲击海滩的时候也会出现这样的效果。为了解决这个问题,团队复制出整个海滩物体,使用动态IOR与干湿沙子过渡部分相混合,这种做法可以避开不精确性。

  水流的感觉也是在Houdini中用程序生成的,然后团队用所产生的涟漪图案作为图片在Katan中用置换制作出来的。在短片中运用了大量的超微距镜头,团队起想用Nuke的景深来实现,但是RenderMan能在渲染的时候能够处理景深效果,而且在后期处理时也能精准的匹配。所以,大家看到的景深效果都是三维里直接渲染出来的。有几个超级景深镜头还结合了其他的技术,比如在USD物体上重新投射渲染并添加带有深度图像数据的模糊。最后处理路径跟踪时的噪点,开发团队使用了Rednemanm Denoise的降噪功能。传统上,折射表面和大量景深需要加大采样值才能降噪,但这样作太耗费渲染时间,而 Denoiser不但可以降噪还可以减少很多的渲染时间。


     


如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引