首頁 > 科技

皮克斯華人CG老鳥深圳創業!低程式碼實現好萊塢大片特效

2021-08-16 03:07:56

金磊 楊淨 發自 凹非寺量子位 報道 | 公眾號 QbitAI

嘿!瞧這行雲流水的飄移,還有這絲滑的運鏡,很颯啊。

友友們,是不是好奇它是咋拍出來的,又是經哪位大導執手?

但真相往往令人不可思議。

它,並不是拍出來的,而是CG技術搞出來的!

別急,還有更意外的。

是連「高中生」都能hold得住的那種!

這就是來自國產特效開發系統ZENO的力作,也即將在SIGGRAPH ASIA 2021中亮相。

效果之驚豔,甚至被會議的reviewers評價道:

推動了視覺領域的新SOTA!Push the new visual SOTA!

這項研究背後團隊,更是不容小覷——計算機圖形學大牛張心欣創辦的澤森科技(ZenusTech)。

一作則是來自KAUST,以及還有來自UCLA的科研人員。

北京大學陳寶權教授曾經這樣評價道:

中國CG-物理模擬領域有兩位新秀,一南一北,很是熱鬧。

改變視覺SOTA的效果

現在先來仔細回憶一個事兒:

是不是在我們看大片的時候,船隻在海上的鏡頭,經常是處於近景狀態?

例如這樣的:

△《加勒比海盜3》截選片段

而且在特效電影中,很少會有鏡頭給到中景或是遠景。

就更不要提從近景到遠景一氣呵成的那種了。

這其中非常重要的原因就是,視覺特效的模擬模擬計算,只能在有限的區域內進行計算:

例如上圖所示的那樣,現在模擬技術只能是在「有界」(bounded)內,處理三維水體運動形態解算。

換言之,鏡頭若是一旦超過了這個範圍,那就會造成我們經常說的「穿幫」了。

而張心欣團隊的工作,之所以能得到reviewers們如此高度的評價,就是解決了這一痛點:

構造出了目前已知能模擬最大體積大範圍海水的方法。而且採用的還是最高效的計算手段。

也正是通過這樣的方法,研究者們成功將原本只能在近景產生的逼真效果,傳遞到了一個「無窮大」的海面上。

不僅如此,還真實地創造了一個比三維解算深得多的「深海」, 給近海面處水體的運動, 提供了正確的運動邊界條件。

那麼頂級影視公司採用的技術,不好用嗎?

可以做一個對比來看下效果。

左右兩側的效果,與中間的參考解相比,可以說是有肉眼可見的差距了。

而與更多的其它方法做對比後,也明顯可以發現,該項研究中的方法,既能得到準確的波形,也能得到更多的水流細節。

現在再來回頭看下本文最初的那個特效,在基於這樣的方法之下,可以看到前面的船產生的浪花,甚至會影響到後面船體產生的浪花形態。

對於這樣的效果,用張心欣的話來說就是:

化有界為無界,便可以追求擬真的更高境界。

如何實現逼真動畫?

要想回答這個問題,就需要先了解一下邊界元技術。

這個技術通常對流體運動做有勢無旋的假設,把大規模水體的NS方程(納維-斯托克斯方程),簡化成了伯努利方程

這就使原本需要在三維網格求解方程的問題,轉變成只需在水體表面上定義和求解拉普拉斯方程。

再簡單來說,就是把原先複雜的三維問題,降到了二維層面來解決。

但流體相比於剛體等,自身就是屬於最難的那種場景,加之理論上又存在於諸多侷限性。

所以邊界元方法即便是處理流體問題,也不會在複雜的情況下多見。

例如因為積分的奇點、控制方程的非線性,、拓撲變化難以處理等問題,就算是數學論文中的BEM,通常只能求解到波峰開始破碎的時刻。

怎麼破?

理論不足,「工程來湊」:

該項研究提出的解決辦法,將邊界元方法發展成了一種具備穩定性,獨立地就能模擬複雜水體動力學的技術。

具體而言,就是將邊界元技術與傳統的FLIP水體模擬方法,進行融會貫通。

例如在上面這個例子中,就不存在三維模擬解算的問題。

所有的計算未知量、計算的時間積分量,都僅僅存在於水體表面網格上。

這樣一來,就大大減少了計算的記憶體或時間消耗。

也正是基於這樣的計算優勢,這種方法就非常適用於大面積、大範圍、大體積水體運動的模擬。

△左側為混合BEM-FLIP的案例, 右側為純三維模擬的參照。

除了技術理論上的研究,澤森的研究人員們為了讓更多人能夠實現諸如此類的特效,還特意打造了一個特效開發系統——ZENO

這個系統不僅僅支援大量先進高階程式語言特性,更大的亮點就是低程式碼

像文章開頭的那張特效,甚至不需要敲任何程式碼就可以實現!

而操作方面也是極度舒適,是「連連看」的那種:

甚至連ZENO中的流體動力學、固體動力學、分子動力學解算器,都是ZENO團隊自己用節點編輯器,而非C++程式碼開發出來的。

苦特效從業者久矣的另一個問題,就是開發高效能GPU程式碼。

這一點上,ZENO也提出了自己獨特的嘗試(此處特別讚揚@archibate, @littlemine)。

它內建的指令碼語言是ZFX,結合ZENO的wrangler一起使用,可以在CPU和GPU上無差別運行

此外,ZENO還提供了一系列好用的工具來幫助人們快速地構建場景。

對於幾何形狀的CSG操作:

對中間的開發步驟進行視覺化:

從幾何形狀產生大量模擬運算的粒子:

並且,ZENO還具備完整的嵌入式計算開發工具鏈。

同樣是在無需程式碼的情況下,就可以把ZENO編輯器開發的計算圖,直接匯入到C++互動式項目中使用,以此來處理物理計算部分:

不僅如此,在移動端(安卓)也可以進行高精度高效能運算!

而且ZENO團隊還非常貼心地附上了案例使用教程

感興趣的友友們,文末自提哦~

從皮克斯走出來的CG大神

能實現如此逼真效果,團隊實力自然不容小覷。

那麼最後,就再來說道說道背後的靈魂人物張心欣,以及他的初創公司——澤森科工

與CG(計算機圖形學)的緣起,得從張心欣的高中時期說起。

跟如今常提到的天才少年不同,他是個嚴重偏科的遊戲小子。

美術和數學就是他最喜歡的課程。他沉迷於文藝復興時期的藝術史,也陶醉於設計和思考數學問題。

至於其他課程emmm……論如何度過漫長的45分鐘。嗯,想必在座各位或多或少研究過。(手動狗頭)

至於玩遊戲,他是認真的。

倒不是欽定幾個遊戲一個勁兒打,而是幾百個單機遊戲都有接觸。

與其說是玩遊戲,倒不如說是遊戲測評。

那個時候當個「遊戲博主」可不簡單,他要從設計者的角度去考慮問題,比如精美畫面、關卡設計、技術實現……

這也就驅動著他去翻技術論壇和網際網路資源,也正是那時候才意識到原來國外精美的3D特效,背後需要如此高深技術才能達到。

張心欣告訴量子位,當時就萌生了個念頭,有朝一日要開發這些頂尖技術,做出頂尖的遊戲。

之後在大學自學CG以及皮克斯實習時光,真正引起了這個想法質變。

因為偏科,擦著二本線的他進到了浙江大學城市學院。

但是在接觸到大學的數學物理教學後,他開始覺醒到原來這些就正是世界大戰以來令人類世界發生鉅變的力量。

在興趣驅使下,張心欣自學圖形學的相關知識和寫程式碼。

最後熟練到什麼程度呢?張心欣回憶道,當時相關領域的博士在一些科研項目上還會時不時向他請教。

從浙大畢業之後,他來到紐約大學讀研究生,也是在那遇到了一生最難得的機會——

前往皮克斯實習

AMP(美國電影藝術與科學學院),也就是頒發奧斯卡獎的那個組委會,在全美知名大學中選出5位電腦科學、數學的研究者,他們有機會前往好萊塢5家頂級工作室暑期實習。

當中就包括皮克斯、夢工廠、工業光魔這些知名團隊。

經過層層面試篩選,他成為了這當中的五分之一,當時收到組委會的通過電話時,他直接激動得在大街上尖叫。

如今回憶起當年的實習歲月,他在皮克斯感受最深刻的就是科學要去服務於藝術

不同於其他的工程師團隊,皮克斯的技術人員除了要將paper轉化為可用工具之外,還要這些工具轉化成藝術家「看得懂、聽得明白、理解的了、能夠會用的一個個積木」

利用本地的超算系統,藝術團隊只需在軟體介面動下滑鼠,所有的畫面效果經過背後不可見計算,直接實時回傳到藝術家的手上。

基於這樣的理念,在去年9月,他創辦了澤森特工,擔任創始人兼CTO。

我在公司當唐僧

取名澤森科工,也叫Zenus,張心欣這樣向我們解釋背後的含義:

Zenus拆解開來,分成Zen,禪宗、佛之意,Venus,則是維納斯,所以中文也叫做佛系維納斯。除了佛系,禪在中文語境下也有道法自然、天然的意思在裡面,也跟物理模擬追求真實與美相契合。

其實在創辦之前,倒是有這樣兩個小插曲。

一個是實習期間,他看到了整個好萊塢影視產業化的全鏈條流程,感嘆於國外頂尖特效技術,而國內類似團隊都很少,與之匹敵更是寥寥。

他就由此萌生了要在國內打造類似團隊的想法。

另一個則是在2018年,當時正好所在公司被谷歌收購,受北大陳寶權教授邀請來到北京電影學院未來影像高精尖創新中心就職,隨後又加入騰訊遊戲。

正是在這兩個分別在電影、遊戲的頂尖技術團隊的工作經歷,讓他了解了當前國內的發展情況。

萬事俱備之後,他創辦了澤森科工,致力於打造ZENO物理模擬平臺,目前團隊10人左右。

他也藉此勉勵那些想出來創業的技術人員:想做就勇敢邁出第一步,比如先與妻子達成共識,得到她的支援和肯定。

如今,公司成立即將滿一年,張心欣感嘆,自己越來越像取經團隊裡的唐僧

小夥伴們技藝都很高超,這我十分佩服。我在團隊中做的,更多是用技術服務於創新這一理念來影響和凝聚整個團隊。

以至於讓整個團隊達到這個共同追求。

對於未來,他希望更多志同道合的小夥伴參與進來,投身進這一項事業上來。

正如曾在他一篇文章提到的那樣:

我們一定要做一邊看電影,一邊推導數學公式和神經元網路的科學家。

ZENO 教程地址:

https://zenustech-documentation.readthedocs.io/zh/latest/index.html

ZENO Embed 使用教程::

https://zhuanlan.zhihu.com/p/397424868

ZENO Embed 案例:

https://github.com/zenustech/zeno_embed_demo

參考連結:

[1]https://zenustech.com/[2]https://github.com/zenustech/zeno[3]https://zjnews.zjol.com.cn/zjnews/hznews/201612/t20161202_2143682.shtml


IT145.com E-mail:sddin#qq.com