|
皮克斯动画工作室的资深科学家托尼•德瑞斯(Tony DeRose)在纽约市的数学博物馆(The Museum of Mathematics)做了一场演讲,分享电影中的数学。托尼•德瑞斯穿了件花哨的皮克斯T-shirt,缓步在纽约的数学博物馆演讲厅的座席间,乍眼一看,他横竖也不像个科学家。他频频向坐在位子上的未来小技术宅致意,以及向随这些小技术宅同来的各位家长和老师问好。听众中也不乏年长的数学死宅及其基友。还有个二十几岁的哥们,他曾经是《汽车总动员2》的龙套演员(他的动作捕捉被作为制作动画的蓝本),他带来了他娘,因为他老娘想见识下这些幕后的电影工作者是怎么把他儿子的动作搬上荧幕的。
/ {& ^* h1 Q. |1 i# j+ N% Z托尼•德瑞斯今天的演讲题目是“电影中的数学”(Math in the Movies)。主题就是他的工作——怎么把代数和几何融入软件之中,从而渲染出各式各样的物体,或者驱动复杂的物理引擎。托尼解释说,这套流程,全世界的电脑动画工作室和电子游戏制作者都在用。他来这里演讲的目的之一,就是告诉大家,动画师和游戏设计师若有大志,那么数学功底一定要过硬。身为皮克斯的资深科学家,托尼•德瑞斯数学功底何止过硬,简直是太硬——美国加州大学伯克利分校的计算机博士,专攻计算物理学,然后又在华盛顿大学当了十多年的计算机工程的教授。, X7 [9 q. \7 y- S+ j$ a# F- G" R
4 M6 g0 R) _) J! e( {在计算机制作的动画中,头发、衣服、流体和气状物(比如云、烟、火),都有自己专属的物理引擎。而到了具体的电影中,这每一大类的专属模拟引擎又会根据情况得到进一步增强,表现出更加炫目的效果。托尼•德瑞斯说:“模拟水很简单;难点在于,用什么方法模拟出来的水,怎样才像真的水,能被引导往某个方向流动。”(在欧拉坐标系下水流模拟需要的计算机资源太多,而使用拉格朗日坐标系进行的追踪每个格点的模拟需要资源较少,但实际上是在模拟黏性不大不可压缩的固体。)
7 j; O h8 F# B5 n& |: x/ {
6 G( ]! x; E4 G托尼•德瑞斯举了《勇敢传说》(Brave)里面的例子:梅莉达一头蓬松卷曲的红发,便是用了全新的物理引擎模拟出来的。(传统的头发模拟是使用类似浆糊的体积模拟,而不是一丝一丝的进行碰撞模拟,浆糊里面每一个点的波动会传播到周围的点,并且有一定的传播速度和衰减程度,最后这一大块浆糊被赋予头发的丝状材质。而梅莉达的蓬松卷发则更类似于多体的弹性和非弹性碰撞,故而传统的头发模拟引擎派不上用场。)托尼•德瑞斯和皮克斯动画师团队绞尽脑汁,终于制作出来梅莉达那一头得比真的还真、极具表现力的秀发模型——当然,这头秀发的模拟计算量还要我们的超级计算机能承受。
+ O& R+ t5 `. j, C
* f3 o6 H& K+ J) M) L5 x7 Y托尼•德瑞斯继续解释:“真实世界里面,头发无时无刻都在彼此发生着碰撞。梅莉达的头发有10万个单独的有限元,而n个物体在下一时刻有 n2 种碰撞可能,10万个元就会有100亿种可能,如何制作一个能快速模拟出100亿种碰撞可能的引擎?这里,我们使用了特别的数据结构,使得这些碰撞可能性被去粗取精,没用的碰撞可能性就被剔掉了。打个比方来说,如果对比‘傻而快’的MP3或者JPEG压缩算法,我们创造的则是头发模拟界的FLAC或者PNG的压缩算法。”+ E5 w. b' l* Q) W# O+ c. h
# I% w1 m9 @1 Q$ t9 D. L! ] s
托尼•德瑞斯又提到,CG动画制作经常需要模拟超大规模、尺度精细的物理模型,较之物理学家平时所需的科学计算是有过之而无不及。托尼•德瑞斯的工作,就是为这些物理模拟寻找更优的算法,保证模拟之尺度的同时又不失微小细节。3 k8 i. c( y2 N6 z3 u; J: t
托尼•德瑞斯对CG动画制作界最为重要的贡献,就是引入了高还原度的曲线/曲面的生成算法:如何将复杂的形状分解成电脑可以生成的多边形。多年以来,电脑动画和电子游戏制作都在致力于用多边形来表示一个真实世界的三维物体。但是,使用多边形的问题就在于,仔细一看,还是看得出来多边形的棱角的。CG业界的趋势是用“平滑”曲面代替多边形,这些“平滑”曲面会经过原来多边形顶点所在的位置。数学家针对此方,发明了各种快速生成“经过固定点的‘平滑’曲面”的方法。' l! X: s3 p) z; J) q
例如曲面细分,将原本一个多边形按照曲面的曲率拆解成多个多边形,并且不断重复该过程直到达到允许的自由度上限。从曲线的角度来看,连接曲线经过的始点和终点的线段是对曲线的“模拟”,如果细分的话,加入曲线上的中点,分别连接始点和终点成为两条线段,这是对该曲线更好的“模拟”,而这个过程可以不断进行下去。- j8 u& s9 y% k+ s$ `4 K
+ R# U5 z+ m1 p: i" j托尼•德瑞斯当时将他在学术界的研究成果和多维曲面上的小波计算,应用到皮克斯的曲面生成算法中(小波变换的一大优势,在于可进行多尺度多分辨率的计算分析)。《超人总动员》里,每一个建筑、每一扇窗户,所有物体的所有细节都是曲面细分的产物。现在几乎每个皮克斯动画制作项目都会用到曲面细分。而今曲面细分算法已然成为CG动画的行业标准。
' `3 \+ A5 q, d; t1 {
/ G1 f( h. ~7 I) K' w托尼•德瑞斯和他的研究团队制作电影同时,仍然不忘在学术界灌水论文,并且关注学术界最新进展,方能将最新的成果用到皮克斯的动画渲染引擎中来,不过,现在皮克斯的研发部门和渲染软件已经不像几年前那样领先业界数个身位了。以前,一个角色模型的光照和着色,还有定义各种动作的参数首先是数学上的难题,接着是写代码上的难题;但现在,像 Blender 一样的开源软件,也能比肩皮克斯自主研发的软件。2012年夏天,皮克斯发扬互联网的分享精神,将他们的曲面细分代码库开源,放到了网站 GitHub 上。对于这一举动,托尼•德瑞斯解释说:“我们曾经领先业界十年,不过现在更得益于让大家来一起参与开发。”
z1 i0 o& |# ?( ? |
|