最近一些电影中最令人惊叹的数字毛发和皮毛工作——如《猩球崛起:黎明之战》中的Caesar,Maurice以及数以百计的猩猩,《霍比特人》三部曲中的中土生物,《丁丁历险记》中的狗狗Snowy——都出自维塔数码,部分要归功于该工作室的Barbershop毛发修饰系统。该工具目前获得了奥斯卡科学技术奖Sci-tech Award,这篇文章就Barbershop在维塔数码的使用和发展对获奖者进行了相关采访。
Barbershop最引人注意的方面不是渲染时图像的外观有多棒(尽管毫无疑问,他们做的确实很棒),而是维塔数码的工作团队写出来的软件,确实就是设计师们在雕塑和设计角色毛发时想要的效果,最让人不可思议的是出现在屏幕上一模一样的角色。这似乎不会引起奥斯卡的注意,但基于这样一个显而易见的基本概念,这个项目必须做一些非常熟练的工作,以便于设计师能够直接控制Caesar身上每一根湿毛发,以及当他站起来俯视旧金山时——Caesar的每一根毛发看起来也都要一样。
毛发、布料、火和水的动画在计算机绘图的基础就是模拟。这类事物进行动画处理太复杂,所以我们通常创建一个系统,运行,然后看结果。以布料模拟为例,设计师将布“剪”为衬衫的形状,然后我们运行这个模拟,它就会下落、沉降并折叠为这个数字角色的轮廓。燃烧的大楼进行了分裂模拟,模拟数据就会缓存,就像水或其他模拟一样,然后被渲染。对于毛发的模拟,应该使用同样的逻辑,毛发的长度、样式和颜色都应被定义,然后运行模拟,看效果如何。全是建模非常好的飘逸毛发,但如果第二个角色翻转再运行毛发模拟,就意味着重力摧毁了毛发,失去了躯体,就会弹跳起来,这个镜头就毁了。是什么使Barbershop变得如此强大?暂且不说其他的,你能确切的对毛发的外观进行建模——使用像梳子这类熟悉的工具,或者将毛发剪到特定长度,然后使用类似从检测工具,在线性水平工具通道“识别修饰”信息,使得模拟或动画不会从基础上改变修饰的外观。Barbershop本身不做最终的模拟或渲染工作,而是为这些功能提供参数,但是是以一种保留修饰完整性的方式这样做的。
有了Barbershop,可以直接控制毛发中的每一根毛发。不像有些系统,有了引导毛发,然后往上增加,比如说在渲染时间,从10000最终增加到100000根毛发,Barbershop让设计师能够看到所有毛发的最终设置。为了调整一根毛发或一丛毛发,不需要重新定义程序参数,设计师只需要改变毛发,一切就都运行正常了。该系统不是建立在普通的流程图或节点链上。如果设计师想让一条腿后边的一团毛发看起来像前臂上的毛发一样,他们就能用一个克隆工具,将它们“画”上去。如果猩猩需要污垢或干泥,该项目中可以添加,分布于皮毛上。当然,这两个例子中的毛皮都不是在二维感概念上画的,更像是在Mudbox中,设计师能够直接控制3D,泥也不是直接混入的,而是移入到皮毛的毛发中,可能是完全复杂的数字“弹性杆”。这并不是说设计师们就需要担心。设计师们只需要使皮毛看起来又湿又脏。毛发的凝聚只是为设计师们完成,他们可以不通过引导毛发来调整一根毛发、一丛或一个区域的头发,而是通过直接的控制调整。
“我们试图用Barbershop做的是,”Weta Digital公司的Marco Revelant说,“让视觉发展(美容,阴影等)一方从模拟的一方分离。换句话说,我们试着将美容和模拟概念之间的联系打破。”
如果你认为刚才设计师控制的单丛湿毛发更像是一种3D的头发/Photoshop工具,在这些场景后面,Barbershop需要确保这一点毛发什么时候被传递到最终的毛发模拟,那时,复杂的算法、重力、表面张力、接触力等都会产生一丛与设计师设计的完全相同的毛发。此外,当渲染器实施全真的基于物理的灯光解决方案时,Barbershop必须要确保最终的内折射反射波和颜色属性都是一致的,使头发在最终的Manuka渲染器中和设计师将泥土添加到其中一丛中的时候一样又厚又密集。但有趣的是,Barbershop对动态学一无所知。与许多毛皮系统不同——Barbershop不保留生成给定毛发装饰所必须的操作列表。该系统对待毛发的方式更像Photoshop对待图像的方式。毛发是使用雕刻工具放在既定位置的——一旦工作完成——就不再需要了。因此,在某种意义上——头发可以被视为它自己的实体,不依赖于任何操作或表面。Barbershop对着色器和照明也一无所知。然而,它尽可能多的为着色器提供信息。魔法般的照明是由着色器完成的。
Barbershop的强大到可以在拉丁表达中捕捉到,“firmitas,utilitas et venustas”或者说强度、效用和美丽。该项目对毛发直接控制,而不是近似控制,它太有用了,而且已经用于《阿凡达》之后维塔数码几乎所有的电影中,尤其是《丁丁历险记》和《猩球黎明》电影中——它简单中蕴含着美丽:“你在预览中看到的就是你在渲染中得到的”。作为一名设计师想要什么非常“明显”,为了得到结果,很容易跳过必须要做的事情。
最近的电影《霍比特人》中的小矮人就是一个很好的例子——他们的头发很复杂,编成辫子,而且要求在电影中对数字替身进行数字复制。这类复杂的发型在很多毛发程序包中会极其困难,正如在《猩球崛起》电影中有潮湿、乱蓬蓬的毛发的猩猩一样。
该项目是在Revelant和Alasdair Coull的电影《金刚》和《阿凡达》之后,在维塔数码中构想的。Revelant见证了维塔数码用不同的方式实现了相同的事,而且系统会更强大,更简单。Coull是第一个对这种解决方案开始编码的,而且很快加入了Shane Cooper初始设计的建筑和工程设计。从发展的高度来说,是一个五人团队在研究它,但维塔数码很多设计师们都为设计理念和系统的测试做了贡献。
代码很稳固,核心库独立于渲染器或模拟器。这就意味着,尽管该系统是作为Maya的一个插件运行,最初设计在RenderMan中工作,但核心代码是完全独立的,相对来说,转换到新的Manuka渲染器中比较简单。
维塔数码使用了很多解决方案来做毛发的模拟,包括使用“离散弹性杆”模型,其数学遗产可归功于19世纪中期到末期。这些都基于一个事实,即头发(如细棒)是三维的,但与第三维度相比,有二维的。所得毛发模型有曲度,而且这种扭曲相对于每个预定“杆”来说都是恒定的。结果,发束的形状就是分段螺旋,且具有有限的自由度。然后利用拉格朗日力学原理对该模型进行动画制作。自然地,该模型就属于典型的非线性发型行为,其弯曲和扭曲变形模式也是如此。它也适当的处理了自然卷曲,模拟了头发卷曲的动态。
从没有程序基础到Barbershop和模拟不可知论,有庞大的时间节省管线。如果由于某种原因,维塔数码的毛发模型从弹性杆移到新版本的质量+弹簧或有限元(FEA)模型,设计师仍会使用Barbershop基于笔刷的建模工具来对红毛猩猩Maurice后背上的每根毛发进行控制、可视化并做造型,或者剪掉它胳膊上和腿上脏辫子一样一丛一丛的皮毛。此外,当Barbershop直接处理数据时,一旦毛皮在一个镜头背景下,就没有必要从制作的角度来回送并重新对整饰返工,整饰就是整饰,该管线不会耽误时间来回送并返工。当然,模拟团队可能需要使用皮毛来改变一些模拟,但他们可以完全控制独立的Barbershop来做到这一点。因而该程序不仅在技术上是独立的,而且分离出了更高效管线运行功能。这种模块化的方法,甚至适用于拓扑结构。一个角色毛皮的修饰可以应用到另外一个角色,然后马上被改变、扭曲或调整。可能你会再次猜测这就是他们想要的,但在大多数毛发系统中,这种没有固有的“历史”或“节点功能的链条系列”的多功能性是不正常的。大多数系统可以应用这种类似的规则,以类似的方式运行事物,但不能没有处罚或开销就简单的将毛发移除或剪切。
设计师们可以在它们的屏幕上用非常快且功能强大的全部可见毛发工作,通过维塔数码的实时Gazebo预览渲染器,他们可以在镜头中看到头发,先于在维塔数码的最终Manuka渲染器中看到的最终渲染。其实,Manuka已经证实非常擅长渲染的一件事就是大量复杂的角色,全都有皮毛或毛发,在这方面,它似乎比任何渲染器表现都突出。
Barbershop的工具集既基于现实世界的修饰工具,如梳子,同时也基于图像编辑工具,可能会在Photoshop中发现。“设计师在修饰时,有权限访问每根毛发,也能访问毛发上的每个点,”Revelant说。“通过这个工具,他们可以做一些天然聚集,并且所有这些信息都可以通过管道被保留。”
这并不是说这个程序是2D,或者说操纵像素,但操作简单,Adobe的Photoshop一些功能强大的工具激发了Barbershop团队为维塔数码的设计师们提供简单直接的工具,简单易懂,且使用直观。
该程序最初打算先用于《丁丁历险记》中的Snowy,但第一次出现在大屏幕上是电影《格列佛游记》中腋下毛发的模拟。该程序仍在进行积极开发——例如,上面讨论的最新电影《猩球黎明》中的湿皮毛就得益于维塔数码在《饥饿游戏2:星火燎原》中动画制作的湿狒狒,而湿狒狒又反过来建立在第一部《猩球崛起》的基础上。“对于最新电影《猩球黎明》,”Revelant补充说,“很多技术都是用Barbershop和新的渲染器完成的。我认为我们的现实主义达到了一个新的水平——维塔数码的每个人都为这个结果感到自豪。”
另外,Marco Revelant, Alasdair Coull和Shane Cooper于2月7日在洛杉矶因Barbershop的独特架构获得技术成就奖Technical Achievement Award,它可以“使用直观、互动和程序性工具集直接控制全密度的头发,使用粒度艺术控制,比其他已有系统大大提高了制作效率”。