學習CFD,沒準還能成為電影藝術(shù)家

2017-02-09  by:CAE仿真在線  來源:互聯(lián)網(wǎng)



計算機模擬的作品


流體所指的也不單單只是液體而已,還包含了火焰、煙霧、氣體等。而煙霧跟液體最大的差別在于,液體會有固定的體積,氣體則不是。從1960年代中期以來,流體動力學(CFD,computational fluid dynamics)或流體模擬的科學就開始在工程問題中得到應用。流體的方程式和數(shù)學原理可以用于建立諸如氣象模型、天氣預報、管道中水的流動和飛機機翼周圍的氣流這樣的對象。

流體模擬已經(jīng)成為眾多特效電影的一個重要部分,即便如此,它還是沒有被大多數(shù)普通藝術(shù)家很好地理解。我們對流體模擬背后的科學進行了解釋,特別深入地研究了一個最具有代表性的一款流體模擬軟件:Naiad(電影特效CFD軟件)


發(fā)展史

  在電腦圖形工業(yè)發(fā)展之前,早至20世紀50到60年代,流體模擬就已經(jīng)被活躍地研究并且有了數(shù)學模型?;厮葜?0年代,一個起主要影響研究的開創(chuàng)者就是Los Alamos國家實驗室的T3組織。James Harlow是這個組織的領(lǐng)導者,Harlow和他的團隊研究出工業(yè)化應用的理論,包括我們在下面會解釋的交錯MAC(marker-and-cell)網(wǎng)格結(jié)構(gòu),和PIC(Particle In Cell)方法,而后者就是今天FLIP、MPM和其他復合方法的前身!

  可惜,多數(shù)用于真實世界的CFD方法對視覺特效流體模擬來說顯得不必要地復雜,而且數(shù)量很少。在計算機圖形學領(lǐng)域,重要的先鋒有Nick Foster和Dimitris Metaxas,他們計算了不可壓縮和自由表面流體。正如我們下面所要強調(diào)的可壓縮性,是通向可行解決方案的一個關(guān)鍵途徑,但許多人都不能直觀地理解。在Foster和Metaxas之前,視覺特效中的水都沒有用物理學方法,大多數(shù)是運用了2D或者位移和凹凸貼圖這類小“詭計”。Alias Wavefront的Jos Stam對不可壓縮氣態(tài)流體所做的工作也十分顯著。在他1999年的Siggraph論文中,闡述了為什么比起關(guān)鍵幀動畫,模擬動畫是如此地重要。

  與關(guān)鍵幀或過程依賴技術(shù)不同,物理模型(流體模擬)可以讓一個動畫師毫不費力地創(chuàng)造有趣的類似漩渦流體行為。而且,流體與物體和虛擬力之間的互動能被輕松處理。Jos Stam. (1999). Stable Fluids, SIGGRAPH 1999 Conference Proceedings: SIGGRAPH Annual Conference Series. pp. 121-128.

  在90年代早期,在Waterworld 和 Titanic這樣的電影中,證明電腦合成的水圖像是可以達到很高真實度,但是這種真實大都局限于平靜、開闊的海洋鏡頭。Jerry Tessendorf, Rhythm and Hues (R&H)的首席圖形科學家,在水特效的發(fā)展過程中做了大量的工作,因為他們研究的在CFD領(lǐng)域中傳統(tǒng)流體動力學工具,他和R&H的其他三個成員一起獲得了2008年學院獎的Technical Achievement 獎項。

  Stanely Osher做了開創(chuàng)性工作,使用層集方法表達動力學表面,后來他的博士生Ron Fedkiw將層集方法帶入圖形學并且創(chuàng)造了PLS( Particle Level Set )方法,這個方法通過沿流體表面種植粒子來保持其它方法可能損失的次網(wǎng)格質(zhì)量,減少了純層集方法的質(zhì)量損失。Fedkiw的工作有極大的重要性,他獲得了來自動態(tài)圖像藝術(shù)與科學學院的技術(shù)成就學術(shù)獎?,F(xiàn)在他是斯坦福計算機科學的副教授,發(fā)表了超過80篇計算物理、流體和視覺方面的論文。過去的十年中,他一直擔任工業(yè)光魔(Industrial Light & Magic ,ILM)的顧問,在銀幕上也有所成就,參與了 Terminator 3: Rise of the Machines(終結(jié)者3), Star Wars: Episode III – Revenge of the Sith(星球大戰(zhàn)), Poseidon 和 Evan Almighty電影的制作。

  Robert Bridson,反過來又是 Ron Fedkiw的博士生,作為PhysBAM項目的創(chuàng)始人之一,在Fedkiw的管理下與工業(yè)光魔一起工作。PhysBAM延續(xù)了工業(yè)光魔物理模擬編程的主要工作。Bridson針對那些主要的研究者比如Harlow 追溯了20世紀60年代早期的研究,然后為不可壓縮流體引入了 PIC/FLIP方法,同時也將不可壓縮FLIP方法帶入圖形學。FLIP方法和它的變體在流體模擬的傳遞階段有一個總數(shù)值擴散的近似缺陷,因為它將所有的數(shù)量都平流輸送到粒子而不是網(wǎng)格上。

  在PhysBam項目中,Bridson幫助編寫了布料模擬代碼,這個使運用在工業(yè)光魔制作的Star Wars Episode II: Attack of the Clones(星球大戰(zhàn)前傳2)中。然后Bridson 到了英國為Double Negative合作設(shè)計了噴濺流體模擬器,在許多電影的煙、水、火、云、水墨特效中都可以見到,這包括Harry Potter and the Half-Blood Prince(哈利波特和混血王子)、2012、 The Boat that Rocked、 Inkheart、 Quantum of Solace(量子危機)、The Dark Knight 和Hell Boy II: The Golden Army(地獄男爵2)。

  正是在英國,Bridson 碰到了另一個業(yè)內(nèi)傳奇—— Marcus Nordenstam ,他們一起在2008年成立了Exotic Matter公司。Exotic Matter是Naiad流體模擬軟件的制造者,這個軟件參與了許多震撼的流體特效制作,包括Avatar(阿凡達)、Narnia: Voyage of the Dawntreader(納尼亞傳奇)、X-Men First Class、 Harry Potter and The Deathly Hallows Part 2(哈里波特和死亡圣器2)、Pirates of the Caribbean: On Stranger Tides(加勒比海盜:陌生的潮汐)、Rise of the Planet of the Apes(猩球崛起)等許多電影。Nordenstam現(xiàn)在有超過15年的VFX R&D和特效模擬經(jīng)驗。他聯(lián)合研發(fā)了curl-noise,開創(chuàng)了火焰模擬中FLIP方法的運用,與 Bridson合作設(shè)計了噴濺流體模擬器。在參與組建Exotic Matter公司之前,Marcus在工業(yè)光魔有高級工程師的職位,在那里他是Zeno項目初始設(shè)計者之一。他在銀幕上的貢獻有 Star Wars Episode II、Spider-Man 2, Hellboy II、Inkheart、 Harry Potter and the Half-Blood Prince 和Avatar。

  作為Exotic Matter公司的一部分,Nordenstam 和公司的其他人深深地投入到關(guān)鍵方向之中,尤其是在公司早期的時候。最緊張之時,他們在新西蘭威靈頓的Weta Digital做為R&D部門工作了十個月,制作了諸如Avatar這樣的電影。

  Naiad軟件獲得了巨大的難以置信的成功,如今它有資格代表流體模擬藝術(shù)的發(fā)展現(xiàn)狀。當然沒有一個模擬器能做好每一個方面, Naiad因它的可擴展性、可信度和真實性廣受歡迎。今天在流體模擬領(lǐng)域有幾個主要的公司。Munich-based Scanline Productions (Stephan Trojansky領(lǐng)導) 和它們的獲獎軟件Flowline,幫助MPC(The Moving Picture Company )公司在Poseidon(海神號)電影中制作了逼真的海水,幫助Scanline沖垮了2012中的大部分建筑,還原了 Clint Eastwood的 Hereafter的恐怖。還有其他許多非定制流體工具,比如Maya、Hodini和其它專家公司或小組比如Blender 3D、 RealFlow、 FumeFX、Dynamite、ICE (Softimage/XSI軟件的一部分)、 PhyFluids3D等等許多。但在這個文章中,我們只對Naiad的科學進行試驗,對Naiad藝術(shù)背后的科學進行深入的研究。


基本概念

  有些流體模擬是主要是關(guān)注于表面屬性,比如在早期,海水模擬制作出來的半平坦的大洋。最近的模擬都關(guān)注于體積,這樣既能表達一個傾瀉鏡頭或者洪水在剛體周圍沖擊的鏡頭,也能表達水下位置的高度對水表面的影響,即在海灘上陸地降低造成的破碎波(Breaking waves)。上述關(guān)于體積的流體模擬底層的一些基本問題列出如下:

  • 質(zhì)量守恒,即模擬過程(或者說算法)中水不會消失。

  • 動量或能量守恒。

  • 體積守恒->即不可壓縮性->不像真實的水,這可能看上去很奇怪,聲音不可以在水下傳播嗎?但對于視覺特效來說,這個假設(shè)已經(jīng)足夠接近真實,使數(shù)學運算極大地簡化

  • 相關(guān)加速度(connective acceleration)—空間控制的加速度,例如水流出去或者灌入時作用于流體的主要有兩種力,用一兩段我們可以用數(shù)學把它們表示出來的話說,流體被認為受重力和它自己壓力的影響。

  • 對于大多數(shù)流體我們忽略了粘度,但不是全部忽略,粘度影響小的時候我們忽略它

  • 邊界情況——最后也是最關(guān)鍵的——流體的邊界非常重要,那可能是一個表面或者一個分界。在Bridson的書Fluid simulation for CG (2008)中,提到“大多數(shù)數(shù)字流體模擬的‘趣味’就在于正確地得到邊界情況。”有三種情況——固體面,或自由流動的表面,和最困難的,其他液體(最后一種情況在電影中很少見)。


模擬解算斯托克斯方程

  Navier-Stokes方程是一套描述多種流體(包括氣體)行為的方程。Navier-Stokes方程已經(jīng)出現(xiàn)了兩百年左右,但如同我們上文中所做的規(guī)避,它是一套一般問題的子集,建立在一些特效工業(yè)最關(guān)注的關(guān)鍵性假設(shè)之上。Navier Stokes方程的解并不是一個42之類的數(shù)字,它解出一個速度場——或者說一個復合矢量。Navier Stokes方程不指示位置,而是速度。這點很重要,也困惑了很多人——這些矢量不是如同速度一樣分布在空間中的點。我們得到的是一個層流等式,描述微?;蛘哂糜嬎銠C圖形學的術(shù)語來說——粒子——在速度場作用下的移動。

  Navier Stokes方程,因Claude-Louis Navier和 George Gabriel Stokes而命名,描述了流體物質(zhì)的運動。在半技術(shù)術(shù)語中這些等式是將牛頓第二定律運用于流體運動中而得來(F=ma),但同時也使用了一個說法,流體“壓強”,即流體運動趨向的方向,是一個擴散粘度項的綜合(與速度梯度成正比),加上一個壓力項。

  這個方程很有用處,因它描述了許多理論和經(jīng)濟上感興趣的物理現(xiàn)象。它們可以用于建立天氣模型,海洋涌流,管道水流和翅膀周圍的氣流模型。Navier–Stokes方程,以完整和簡化形式用于航空器和車輛的設(shè)計、血流動力學的研究,發(fā)電站的設(shè)計、污染分析以及其它許多方面。

  Navier–Stokes的一個解叫做速度場或者流場,即描述了一種在一個給定的空間和時間的點流體流動的方法。只要解出速度場,與一個真實可信的鏡頭有關(guān)的其它事情,比如流動速度或者拖曳力就能夠被得到。傳統(tǒng)機械或者剛體模擬得出的解都是典型的粒子位置軌跡或者運動偏向,這與流體模擬不同。研究速度而不是位置使我們更加了解流體;無論怎樣要達到視覺目的,這樣都可以計算出不同類型軌跡。這里是一個極簡數(shù)學模型——建立在上述假設(shè)之上,這個“不可壓縮斯托克斯方程”就足夠了。


學習CFD,沒準還能成為電影藝術(shù)家cfx培訓課程圖片1


加速度+某東西+在壓力與密度的改變=本體的力+動態(tài)的黏度

但是假定流體是不可壓縮的話,黏度的計算就可以被忽略

加速度+0+在壓力與密度的改變=本體的力+0

整理一下公式會得到:

加速度=本體的力-壓力與密度的變化


  而密度又等于質(zhì)量除以體積, 壓力的改變又與體積有關(guān), 流體的某一點的加速度=重力(外力)-壓力,就是密度的改變,因此流體的加速度就與他所受到的力相關(guān)。流體的某一點的加速度=重力(外力)-壓力或是密度的改變,流體的加速度就與他所受到的力相關(guān)。

  這樣的公式要怎樣實際導入到流體軟件里面呢?如果直接把公式寫成程序語言很簡單,但是實際在計算的時候需要考慮產(chǎn)業(yè)需求,計算機運算時間。寫實度往往必須跟速度達到平衡。因此實際上需要很多偷步的技巧才能滿足不同流體狀況。其中一種偷步技巧是Surface Tracking Euler method。他是用Height map來控制流體表面,但是忽略掉水面以下發(fā)生的事情。某些軟件的解算法并不能滿足所有尺度, 從小尺度的倒酒杯到大尺度翻滾海浪上的船。某些則是數(shù)學公式上面有缺陷,會導致流體會隨著時間讓體積越來越小, 例如在測試《加勒比海盜神鬼奇航:幽靈?!防锩嬗幸荒徊A溲b載了美人魚, 而Naiad則是解決了這方面的問題。

以下是可以在合理的時間里面計算出寫實流體的一些關(guān)鍵技術(shù)點:

SPH(Smooth Particle Hydrodynamics)

一種用Navier-Stokes的粒子系統(tǒng),仿真完后再把這些粒子變成polygon。這種方式對于倒酒的流體特效很適合,但是對于如海水般大量流體就會有困難。

學習CFD,沒準還能成為電影藝術(shù)家cfx結(jié)果圖片2


Volume Grid
  只有表面的流體, 又被稱為Volume Fluids。例如在Houdini里面,可以很有效率地描述海洋波浪的高度與頻率, 這種方法沒有粒子, 對于小尺度的倒酒效果不合適. 這種方法通成被稱為Euler法。

FLIP

FLIP解算法是粒子解算法與volume解算法兩種的混合,《加勒比海盜神鬼奇航:幽靈海》美人魚裝在玻璃牢籠里面的流體, 就是用Naiad的FLIP模擬出來的。FLIP跟粒子或是SPH相比最大的優(yōu)點在于每個Frame需要計算公式的次數(shù)不需要這么多,SPH解算法在計算的時候,每個Frame都要計算好幾次,有點像是時間上的反鋸齒計算,這樣的公式往往必須要解算10-100次才有可能得到好效果,要不然很容易產(chǎn)生分子炸開的問題。Houdini也提供三種解算模式,包含了FLIP的方式。針對Houdini 11 Side Effects的資深數(shù)學家Jeff Lait說: ” 當FLIP流體被解算的時候, 會暫時產(chǎn)生速度場,粒子的速度場會被轉(zhuǎn)移到grid里面。用來處理流體的彈射方向,這樣可以避免粒子重迭,也可以避免它們都往同一個方向移動。FLIP流體的另外一個優(yōu)點是不同的流體可以迭在一起,不會影響到系統(tǒng)的穩(wěn)定度。SPH法當兩個粒子很靠近的時候很容易就炸飛,對于FLIP來說,你可以添加新的粒子到流體里面,例如石頭丟到水里面飛濺起來的分子。

學習CFD,沒準還能成為電影藝術(shù)家cfx結(jié)果圖片3



開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學成才

相關(guān)標簽搜索:學習CFD,沒準還能成為電影藝術(shù)家 ansys-cfx流體分析培訓 CFX培訓 cfx技術(shù)教程 cfx資料下載 cfx視頻教程 cfx學習資料 cfx軟件下載 ansys cfx編程二次開發(fā) CFX代做 CFX基礎(chǔ)知識 Fluent、CFX流體分析 HFSS電磁分析 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com