皮克斯托尼?德瑞斯:想做好动画先当数学家
3月6日晚,皮克斯动画工作室的资深科学家托尼•德瑞斯(Tony DeRose)在纽约市的数学博物馆(The Museum of Mathematics)做了一场演讲,分享电影中的数学。我们编译了网络科技媒体“The Verge”的资深主笔兼记者 Tim Carmody 发回的现场笔记,并做了评注。致我们所爱的电影和游戏里的数学。
皮克斯动画《勇敢传说》(Brave)海报,女主角的一头红发包含了10万个单独的有限元,可以以100亿种可能的方式碰撞。
托尼•德瑞斯穿了件花哨的皮克斯T-shirt,缓步在纽约的数学博物馆演讲厅的座席间,乍眼一看,他横竖也不像个科学家。他频频向坐在位子上的未来小技术宅致意,以及向随这些小技术宅同来的各位家长和老师问好。听众中也不乏年长的数学死宅及其基友。还有个二十几岁的哥们,他曾经是《汽车总动员2》的龙套演员(他的动作捕捉被作为制作动画的蓝本),他带来了他娘,因为他老娘想见识下这些幕后的电影工作者是怎么把他儿子的动作搬上荧幕的。
托尼•德瑞斯开始发话:“看到男女老少都来听这个讲座真好。”随即他问:“你们都看过皮克斯的电影吗?” 可以预料的是,全场的人都举起了手。他接着问,“看过3部的举手,5部呢?全部的呢?”最后演讲厅里面几乎1/4的观众举起了手。托尼•德瑞斯赞叹道:“牛啊。”他一边向全场观众微笑,一边在心里想:“集(Gig)会在此,无比(bit)赞也。”(译注:原文为“This gig is not a bit bad”,相当有水平的双关使用,gig 本是现场表演的意思,直译“这次演出一点也不赖”,但同时gig也是 Gigabyte/Gigabit 平時在英文中的简写,对技术宅来说这句话就是“这一个G一个bit的坏道都没有”。)
托尼•德瑞斯今天的演讲题目是“电影中的数学”(Math in the Movies)。主题就是他的工作——怎么把代数和几何融入软件之中,从而渲染出各式各样的物体,或者驱动复杂的物理引擎。托尼解释说,这套流程,全世界的电脑动画工作室和电子游戏制作者都在用。他来这里演讲的目的之一,就是告诉大家,动画师和游戏设计师若有大志,那么数学功底一定要过硬。
身为皮克斯的资深科学家,托尼•德瑞斯数学功底何止过硬,简直是太硬——美国加州大学伯克利分校的计算机博士,专攻计算物理学,然后又在华盛顿大学当了十多年的计算机工程的教授。托尼•德瑞斯的这场演讲,是数学博物馆在曼哈顿新园区开设的 “数学奇遇记” 系列演讲的第一场。在这之前,他已经做过多次类似的演讲,每次都会带来皮克斯的科学家如何让技术更进一步的故事,以及大家喜闻乐见的电影制作秘闻。
在计算机制作的动画中,头发、衣服、流体和气状物(比如云、烟、火),都有自己专属的物理引擎。而到了具体的电影中,这每一大类的专属模拟引擎又会根据情况得到进一步增强,表现出更加炫目的效果。托尼•德瑞斯说:“模拟水很简单;难点在于,用什么方法模拟出来的水,怎样才像真的水,能被引导往某个方向流动。”(译注:在欧拉坐标系下水流模拟需要的计算机资源太多,而使用拉格朗日坐标系进行的追踪每个格点的模拟需要资源较少,但实际上是在模拟黏性不大不可压缩的固体。)
皮克斯新作《勇敢传说》片段。
托尼•德瑞斯举了《勇敢传说》(Brave)里面的例子:梅莉达一头蓬松卷曲的红发,便是用了全新的物理引擎模拟出来的。(译注:传统的头发模拟是使用类似浆糊的体积模拟,而不是一丝一丝的进行碰撞模拟,浆糊里面每一个点的波动会传播到周围的点,并且有一定的传播速度和衰减程度,最后这一大块浆糊被赋予头发的丝状材质。而梅莉达的蓬松卷发则更类似于多体的弹性和非弹性碰撞,故而传统的头发模拟引擎派不上用场。)托尼•德瑞斯和皮克斯动画师团队绞尽脑汁,终于制作出来梅莉达那一头得比真的还真、极具表现力的秀发模型——当然,这头秀发的模拟计算量还要我们的超级计算机能承受。
托尼•德瑞斯继续解释:“真实世界里面,头发无时无刻都在彼此发生着碰撞。梅莉达的头发有10万个单独的有限元,而n个物体在下一时刻有 n2 种碰撞可能,10万个元就会有100亿种可能,如何制作一个能快速模拟出100亿种碰撞可能的引擎?这里,我们使用了特别的数据结构,使得这些碰撞可能性被去粗取精,没用的碰撞可能性就被剔掉了。打个比方来说,如果对比‘傻而快’的MP3或者JPEG压缩算法,我们创造的则是头发模拟界的FLAC或者PNG的压缩算法。”(译者:主流MP3的压缩算法通过删除掉高频率的声波减少数据量。JPEG压缩算法和MP3类似,首先进行空间到频率域上的变换,再削掉高频部分,高对比度的边缘被平滑后产生的色块便是压缩的痕迹。FLAC的压缩则是在频率分离之后进行线性预测,简单说来,就是声音有多少频率,就把多少频率吸纳进来,再进行Colomb码的进一步数字层面的压缩;这种过程是可逆的,所以产生的压缩是无损的。)
再来一张梅莉达的近照,重点看那圆脸——哦,不——看那比真实更真的头发。来源:Pixar
卷发丝模拟中用弹簧弯曲对比不用弹簧弯曲,在受力之后3帧的区别。来源:Pixar
托尼•德瑞斯又提到,CG动画制作经常需要模拟超大规模、尺度精细的物理模型,较之物理学家平时所需的科学计算是有过之而无不及。托尼•德瑞斯的工作,就是为这些物理模拟寻找更优的算法,保证模拟之尺度的同时又不失微小细节。德瑞斯风趣的说:“导演总是说‘这些都是小问题啦’,这里我负责地告诉大家——导演都撒谎了。” 如果哪天皮克斯的导演突然有了新点子,导致片中角色或者其相关的物体的物理性质发生了根本改变,电影的物理模拟需要重新来过,那皮克斯全部4个团队一起干,都别想一年制作出一部片来。