學(xué)習(xí)CFD,沒(méi)準(zhǔn)還能成為電影藝術(shù)家
2017-02-09 by:CAE仿真在線 來(lái)源:互聯(lián)網(wǎng)
計(jì)算機(jī)模擬的作品
流體所指的也不單單只是液體而已,還包含了火焰、煙霧、氣體等。而煙霧跟液體最大的差別在于,液體會(huì)有固定的體積,氣體則不是。從1960年代中期以來(lái),流體動(dòng)力學(xué)(CFD,computational fluid dynamics)或流體模擬的科學(xué)就開(kāi)始在工程問(wèn)題中得到應(yīng)用。流體的方程式和數(shù)學(xué)原理可以用于建立諸如氣象模型、天氣預(yù)報(bào)、管道中水的流動(dòng)和飛機(jī)機(jī)翼周?chē)臍饬鬟@樣的對(duì)象。
流體模擬已經(jīng)成為眾多特效電影的一個(gè)重要部分,即便如此,它還是沒(méi)有被大多數(shù)普通藝術(shù)家很好地理解。我們對(duì)流體模擬背后的科學(xué)進(jìn)行了解釋,特別深入地研究了一個(gè)最具有代表性的一款流體模擬軟件:Naiad(電影特效CFD軟件)
發(fā)展史
在電腦圖形工業(yè)發(fā)展之前,早至20世紀(jì)50到60年代,流體模擬就已經(jīng)被活躍地研究并且有了數(shù)學(xué)模型?;厮葜?0年代,一個(gè)起主要影響研究的開(kāi)創(chuàng)者就是Los Alamos國(guó)家實(shí)驗(yàn)室的T3組織。James Harlow是這個(gè)組織的領(lǐng)導(dǎo)者,Harlow和他的團(tuán)隊(duì)研究出工業(yè)化應(yīng)用的理論,包括我們?cè)谙旅鏁?huì)解釋的交錯(cuò)MAC(marker-and-cell)網(wǎng)格結(jié)構(gòu),和PIC(Particle In Cell)方法,而后者就是今天FLIP、MPM和其他復(fù)合方法的前身!
可惜,多數(shù)用于真實(shí)世界的CFD方法對(duì)視覺(jué)特效流體模擬來(lái)說(shuō)顯得不必要地復(fù)雜,而且數(shù)量很少。在計(jì)算機(jī)圖形學(xué)領(lǐng)域,重要的先鋒有Nick Foster和Dimitris Metaxas,他們計(jì)算了不可壓縮和自由表面流體。正如我們下面所要強(qiáng)調(diào)的可壓縮性,是通向可行解決方案的一個(gè)關(guān)鍵途徑,但許多人都不能直觀地理解。在Foster和Metaxas之前,視覺(jué)特效中的水都沒(méi)有用物理學(xué)方法,大多數(shù)是運(yùn)用了2D或者位移和凹凸貼圖這類(lèi)小“詭計(jì)”。Alias Wavefront的Jos Stam對(duì)不可壓縮氣態(tài)流體所做的工作也十分顯著。在他1999年的Siggraph論文中,闡述了為什么比起關(guān)鍵幀動(dòng)畫(huà),模擬動(dòng)畫(huà)是如此地重要。
與關(guān)鍵幀或過(guò)程依賴(lài)技術(shù)不同,物理模型(流體模擬)可以讓一個(gè)動(dòng)畫(huà)師毫不費(fèi)力地創(chuàng)造有趣的類(lèi)似漩渦流體行為。而且,流體與物體和虛擬力之間的互動(dòng)能被輕松處理。Jos Stam. (1999). Stable Fluids, SIGGRAPH 1999 Conference Proceedings: SIGGRAPH Annual Conference Series. pp. 121-128.
在90年代早期,在Waterworld 和 Titanic這樣的電影中,證明電腦合成的水圖像是可以達(dá)到很高真實(shí)度,但是這種真實(shí)大都局限于平靜、開(kāi)闊的海洋鏡頭。Jerry Tessendorf, Rhythm and Hues (R&H)的首席圖形科學(xué)家,在水特效的發(fā)展過(guò)程中做了大量的工作,因?yàn)樗麄冄芯康脑贑FD領(lǐng)域中傳統(tǒng)流體動(dòng)力學(xué)工具,他和R&H的其他三個(gè)成員一起獲得了2008年學(xué)院獎(jiǎng)的Technical Achievement 獎(jiǎng)項(xiàng)。
Stanely Osher做了開(kāi)創(chuàng)性工作,使用層集方法表達(dá)動(dòng)力學(xué)表面,后來(lái)他的博士生Ron Fedkiw將層集方法帶入圖形學(xué)并且創(chuàng)造了PLS( Particle Level Set )方法,這個(gè)方法通過(guò)沿流體表面種植粒子來(lái)保持其它方法可能損失的次網(wǎng)格質(zhì)量,減少了純層集方法的質(zhì)量損失。Fedkiw的工作有極大的重要性,他獲得了來(lái)自動(dòng)態(tài)圖像藝術(shù)與科學(xué)學(xué)院的技術(shù)成就學(xué)術(shù)獎(jiǎng)?,F(xiàn)在他是斯坦福計(jì)算機(jī)科學(xué)的副教授,發(fā)表了超過(guò)80篇計(jì)算物理、流體和視覺(jué)方面的論文。過(guò)去的十年中,他一直擔(dān)任工業(yè)光魔(Industrial Light & Magic ,ILM)的顧問(wèn),在銀幕上也有所成就,參與了 Terminator 3: Rise of the Machines(終結(jié)者3), Star Wars: Episode III – Revenge of the Sith(星球大戰(zhàn)), Poseidon 和 Evan Almighty電影的制作。
Robert Bridson,反過(guò)來(lái)又是 Ron Fedkiw的博士生,作為PhysBAM項(xiàng)目的創(chuàng)始人之一,在Fedkiw的管理下與工業(yè)光魔一起工作。PhysBAM延續(xù)了工業(yè)光魔物理模擬編程的主要工作。Bridson針對(duì)那些主要的研究者比如Harlow 追溯了20世紀(jì)60年代早期的研究,然后為不可壓縮流體引入了 PIC/FLIP方法,同時(shí)也將不可壓縮FLIP方法帶入圖形學(xué)。FLIP方法和它的變體在流體模擬的傳遞階段有一個(gè)總數(shù)值擴(kuò)散的近似缺陷,因?yàn)樗鼘⑺械臄?shù)量都平流輸送到粒子而不是網(wǎng)格上。
在PhysBam項(xiàng)目中,Bridson幫助編寫(xiě)了布料模擬代碼,這個(gè)使運(yùn)用在工業(yè)光魔制作的Star Wars Episode II: Attack of the Clones(星球大戰(zhàn)前傳2)中。然后Bridson 到了英國(guó)為Double Negative合作設(shè)計(jì)了噴濺流體模擬器,在許多電影的煙、水、火、云、水墨特效中都可以見(jiàn)到,這包括Harry Potter and the Half-Blood Prince(哈利波特和混血王子)、2012、 The Boat that Rocked、 Inkheart、 Quantum of Solace(量子危機(jī))、The Dark Knight 和Hell Boy II: The Golden Army(地獄男爵2)。
正是在英國(guó),Bridson 碰到了另一個(gè)業(yè)內(nèi)傳奇—— Marcus Nordenstam ,他們一起在2008年成立了Exotic Matter公司。Exotic Matter是Naiad流體模擬軟件的制造者,這個(gè)軟件參與了許多震撼的流體特效制作,包括Avatar(阿凡達(dá))、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)在有超過(guò)15年的VFX R&D和特效模擬經(jīng)驗(yàn)。他聯(lián)合研發(fā)了curl-noise,開(kāi)創(chuàng)了火焰模擬中FLIP方法的運(yùn)用,與 Bridson合作設(shè)計(jì)了噴濺流體模擬器。在參與組建Exotic Matter公司之前,Marcus在工業(yè)光魔有高級(jí)工程師的職位,在那里他是Zeno項(xiàng)目初始設(shè)計(jì)者之一。他在銀幕上的貢獻(xiàn)有 Star Wars Episode II、Spider-Man 2, Hellboy II、Inkheart、 Harry Potter and the Half-Blood Prince 和Avatar。
作為Exotic Matter公司的一部分,Nordenstam 和公司的其他人深深地投入到關(guān)鍵方向之中,尤其是在公司早期的時(shí)候。最緊張之時(shí),他們?cè)谛挛魈m威靈頓的Weta Digital做為R&D部門(mén)工作了十個(gè)月,制作了諸如Avatar這樣的電影。
Naiad軟件獲得了巨大的難以置信的成功,如今它有資格代表流體模擬藝術(shù)的發(fā)展現(xiàn)狀。當(dāng)然沒(méi)有一個(gè)模擬器能做好每一個(gè)方面, Naiad因它的可擴(kuò)展性、可信度和真實(shí)性廣受歡迎。今天在流體模擬領(lǐng)域有幾個(gè)主要的公司。Munich-based Scanline Productions (Stephan Trojansky領(lǐng)導(dǎo)) 和它們的獲獎(jiǎng)軟件Flowline,幫助MPC(The Moving Picture Company )公司在Poseidon(海神號(hào))電影中制作了逼真的海水,幫助Scanline沖垮了2012中的大部分建筑,還原了 Clint Eastwood的 Hereafter的恐怖。還有其他許多非定制流體工具,比如Maya、Hodini和其它專(zhuān)家公司或小組比如Blender 3D、 RealFlow、 FumeFX、Dynamite、ICE (Softimage/XSI軟件的一部分)、 PhyFluids3D等等許多。但在這個(gè)文章中,我們只對(duì)Naiad的科學(xué)進(jìn)行試驗(yàn),對(duì)Naiad藝術(shù)背后的科學(xué)進(jìn)行深入的研究。
基本概念
有些流體模擬是主要是關(guān)注于表面屬性,比如在早期,海水模擬制作出來(lái)的半平坦的大洋。最近的模擬都關(guān)注于體積,這樣既能表達(dá)一個(gè)傾瀉鏡頭或者洪水在剛體周?chē)鷽_擊的鏡頭,也能表達(dá)水下位置的高度對(duì)水表面的影響,即在海灘上陸地降低造成的破碎波(Breaking waves)。上述關(guān)于體積的流體模擬底層的一些基本問(wèn)題列出如下:
-
質(zhì)量守恒,即模擬過(guò)程(或者說(shuō)算法)中水不會(huì)消失。
-
動(dòng)量或能量守恒。
-
體積守恒->即不可壓縮性->不像真實(shí)的水,這可能看上去很奇怪,聲音不可以在水下傳播嗎?但對(duì)于視覺(jué)特效來(lái)說(shuō),這個(gè)假設(shè)已經(jīng)足夠接近真實(shí),使數(shù)學(xué)運(yùn)算極大地簡(jiǎn)化
-
相關(guān)加速度(connective acceleration)—空間控制的加速度,例如水流出去或者灌入時(shí)作用于流體的主要有兩種力,用一兩段我們可以用數(shù)學(xué)把它們表示出來(lái)的話說(shuō),流體被認(rèn)為受重力和它自己壓力的影響。
-
對(duì)于大多數(shù)流體我們忽略了粘度,但不是全部忽略,粘度影響小的時(shí)候我們忽略它
-
邊界情況——最后也是最關(guān)鍵的——流體的邊界非常重要,那可能是一個(gè)表面或者一個(gè)分界。在Bridson的書(shū)Fluid simulation for CG (2008)中,提到“大多數(shù)數(shù)字流體模擬的‘趣味’就在于正確地得到邊界情況?!庇腥N情況——固體面,或自由流動(dòng)的表面,和最困難的,其他液體(最后一種情況在電影中很少見(jiàn))。
模擬解算斯托克斯方程
Navier-Stokes方程是一套描述多種流體(包括氣體)行為的方程。Navier-Stokes方程已經(jīng)出現(xiàn)了兩百年左右,但如同我們上文中所做的規(guī)避,它是一套一般問(wèn)題的子集,建立在一些特效工業(yè)最關(guān)注的關(guān)鍵性假設(shè)之上。Navier Stokes方程的解并不是一個(gè)42之類(lèi)的數(shù)字,它解出一個(gè)速度場(chǎng)——或者說(shuō)一個(gè)復(fù)合矢量。Navier Stokes方程不指示位置,而是速度。這點(diǎn)很重要,也困惑了很多人——這些矢量不是如同速度一樣分布在空間中的點(diǎn)。我們得到的是一個(gè)層流等式,描述微?;蛘哂糜?jì)算機(jī)圖形學(xué)的術(shù)語(yǔ)來(lái)說(shuō)——粒子——在速度場(chǎng)作用下的移動(dòng)。
Navier Stokes方程,因Claude-Louis Navier和 George Gabriel Stokes而命名,描述了流體物質(zhì)的運(yùn)動(dòng)。在半技術(shù)術(shù)語(yǔ)中這些等式是將牛頓第二定律運(yùn)用于流體運(yùn)動(dòng)中而得來(lái)(F=ma),但同時(shí)也使用了一個(gè)說(shuō)法,流體“壓強(qiáng)”,即流體運(yùn)動(dòng)趨向的方向,是一個(gè)擴(kuò)散粘度項(xiàng)的綜合(與速度梯度成正比),加上一個(gè)壓力項(xiàng)。
這個(gè)方程很有用處,因它描述了許多理論和經(jīng)濟(jì)上感興趣的物理現(xiàn)象。它們可以用于建立天氣模型,海洋涌流,管道水流和翅膀周?chē)臍饬髂P?。Navier–Stokes方程,以完整和簡(jiǎn)化形式用于航空器和車(chē)輛的設(shè)計(jì)、血流動(dòng)力學(xué)的研究,發(fā)電站的設(shè)計(jì)、污染分析以及其它許多方面。
Navier–Stokes的一個(gè)解叫做速度場(chǎng)或者流場(chǎng),即描述了一種在一個(gè)給定的空間和時(shí)間的點(diǎn)流體流動(dòng)的方法。只要解出速度場(chǎng),與一個(gè)真實(shí)可信的鏡頭有關(guān)的其它事情,比如流動(dòng)速度或者拖曳力就能夠被得到。傳統(tǒng)機(jī)械或者剛體模擬得出的解都是典型的粒子位置軌跡或者運(yùn)動(dòng)偏向,這與流體模擬不同。研究速度而不是位置使我們更加了解流體;無(wú)論怎樣要達(dá)到視覺(jué)目的,這樣都可以計(jì)算出不同類(lèi)型軌跡。這里是一個(gè)極簡(jiǎn)數(shù)學(xué)模型——建立在上述假設(shè)之上,這個(gè)“不可壓縮斯托克斯方程”就足夠了。
加速度+某東西+在壓力與密度的改變=本體的力+動(dòng)態(tài)的黏度
但是假定流體是不可壓縮的話,黏度的計(jì)算就可以被忽略
加速度+0+在壓力與密度的改變=本體的力+0
整理一下公式會(huì)得到:
加速度=本體的力-壓力與密度的變化
而密度又等于質(zhì)量除以體積, 壓力的改變又與體積有關(guān), 流體的某一點(diǎn)的加速度=重力(外力)-壓力,就是密度的改變,因此流體的加速度就與他所受到的力相關(guān)。流體的某一點(diǎn)的加速度=重力(外力)-壓力或是密度的改變,流體的加速度就與他所受到的力相關(guān)。
這樣的公式要怎樣實(shí)際導(dǎo)入到流體軟件里面呢?如果直接把公式寫(xiě)成程序語(yǔ)言很簡(jiǎn)單,但是實(shí)際在計(jì)算的時(shí)候需要考慮產(chǎn)業(yè)需求,計(jì)算機(jī)運(yùn)算時(shí)間。寫(xiě)實(shí)度往往必須跟速度達(dá)到平衡。因此實(shí)際上需要很多偷步的技巧才能滿(mǎn)足不同流體狀況。其中一種偷步技巧是Surface Tracking Euler method。他是用Height map來(lái)控制流體表面,但是忽略掉水面以下發(fā)生的事情。某些軟件的解算法并不能滿(mǎn)足所有尺度, 從小尺度的倒酒杯到大尺度翻滾海浪上的船。某些則是數(shù)學(xué)公式上面有缺陷,會(huì)導(dǎo)致流體會(huì)隨著時(shí)間讓體積越來(lái)越小, 例如在測(cè)試《加勒比海盜神鬼奇航:幽靈?!防锩嬗幸荒徊A溲b載了美人魚(yú), 而Naiad則是解決了這方面的問(wèn)題。
以下是可以在合理的時(shí)間里面計(jì)算出寫(xiě)實(shí)流體的一些關(guān)鍵技術(shù)點(diǎn):
SPH(Smooth Particle Hydrodynamics)
一種用Navier-Stokes的粒子系統(tǒng),仿真完后再把這些粒子變成polygon。這種方式對(duì)于倒酒的流體特效很適合,但是對(duì)于如海水般大量流體就會(huì)有困難。
Volume Grid
只有表面的流體, 又被稱(chēng)為Volume Fluids。例如在Houdini里面,可以很有效率地描述海洋波浪的高度與頻率, 這種方法沒(méi)有粒子, 對(duì)于小尺度的倒酒效果不合適. 這種方法通成被稱(chēng)為Euler法。
FLIP
FLIP解算法是粒子解算法與volume解算法兩種的混合,《加勒比海盜神鬼奇航:幽靈海》美人魚(yú)裝在玻璃牢籠里面的流體, 就是用Naiad的FLIP模擬出來(lái)的。FLIP跟粒子或是SPH相比最大的優(yōu)點(diǎn)在于每個(gè)Frame需要計(jì)算公式的次數(shù)不需要這么多,SPH解算法在計(jì)算的時(shí)候,每個(gè)Frame都要計(jì)算好幾次,有點(diǎn)像是時(shí)間上的反鋸齒計(jì)算,這樣的公式往往必須要解算10-100次才有可能得到好效果,要不然很容易產(chǎn)生分子炸開(kāi)的問(wèn)題。Houdini也提供三種解算模式,包含了FLIP的方式。針對(duì)Houdini 11 Side Effects的資深數(shù)學(xué)家Jeff Lait說(shuō): ” 當(dāng)FLIP流體被解算的時(shí)候, 會(huì)暫時(shí)產(chǎn)生速度場(chǎng),粒子的速度場(chǎng)會(huì)被轉(zhuǎn)移到grid里面。用來(lái)處理流體的彈射方向,這樣可以避免粒子重迭,也可以避免它們都往同一個(gè)方向移動(dòng)。FLIP流體的另外一個(gè)優(yōu)點(diǎn)是不同的流體可以迭在一起,不會(huì)影響到系統(tǒng)的穩(wěn)定度。SPH法當(dāng)兩個(gè)粒子很靠近的時(shí)候很容易就炸飛,對(duì)于FLIP來(lái)說(shuō),你可以添加新的粒子到流體里面,例如石頭丟到水里面飛濺起來(lái)的分子。
相關(guān)標(biāo)簽搜索:學(xué)習(xí)CFD,沒(méi)準(zhǔn)還能成為電影藝術(shù)家 ansys-cfx流體分析培訓(xùn) CFX培訓(xùn) cfx技術(shù)教程 cfx資料下載 cfx視頻教程 cfx學(xué)習(xí)資料 cfx軟件下載 ansys cfx編程二次開(kāi)發(fā) CFX代做 CFX基礎(chǔ)知識(shí) Fluent、CFX流體分析 HFSS電磁分析