作者 | 張心欣
編輯 | 維克多
利用流體動(dòng)力學(xué)制作視覺特效,已經(jīng)成為“大片”的標(biāo)配。而諸如洪水、煙霧、爆炸等特效計(jì)算的背后,實(shí)際上是用計(jì)算機(jī)程序在求解已有百年歷史的“納維-斯托克斯方程”:
數(shù)十年來(lái),科學(xué)家們?yōu)榱擞?jì)算機(jī)翼升力,已經(jīng)從各個(gè)角度、各個(gè)姿勢(shì)將其研究了百千遍。
然而基于影視制作的特別需求,“水體模擬界”的特效工程師們對(duì)這個(gè)方程求解提出了新的要求。既要減少計(jì)算的內(nèi)存或時(shí)間消耗,又要適用于大面積、大范圍、大體積水體運(yùn)動(dòng)的仿真。另一方面,現(xiàn)有的仿真技術(shù),只能在有界(bounded)的范圍內(nèi)進(jìn)行三維水體(volumetric)運(yùn)動(dòng)形態(tài)解算,鏡頭一旦拉遠(yuǎn),就穿幫了。如何低消耗地正確捕捉水體的形態(tài)、動(dòng)態(tài)?近日,一篇題為”Ships, Splashes, and Waves on a Vast Ocean“, 論文的作者(一作 黃立博)來(lái)自于KAUST,澤森科工以及UCLA,作者將其放上了arXiv,并將發(fā)表于即將召開的圖形學(xué)頂會(huì)siggraph asia 2021。
在論文中,研究員提出了一種大海域仿真計(jì)算技術(shù):創(chuàng)新地將邊界元技術(shù)與傳統(tǒng)的FLIP水體仿真方法融會(huì)貫通,構(gòu)造出了目前已知能以最高效的計(jì)算手段仿真最大體積、大范圍海水的方法。
這項(xiàng)技術(shù)被reviewer稱為:“push the new visual SOTA”。發(fā)展邊界元技術(shù)
邊界元技術(shù)通過(guò)對(duì)流體運(yùn)動(dòng)做有勢(shì)無(wú)旋的假設(shè),把大規(guī)模水體的“納維-斯托克斯方程”簡(jiǎn)化成了伯努利方程:伯努利方程可以在不可壓無(wú)散假設(shè)下,將原本需要在三維網(wǎng)格上求解的方程轉(zhuǎn)化為了只需要在水體的表面上就能定義和求解的拉普拉斯方程。將問(wèn)題從3維轉(zhuǎn)化為了2維,這十分吸引人。 然而由于自身的多種理論局限性(奇點(diǎn),邊界積分,拓?fù)渥兓龋?不常見于復(fù)雜的流體仿真。由于積分的奇點(diǎn)、控制方程的非線性、拓?fù)渥兓y以處理等問(wèn)題,數(shù)學(xué)界論文中的“邊界元法(BEM)”通常只能求解到波峰開始破碎的時(shí)刻。Grilli et. al. A fully nonlinear model for three-dimensional overturning waves over arbitrary bottom, International Journal for Numerical Methods in Fluids為此,研究者們?cè)贒a Fang et. al. 2016(Surface Only Liquids)的基礎(chǔ)上,用工程技巧彌補(bǔ)理論不足,將BEM進(jìn)一步推廣成了一種穩(wěn)定地、獨(dú)立就能模擬復(fù)雜水體和邊界運(yùn)動(dòng)的技術(shù):上圖特效的計(jì)算,不存在三維仿真解算, 所有的計(jì)算未知量, 以及計(jì)算的時(shí)間積分量都僅僅存在于水體表面網(wǎng)格上,大大減少了計(jì)算的內(nèi)存或時(shí)間消耗。因此,這樣的計(jì)算優(yōu)勢(shì),正好適用于大面積、大范圍、大體積水體運(yùn)動(dòng)的仿真。圖注:左側(cè)為混合BEM-FLIP的案例, 右側(cè)為純?nèi)S仿真的參照
如上所示,邊界元建模由于對(duì)三維NS方程的近似足夠充分, 足以自動(dòng)地捕捉水體運(yùn)動(dòng)的細(xì)節(jié)現(xiàn)象, 包括翻卷的浪花。為什么BEM-FLIP有效?

借助邊界元法和體積模擬解算技術(shù)的耦合, 研究者們將“近景“處用嚴(yán)謹(jǐn)?shù)娜S體積解算所帶來(lái)的細(xì)節(jié)效果和波浪,成功地通過(guò)邊界元的海水仿真?zhèn)鬟f了出去。
形象地說(shuō),是將“效果”傳遞到一個(gè)”無(wú)窮大“的海面上,并借由邊界元海水的仿真,真實(shí)地創(chuàng)造了一個(gè)比三維解算深得多的”深?!?。為近海面處水體的運(yùn)動(dòng), 提供了正確的運(yùn)動(dòng)邊界條件。圖注:左:SWE的結(jié)果, 波形、波速與參考解三維NS仿真相去甚遠(yuǎn)。中:參考解,三維NS仿真。右:BEM計(jì)算的結(jié)果。
對(duì)比一些頂級(jí)的影視技術(shù)公司曾采用的用shallowwater(潛水方程)來(lái)做海水拓展的技術(shù)方案。如上圖所示,采用邊界元以及伯努利方程這種建模方法得到的流體運(yùn)動(dòng)則和參考解十分吻合,同時(shí)大大降低了計(jì)算量。為什么shallowwater效果不好,澤森科工的研究者表示:“潛水方程由于在對(duì)納維-斯托克斯方程簡(jiǎn)化的過(guò)程中做了過(guò)多簡(jiǎn)化假設(shè)(比如流體速度在y方向一致), 所得出的結(jié)果,即使在不太深的水體運(yùn)動(dòng)中,也與真實(shí)解相去甚遠(yuǎn), 難以捕捉大范圍水體的真實(shí)運(yùn)動(dòng)。”
對(duì)于納維爾斯托克斯方程的求解歷久彌新,看來(lái)基于物理的計(jì)算仍然是人們?cè)佻F(xiàn)自然現(xiàn)象的最佳手段。
圖注:上:BEM+FLIP。中:參考解三維FLIP仿真(真心疼這臺(tái)機(jī)器)。下:基于波動(dòng)方程的仿真。
在與其它基于波方程求解的對(duì)比中,研究者們發(fā)現(xiàn),采用BEM+FLIP求解的方案,既能得到準(zhǔn)確的波形,也能得到更多的水流細(xì)節(jié)。
化有界為無(wú)界,便可以追求擬真的更高境。如上圖中,可以看到前面的船產(chǎn)生的浪花甚至?xí)绊懙胶竺娲w產(chǎn)生的浪花形態(tài)。

由于邊界元方法給出的速度場(chǎng)是等效于體積求解的,雖然未知量只定義在邊界上,卻可以在整個(gè)體積內(nèi)用邊界積分方法得出任意點(diǎn)的正確流速, 這使得對(duì)獲得的仿真數(shù)據(jù)進(jìn)行后期加工成為了可能。
如上述動(dòng)圖所示,運(yùn)用此方法,可以和任何標(biāo)準(zhǔn)化制作流程一樣通過(guò)后期再對(duì)流體進(jìn)行泡沫(white water)仿真解算來(lái)增加額外的細(xì)節(jié)和真實(shí)感。誰(shuí)是張心欣?
這篇論文的作者之一是張心欣,是一個(gè)計(jì)算機(jī)圖形科學(xué)的研究者和創(chuàng)業(yè)者。他曾經(jīng)在世界頂尖的動(dòng)畫工作室皮克斯實(shí)習(xí);在全球領(lǐng)先的視覺效果公司維塔數(shù)碼(weta digital)從事研發(fā),間接參與《霍比特人3:五軍之戰(zhàn)》的制作。張心欣博士畢業(yè)于加拿大英屬哥倫比亞大學(xué)(UBC),導(dǎo)師是AutoDesk的首席科學(xué)家Robert Bridson。加拿大的求學(xué)經(jīng)歷和該國(guó)完整的圖形軟件產(chǎn)學(xué)研環(huán)境(Autodesk,SideFX, ZivaDynamics等都是加拿大企業(yè))對(duì)其產(chǎn)生了技術(shù)產(chǎn)業(yè)轉(zhuǎn)化的影響. 畢業(yè)后工作于皮克斯和 Lytro。
2018年,陳寶權(quán)教授邀請(qǐng)他回國(guó)加入北京電影學(xué)院未來(lái)影像高精尖創(chuàng)新中心。在北京電影學(xué)院期間,曾研究撰寫論文“Efficient and Conservative Fluids with Bidirectional Mapping”,并成功發(fā)表在SIGGRAPH 2018會(huì)議上。張心欣博士是計(jì)算機(jī)圖形學(xué)領(lǐng)域的專家和技術(shù)高手,有感于中國(guó)學(xué)術(shù)界在頂級(jí)科研上已不乏卓越貢獻(xiàn),中國(guó)在相關(guān)軟件技術(shù)的產(chǎn)業(yè)落地方面仍然乏善可陳。他創(chuàng)立深圳澤森軟件科技有限公司 ,將學(xué)術(shù)科研融入工具平臺(tái)之中,希望為相關(guān)產(chǎn)業(yè)的軟件工具研發(fā)貢獻(xiàn)一份中國(guó)力量。“澤森公司自主研發(fā)的ZENO節(jié)點(diǎn)化計(jì)算平臺(tái),致力于降低計(jì)算機(jī)圖形學(xué)門檻,讓更多的創(chuàng)想工作者能夠?qū)崿F(xiàn)逼真的仿真模擬?!?/span>ZENO是什么?
ZENO是一款低代碼平臺(tái)系統(tǒng),支持大量先進(jìn)高級(jí)編程語(yǔ)言特性。諸如條件跳轉(zhuǎn),循環(huán),構(gòu)建與封裝子計(jì)算圖(函數(shù)),函數(shù)體(callable),甚至采用子計(jì)算圖自嵌套進(jìn)行遞歸。
甚至在節(jié)點(diǎn)編輯器中就地創(chuàng)建新的,系統(tǒng)中不具備的用戶自定義數(shù)據(jù)結(jié)構(gòu)。而所有這些特性,不需要寫代碼, 通過(guò)節(jié)點(diǎn)連連看的形式,結(jié)合教程,都有可能掌握。圖注:zeno的zfx腳本對(duì)場(chǎng)景物體運(yùn)動(dòng)進(jìn)行編輯后產(chǎn)生的海浪動(dòng)畫
ZFX腳本語(yǔ)言作為ZENO內(nèi)置的腳本語(yǔ)言,結(jié)合ZENO的wrangler使用,可以在CPU和GPU上無(wú)差別運(yùn)行,大大減少用戶開發(fā)高性能GPU代碼的煩惱。甚至, 連ZENO中的流體動(dòng)力學(xué),固體動(dòng)力學(xué),分子動(dòng)力學(xué)解算器,都是ZENO團(tuán)隊(duì)自己用節(jié)點(diǎn)編輯器而非C++代碼開發(fā)出來(lái)的,更重要的是,所得到的流體動(dòng)力學(xué)解算工具,更比現(xiàn)在廣泛應(yīng)用于影視計(jì)算產(chǎn)業(yè)的軟件有高達(dá)4倍的加速以及低至0.5倍的計(jì)算內(nèi)存占用等優(yōu)勢(shì)。
ZENO效仿現(xiàn)有的先進(jìn)計(jì)算平臺(tái)系統(tǒng)的模塊化的設(shè)計(jì)模式, 將所有的工具化整為零, 讓用戶們來(lái)進(jìn)行化零為整,從而兼具了工具化與高靈活度的優(yōu)勢(shì)。
用底層的高性能計(jì)算框架(zpc : ZenusParallelCompute也是一個(gè)ZENO旗下的開源框架)保證代碼的高性能;用高度經(jīng)驗(yàn)的工程師開發(fā)出來(lái)的計(jì)算模塊保證計(jì)算模塊的置信度和穩(wěn)健性;用拼接來(lái)達(dá)到無(wú)窮的變化,并隱式地保證整個(gè)計(jì)算過(guò)程的可靠程度。“用ZENO定義出來(lái)的計(jì)算過(guò)程所達(dá)到的結(jié)果,其下限隨時(shí)有可能是一個(gè)博士數(shù)年研發(fā)所追求的上限。而ZENO追求的上限則是‘整個(gè)世界’。”用ZENO提供的計(jì)算開發(fā)平臺(tái)設(shè)計(jì)計(jì)算過(guò)程,不需要掌握物理, 也不需要掌握編程,只需在設(shè)計(jì)空間(mind space)將對(duì)現(xiàn)實(shí)社會(huì)的認(rèn)知和理解推到極致,并借由ZENO來(lái)表達(dá)。最后, 提一下ZENO系統(tǒng)的名字的由來(lái)。

樂高, 可以得到各種各樣的高樓大廈和機(jī)器人。
但實(shí)際上樂高是這樣的:

這些被稱為Building Block的東西, 是樂高的價(jià)值, 也是“創(chuàng)造世界”和一個(gè)屬于“創(chuàng)造者的世界”的價(jià)值。
“ZENO, For the imagineer inside you”
zeno github OpenSource address: https://github.com/zenustech/zenohttps://github.com/zenustech/zeno_addon_wizard https://zenustech-documentation.readthedocs.io/zh/latest/index.htmlhttps://zhuanlan.zhihu.com/p/397424868https://github.com/zenustech/zeno_embed_demo
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。