|
皮克斯動(dòng)畫工作室的資深科學(xué)家托尼•德瑞斯(Tony DeRose)在紐約市的數(shù)學(xué)博物館(The Museum of Mathematics)做了一場(chǎng)演講,分享電影中的數(shù)學(xué)。托尼•德瑞斯穿了件花哨的皮克斯T-shirt,緩步在紐約的數(shù)學(xué)博物館演講廳的座席間,乍眼一看,他橫豎也不像個(gè)科學(xué)家。他頻頻向坐在位子上的未來小技術(shù)宅致意,以及向隨這些小技術(shù)宅同來的各位家長(zhǎng)和老師問好。聽眾中也不乏年長(zhǎng)的數(shù)學(xué)死宅及其基友。還有個(gè)二十幾歲的哥們,他曾經(jīng)是《汽車總動(dòng)員2》的龍?zhí)籽輪T(他的動(dòng)作捕捉被作為制作動(dòng)畫的藍(lán)本),他帶來了他娘,因?yàn)樗夏锵胍娮R(shí)下這些幕后的電影工作者是怎么把他兒子的動(dòng)作搬上熒幕的。
3 G) |# o* _* j0 }! c6 n托尼•德瑞斯今天的演講題目是“電影中的數(shù)學(xué)”(Math in the Movies)。主題就是他的工作——怎么把代數(shù)和幾何融入軟件之中,從而渲染出各式各樣的物體,或者驅(qū)動(dòng)復(fù)雜的物理引擎。托尼解釋說,這套流程,全世界的電腦動(dòng)畫工作室和電子游戲制作者都在用。他來這里演講的目的之一,就是告訴大家,動(dòng)畫師和游戲設(shè)計(jì)師若有大志,那么數(shù)學(xué)功底一定要過硬。身為皮克斯的資深科學(xué)家,托尼•德瑞斯數(shù)學(xué)功底何止過硬,簡(jiǎn)直是太硬——美國(guó)加州大學(xué)伯克利分校的計(jì)算機(jī)博士,專攻計(jì)算物理學(xué),然后又在華盛頓大學(xué)當(dāng)了十多年的計(jì)算機(jī)工程的教授。
; `8 v3 y6 H' `) W' D$ [
+ U+ `; ~" f, x在計(jì)算機(jī)制作的動(dòng)畫中,頭發(fā)、衣服、流體和氣狀物(比如云、煙、火),都有自己專屬的物理引擎。而到了具體的電影中,這每一大類的專屬模擬引擎又會(huì)根據(jù)情況得到進(jìn)一步增強(qiáng),表現(xiàn)出更加炫目的效果。托尼•德瑞斯說:“模擬水很簡(jiǎn)單;難點(diǎn)在于,用什么方法模擬出來的水,怎樣才像真的水,能被引導(dǎo)往某個(gè)方向流動(dòng)。”(在歐拉坐標(biāo)系下水流模擬需要的計(jì)算機(jī)資源太多,而使用拉格朗日坐標(biāo)系進(jìn)行的追蹤每個(gè)格點(diǎn)的模擬需要資源較少,但實(shí)際上是在模擬黏性不大不可壓縮的固體。) 6 ~4 b2 \7 P! q4 J- e1 L$ O
9 `/ `' _& r- o0 e3 u托尼•德瑞斯舉了《勇敢傳說》(Brave)里面的例子:梅莉達(dá)一頭蓬松卷曲的紅發(fā),便是用了全新的物理引擎模擬出來的。(傳統(tǒng)的頭發(fā)模擬是使用類似漿糊的體積模擬,而不是一絲一絲的進(jìn)行碰撞模擬,漿糊里面每一個(gè)點(diǎn)的波動(dòng)會(huì)傳播到周圍的點(diǎn),并且有一定的傳播速度和衰減程度,最后這一大塊漿糊被賦予頭發(fā)的絲狀材質(zhì)。而梅莉達(dá)的蓬松卷發(fā)則更類似于多體的彈性和非彈性碰撞,故而傳統(tǒng)的頭發(fā)模擬引擎派不上用場(chǎng)。)托尼•德瑞斯和皮克斯動(dòng)畫師團(tuán)隊(duì)絞盡腦汁,終于制作出來梅莉達(dá)那一頭得比真的還真、極具表現(xiàn)力的秀發(fā)模型——當(dāng)然,這頭秀發(fā)的模擬計(jì)算量還要我們的超級(jí)計(jì)算機(jī)能承受。
k, s* a- [* D/ t1 Z: g3 h
A) S- f4 @, J* |# Z托尼•德瑞斯繼續(xù)解釋:“真實(shí)世界里面,頭發(fā)無時(shí)無刻都在彼此發(fā)生著碰撞。梅莉達(dá)的頭發(fā)有10萬個(gè)單獨(dú)的有限元,而n個(gè)物體在下一時(shí)刻有 n2 種碰撞可能,10萬個(gè)元就會(huì)有100億種可能,如何制作一個(gè)能快速模擬出100億種碰撞可能的引擎?這里,我們使用了特別的數(shù)據(jù)結(jié)構(gòu),使得這些碰撞可能性被去粗取精,沒用的碰撞可能性就被剔掉了。打個(gè)比方來說,如果對(duì)比‘傻而快’的MP3或者JPEG壓縮算法,我們創(chuàng)造的則是頭發(fā)模擬界的FLAC或者PNG的壓縮算法。”/ u! l8 {2 n. l- |1 f# o
* `8 i' d6 H' E/ o( S6 m3 ~托尼•德瑞斯又提到,CG動(dòng)畫制作經(jīng)常需要模擬超大規(guī)模、尺度精細(xì)的物理模型,較之物理學(xué)家平時(shí)所需的科學(xué)計(jì)算是有過之而無不及。托尼•德瑞斯的工作,就是為這些物理模擬尋找更優(yōu)的算法,保證模擬之尺度的同時(shí)又不失微小細(xì)節(jié)。
% z* ?; Z. ~# f7 k1 T托尼•德瑞斯對(duì)CG動(dòng)畫制作界最為重要的貢獻(xiàn),就是引入了高還原度的曲線/曲面的生成算法:如何將復(fù)雜的形狀分解成電腦可以生成的多邊形。多年以來,電腦動(dòng)畫和電子游戲制作都在致力于用多邊形來表示一個(gè)真實(shí)世界的三維物體。但是,使用多邊形的問題就在于,仔細(xì)一看,還是看得出來多邊形的棱角的。CG業(yè)界的趨勢(shì)是用“平滑”曲面代替多邊形,這些“平滑”曲面會(huì)經(jīng)過原來多邊形頂點(diǎn)所在的位置。數(shù)學(xué)家針對(duì)此方,發(fā)明了各種快速生成“經(jīng)過固定點(diǎn)的‘平滑’曲面”的方法。
1 Q* s! z+ }& y+ V% K例如曲面細(xì)分,將原本一個(gè)多邊形按照曲面的曲率拆解成多個(gè)多邊形,并且不斷重復(fù)該過程直到達(dá)到允許的自由度上限。從曲線的角度來看,連接曲線經(jīng)過的始點(diǎn)和終點(diǎn)的線段是對(duì)曲線的“模擬”,如果細(xì)分的話,加入曲線上的中點(diǎn),分別連接始點(diǎn)和終點(diǎn)成為兩條線段,這是對(duì)該曲線更好的“模擬”,而這個(gè)過程可以不斷進(jìn)行下去。- m: G# f- u6 ]/ f- W
8 C. p0 e5 @, ?
托尼•德瑞斯當(dāng)時(shí)將他在學(xué)術(shù)界的研究成果和多維曲面上的小波計(jì)算,應(yīng)用到皮克斯的曲面生成算法中(小波變換的一大優(yōu)勢(shì),在于可進(jìn)行多尺度多分辨率的計(jì)算分析)。《超人總動(dòng)員》里,每一個(gè)建筑、每一扇窗戶,所有物體的所有細(xì)節(jié)都是曲面細(xì)分的產(chǎn)物。現(xiàn)在幾乎每個(gè)皮克斯動(dòng)畫制作項(xiàng)目都會(huì)用到曲面細(xì)分。而今曲面細(xì)分算法已然成為CG動(dòng)畫的行業(yè)標(biāo)準(zhǔn)。' ^ i' Y9 V. _5 t% t ]
0 b6 Q- }8 O" `' H托尼•德瑞斯和他的研究團(tuán)隊(duì)制作電影同時(shí),仍然不忘在學(xué)術(shù)界灌水論文,并且關(guān)注學(xué)術(shù)界最新進(jìn)展,方能將最新的成果用到皮克斯的動(dòng)畫渲染引擎中來,不過,現(xiàn)在皮克斯的研發(fā)部門和渲染軟件已經(jīng)不像幾年前那樣領(lǐng)先業(yè)界數(shù)個(gè)身位了。以前,一個(gè)角色模型的光照和著色,還有定義各種動(dòng)作的參數(shù)首先是數(shù)學(xué)上的難題,接著是寫代碼上的難題;但現(xiàn)在,像 Blender 一樣的開源軟件,也能比肩皮克斯自主研發(fā)的軟件。2012年夏天,皮克斯發(fā)揚(yáng)互聯(lián)網(wǎng)的分享精神,將他們的曲面細(xì)分代碼庫開源,放到了網(wǎng)站 GitHub 上。對(duì)于這一舉動(dòng),托尼•德瑞斯解釋說:“我們?cè)?jīng)領(lǐng)先業(yè)界十年,不過現(xiàn)在更得益于讓大家來一起參與開發(fā)。”
7 P/ ^7 s1 H2 Z9 n% m |
|