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

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

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

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

這些被稱為Building Block的東西, 是樂高的價值, 也是“創造世界”和一個屬于“創造者的世界”的價值。
“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
雷鋒網雷鋒網雷鋒網
雷峰網特約稿件,未經授權禁止轉載。詳情見轉載須知。