關(guān)于我們+
-
📞 聯(lián)系電話
15838372021 15981827020 -
✉ 郵件地址
qijingcg@qq.com -
💬 QQ客服
業(yè)務(wù):1815355071 動畫:350334514 網(wǎng)絡(luò):323183556 -
📍 公司地址
高新區(qū)紐科科技園 -
🔗 網(wǎng)站地址
m.free-room.cn
三維動畫電影和游戲里的數(shù)學(xué)

皮克斯動畫電影《勇敢傳說》(Brave)海報,女主角的一頭紅發(fā)包含了10萬個單獨的有限元,可以以100億種可能的方式碰撞。
編者按:3月6日晚,皮克斯動畫工作室的資深科學(xué)家托尼•德瑞斯(Tony DeRose)在紐約市的數(shù)學(xué)博物館(The Museum of Mathematics)做了一場演講,分享電影中的數(shù)學(xué)。我們編譯了網(wǎng)絡(luò)科技媒體“The Verge”的資深主筆兼記者 Tim Carmody 發(fā)回的現(xiàn)場筆記,并做了評注。致我們所愛的電影和游戲里的數(shù)學(xué)。
托尼•德瑞斯穿了件花哨的皮克斯T-shirt,緩步在紐約的數(shù)學(xué)博物館演講廳的座席間,乍眼一看,他橫豎也不像個科學(xué)家。他頻頻向坐在位子上的未來小技術(shù)宅致意,以及向隨這些小技術(shù)宅同來的各位家長和老師問好。聽眾中也不乏年長的數(shù)學(xué)死宅及其基友。還有個二十幾歲的哥們,他曾經(jīng)是《汽車總動員2》的龍?zhí)籽輪T(他的動作捕捉被作為制作動畫的藍本),他帶來了他娘,因為他老娘想見識下這些幕后的電影工作者是怎么把他兒子的動作搬上熒幕的。
托尼•德瑞斯開始發(fā)話:“看到男女老少都來聽這個講座真好。”隨即他問:“你們都看過皮克斯的電影嗎?” 可以預(yù)料的是,全場的人都舉起了手。他接著問,“看過3部的舉手,5部呢?全部的呢?”最后演講廳里面幾乎1/4的觀眾舉起了手。托尼•德瑞斯贊嘆道:“牛啊。”他一邊向全場觀眾微笑,一邊在心里想:“集(Gig)會在此,無比(bit)贊也。”(譯注:原文為“This gig is not a bit bad”,相當(dāng)有水平的雙關(guān)使用,gig 本是現(xiàn)場表演的意思,直譯“這次演出一點也不賴”,但同時gig也是 Gigabyte/Gigabit 平時在英文中的簡寫,對技術(shù)宅來說這句話就是“這一個G一個bit的壞道都沒有”。)
托尼•德瑞斯今天的演講題目是“電影中的數(shù)學(xué)”(Math in the Movies)。主題就是他的工作——怎么把代數(shù)和幾何融入軟件之中,從而渲染出各式各樣的物體,或者驅(qū)動復(fù)雜的物理引擎。托尼解釋說,這套流程,全世界的電腦動畫工作室和電子游戲制作者都在用。他來這里演講的目的之一,就是告訴大家,動畫師和游戲設(shè)計師若有大志,那么數(shù)學(xué)功底一定要過硬。
身為皮克斯的資深科學(xué)家,托尼•德瑞斯數(shù)學(xué)功底何止過硬,簡直是太硬——美國加州大學(xué)伯克利分校的計算機博士,專攻計算物理學(xué),然后又在華盛頓大學(xué)當(dāng)了十多年的計算機工程的教授。托尼•德瑞斯的這場演講,是數(shù)學(xué)博物館在曼哈頓新園區(qū)開設(shè)的 “數(shù)學(xué)奇遇記” 系列演講的第一場。在這之前,他已經(jīng)做過多次類似的演講,每次都會帶來皮克斯的科學(xué)家如何讓技術(shù)更進一步的故事,以及大家喜聞樂見的電影制作秘聞。
在計算機制作的動畫中,頭發(fā)、衣服、流體和氣狀物(比如云、煙、火),都有自己專屬的物理引擎。而到了具體的電影中,這每一大類的專屬模擬引擎又會根據(jù)情況得到進一步增強,表現(xiàn)出更加炫目的效果。托尼•德瑞斯說:“模擬水很簡單;難點在于,用什么方法模擬出來的水,怎樣才像真的水,能被引導(dǎo)往某個方向流動。”(譯注:在歐拉坐標(biāo)系下水流模擬需要的計算機資源太多,而使用拉格朗日坐標(biāo)系進行的追蹤每個格點的模擬需要資源較少,但實際上是在模擬黏性不大不可壓縮的固體。)
皮克斯新作《勇敢傳說》片段。
托尼•德瑞斯舉了《勇敢傳說》(Brave)里面的例子:梅莉達一頭蓬松卷曲的紅發(fā),便是用了全新的物理引擎模擬出來的。(譯注:傳統(tǒng)的頭發(fā)模擬是使用類似漿糊的體積模擬,而不是一絲一絲的進行碰撞模擬,漿糊里面每一個點的波動會傳播到周圍的點,并且有一定的傳播速度和衰減程度,最后這一大塊漿糊被賦予頭發(fā)的絲狀材質(zhì)。而梅莉達的蓬松卷發(fā)則更類似于多體的彈性和非彈性碰撞,故而傳統(tǒng)的頭發(fā)模擬引擎派不上用場。)托尼•德瑞斯和皮克斯動畫師團隊絞盡腦汁,終于制作出來梅莉達那一頭得比真的還真、極具表現(xiàn)力的秀發(fā)模型——當(dāng)然,這頭秀發(fā)的模擬計算量還要我們的超級計算機能承受。
托尼•德瑞斯繼續(xù)解釋:“真實世界里面,頭發(fā)無時無刻都在彼此發(fā)生著碰撞。梅莉達的頭發(fā)有10萬個單獨的有限元,而n個物體在下一時刻有 n2 種碰撞可能,10萬個元就會有100億種可能,如何制作一個能快速模擬出100億種碰撞可能的引擎?這里,我們使用了特別的數(shù)據(jù)結(jié)構(gòu),使得這些碰撞可能性被去粗取精,沒用的碰撞可能性就被剔掉了。打個比方來說,如果對比‘傻而快’的MP3或者JPEG壓縮算法,我們創(chuàng)造的則是頭發(fā)模擬界的FLAC或者PNG的壓縮算法。”(譯者:主流MP3的壓縮算法通過刪除掉高頻率的聲波減少數(shù)據(jù)量。JPEG壓縮算法和MP3類似,首先進行空間到頻率域上的變換,再削掉高頻部分,高對比度的邊緣被平滑后產(chǎn)生的色塊便是壓縮的痕跡。FLAC的壓縮則是在頻率分離之后進行線性預(yù)測,簡單說來,就是聲音有多少頻率,就把多少頻率吸納進來,再進行Colomb碼的進一步數(shù)字層面的壓縮;這種過程是可逆的,所以產(chǎn)生的壓縮是無損的。)

再來一張梅莉達的近照,重點看那圓臉——哦,不——看那比真實更真的頭發(fā)。來源:Pixar

卷發(fā)絲模擬中用彈簧彎曲對比不用彈簧彎曲,在受力之后3幀的區(qū)別。來源:Pixar
托尼•德瑞斯又提到,CG動畫制作經(jīng)常需要模擬超大規(guī)模、尺度精細的物理模型,較之物理學(xué)家平時所需的科學(xué)計算是有過之而無不及。托尼•德瑞斯的工作,就是為這些物理模擬尋找更優(yōu)的算法,保證模擬之尺度的同時又不失微小細節(jié)。德瑞斯風(fēng)趣的說:“導(dǎo)演總是說‘這些都是小問題啦’,這里我負責(zé)地告訴大家——導(dǎo)演都撒謊了。” 如果哪天皮克斯的導(dǎo)演突然有了新點子,導(dǎo)致片中角色或者其相關(guān)的物體的物理性質(zhì)發(fā)生了根本改變,電影的物理模擬需要重新來過,那皮克斯全部4個團隊一起干,都別想一年制作出一部片來。
曲面細分法
托尼•德瑞斯對CG動畫制作界最為重要的貢獻,就是引入了高還原度的曲線/曲面的生成算法:如何將復(fù)雜的形狀分解成電腦可以生成的多邊形。多年以來,電腦動畫和電子游戲制作都在致力于用多邊形來表示一個真實世界的三維物體。但是,使用多邊形的問題就在于,仔細一看,還是看得出來多邊形的棱角的。CG業(yè)界的趨勢是用“平滑”曲面代替多邊形,這些“平滑”曲面會經(jīng)過原來多邊形頂點所在的位置。數(shù)學(xué)家針對此方,發(fā)明了各種快速生成“經(jīng)過固定點的‘平滑’曲面”的方法。
例如曲面細分,將原本一個多邊形按照曲面的曲率拆解成多個多邊形,并且不斷重復(fù)該過程直到達到允許的自由度上限。從曲線的角度來看,連接曲線經(jīng)過的始點和終點的線段是對曲線的“模擬”,如果細分的話,加入曲線上的中點,分別連接始點和終點成為兩條線段,這是對該曲線更好的“模擬”,而這個過程可以不斷進行下去。(譯注:原文說“平滑”曲面可以做到任意放大仍然光滑,實際上計算機是做不到這點的,只能達到人眼解析度沒法分辨的程度。)
曲面細分第一次在皮克斯制作動畫時被大量使用,可追溯到1997年的奧斯卡最佳短片《棋逢敵手》()。這部電影相對于以往基于粗網(wǎng)格多邊形的動畫,那簡直就是驚天地泣鬼神的飛躍,一舉奠定“皮式風(fēng)格”。
1997年奧斯卡最佳短片獎《棋逢敵手》(Geri's Game)。皮克斯在制作該片時首次大量應(yīng)用了曲面細分算法,精致的細節(jié)模擬開創(chuàng)了“皮克斯風(fēng)格”。

《棋逢敵手》的主人公 Geri 頭部的三維曲面細分。來源:Pixar
托尼•德瑞斯當(dāng)時將他在學(xué)術(shù)界的研究成果和多維曲面上的小波計算,應(yīng)用到皮克斯的曲面生成算法中(譯者注:小波變換的一大優(yōu)勢,在于可進行多尺度多分辨率的計算分析)。《棋逢敵手》中 Geri 鼻子的復(fù)雜幾何曲面,還有隨風(fēng)飄動的衣褶;幾年后《超人總動員》(The Incredibles)里,每一個建筑、每一扇窗戶,所有物體的所有細節(jié)都是曲面細分的產(chǎn)物。現(xiàn)在幾乎每個皮克斯動畫制作項目都會用到曲面細分。從計算幾何的學(xué)術(shù)界到個別的動畫短片嘗試,而今曲面細分算飯已然成為CG動畫的行業(yè)標(biāo)準(zhǔn)。
托尼•德瑞斯和他的研究團隊制作電影同時,仍然不忘在學(xué)術(shù)界灌水論文,并且關(guān)注學(xué)術(shù)界最新進展,方能將最新的成果用到皮克斯的動畫渲染引擎中來,不過,現(xiàn)在皮克斯的研發(fā)部門和渲染軟件已經(jīng)不像幾年前那樣領(lǐng)先業(yè)界數(shù)個身位了。以前,一個角色模型的光照和著色,還有定義各種動作的參數(shù)首先是數(shù)學(xué)上的難題,接著是寫代碼上的難題;但現(xiàn)在,像 Blender 一樣的開源軟件,也能比肩皮克斯自主研發(fā)的軟件。2012年夏天,皮克斯發(fā)揚互聯(lián)網(wǎng)的分享精神,將他們的曲面細分代碼庫開源,放到了網(wǎng)站 GitHub 上。對于這一舉動,托尼•德瑞斯解釋說:“我們曾經(jīng)領(lǐng)先業(yè)界十年,不過現(xiàn)在更得益于讓大家來一起參與開發(fā)。”
皮克斯最大的競爭優(yōu)勢,在于其超卓之駕馭新科技的能力,這些新科技又是基于最新的數(shù)學(xué)研究,不但能更好得模擬出物理,渲染出更漂亮的圖形,也為更好得講故事服務(wù)。托尼•德瑞斯和皮克斯并沒有滿足于現(xiàn)在的成就,托尼•德瑞斯告訴講堂里未來的技術(shù)宅小朋友:“世界的某個角落,肯定有天才技術(shù)宅兒童和宅友正在擺弄著類似Blender一樣的工具,而他們,將是下一個皮克斯。”
—— 鄭州奇境視覺動畫公司 收集整理 【中原專業(yè)視覺圖像服務(wù)商-專注于建筑漫游動畫,施工演示動畫,產(chǎn)品展示動畫】
