2018年4月13日 星期五

【別再說數學沒用】皮克斯稱霸全球的致勝心法:離不開物理、數學、微積分

Pixar 帶領動畫師擺脫簡單的多邊形,用幾何學把故事描述得更加完美。
Tony DeRose 在紐約數學博物館講廳的坐席間不斷穿梭。他身著花哨的帶扣 T-shirt,一身 Pixar 員工的標準打扮,看起來不像印像中的刻板科學家。
「看到這麼多各型各色的人都來聽今天的演講,感覺很棒。」登上講台後,他問:「你們當中有多少人看過皮克斯 ( Pixar ) 的電影?」全場的人都舉手了。
「那看過全部的呢?」最終有幾十個觀眾舉了手,差不多占到全場人數的四分之一。

好的動畫師也要有好的微積分

DeRose 今天演講的主題是「電影中的數學」。該主題就是他的本職工作:將算數、幾何和代數的理論應用到軟體中,渲染出物體或驅動物理引擎。
他今天在這兒的目的之一就是告訴大家,「動畫師和遊戲設計師如果對事業有更高的追求,那麼數學基礎一定要紮實。」
DeRose 可不止有數學功底,他還擁有計算機科學的博士學位,專攻計算物理學,曾在華盛頓大學做過十年的計算機科學與工程學教授。

頭髮、衣服甚至氣體,看動畫「比真的還真」

在皮克斯動畫製作中,頭髮、衣服、液體和氣狀物(比如雲、煙霧和火)都有各自的物理引擎。這些基礎引擎會根據具體情況進一步得到增強,以生成更為精確的效果。
DeRose 說,「模擬水不難,難的是,怎樣讓模擬出來的水可以被引導方向流動。」
在動畫《勇敢傳說(Brave)》中,女主角梅莉達那滿頭濃密的動感十足的亮紅色捲髮就需要全新的物理引擎來模擬。
工作室的動畫師絞盡腦汁,要讓梅莉達的頭髮漂亮、富於表現力,甚至比真頭髮還要真。當然,這樣的秀發模型所需的計算量還得在計算機能承受的範圍之內。
DeRose 說:「在現實世界裡,髮絲一直在發生著碰撞,這樣才顯得頭髮富有彈性且很濃密。梅莉達的頭髮包含了 10 萬個單獨的有限元。如果你懂點組合數學的話,就會知道,如果有 n 個物體,就會產生出 n² 種碰撞的可能。」
對於梅莉達的頭髮,那就是 100 億種碰撞的可能了。怎樣才能在短時間裡渲染出這麼多種頭髮碰撞的情形呢?
對此,皮克斯設計出了一個新的空間數據結構,在不會過度損耗的情況下剔除無用的碰撞可能。
皮克斯就是要針對頭髮模擬創造出 PNG 或 FLAC 這種高水準的壓縮算法,摒棄 MP3 或 JPEG 這類雖然省時間但是很粗糙的算法。

動畫師跟物理學家要做的事「差不多」

DeRose 提到,電腦動畫通常要模擬超大規模且又十分精細的物理模型,與物理學家平時進行的科學計算相比有過之而無不及。
他的主要工作就是為物理模擬尋找更優的算法,在保證規模的同時還要兼顧細節。
DeRose 說,「如果導演哪天又冒出新點子,致使物體或角色的物理機制發生改變,整個模擬過程就得重頭再來,那樣即使皮克斯所有的四個團隊同時開工,也沒法保證一年出一部片子。」
DeRose 對計算機動畫製作最重要的貢獻,就是設計出可快速生成高還原度的平滑曲線的算法,「主要問題就是將復雜的形狀分解為計算機可以生成的圖形。」
多年來,在計算機動畫和電子遊戲制中,都是用平面或多邊形來表示三維物體。
然而,使用多邊形的問題在於,放大細節看時還是能分辨出一個個多邊形的棱角,尤其當略過單幀畫面或個別像素時,就更容易產生這種錯覺。業界的趨勢是用曲面取代多邊形,因為曲面在放大縮小畫面時候都是平滑連續的。

細分曲面超「搞剛」但成品讓人美哭

但曲面仍然需要被迅速拆解成有限個數的點或者平面。對此,數學家發明了各種能快速生成平滑曲面的方法。這些曲面通常稱為「細分曲面(subdivision surfaces)」,因為他們是通過不斷對線段取中點並連接而得出的。
細分曲面在皮克斯出品的《棋逢敵手(Geri’s Game)》中首次得到應用。這部動畫獲得了 1997 年奧斯卡最佳短片獎。相較於先前以多邊形為基礎的動畫,這部動畫實現了驚天動地的飛躍,一舉奠定了「皮克斯風格」。
DeRose 改進自己對多維曲面上小波計算的研究成果,設計出一個生成曲面的新算法。這一算法起初只是用來應對製作特別棘手的動畫形象,比如老人的鼻子、衣服褶皺的擺動等。如今皮克斯電影裡幾乎所有物體都運用了細分曲面。
DeRose 展示了《超人總動員(The Incredibles)》的一幅劇照,他指著畫面背景說:「這座建築、每一扇窗戶,這些所有物體的細節都是用細分曲面生成的,也許你會為此感到驚訝。」
從 Derose 與其他計算機科學家在學術界做出的應用性研究,到個別動畫短片的嘗試,而今曲面細分算法已然成為 CG 動畫的行業標準。

皮克斯將技術理論回饋社會

DeRose 和他的皮克斯研究團隊仍在持續發論文,並將新技術應用於他們的動畫引擎。然而,皮克斯今非昔比,它的研發部門和專利軟體已經不似從前在業界一枝獨秀了。
以前,一個角色模型的光照和著色、定義各種動作的參數等問題,首先是數學上的難題,然後是寫代碼上的挑戰。
但是如今,像 Blender 這樣的開源軟體,幾乎可以媲美皮克斯自主研發的軟體可以直接做這些了。 2012 年夏天,皮克斯竟然將自己細分曲面的代碼庫開源了。
對此,DeRose 解釋:「過去十年,我們皮克斯領先業界,但現在,我們得依靠大家的貢獻才能創造更大的價值。」
皮克斯最大的競爭優勢在於,它擅長以數學驅動技術,不滿足於製作出更漂亮的圖形,還要講出更動人的故事。
DeRose 和皮克斯並沒有躺在已有的成就上睡大覺。 DeRose 對著觀眾席的孩子和大人說:「在某個地方的某個車庫裡,一個聰明的孩子和朋友們正在搞大事呢。他們不僅在用 Blender 這樣的工具,還在改進工具。他們,將成為下一個皮克斯。」
(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈 皮克斯經典動畫怎麼練成?離不開數學、模型和算法 〉,圖片來源:YouTube。)

沒有留言:

張貼留言