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