學習CFD,沒準還能成為電影藝術家

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



計算機模擬的作品


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

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


發(fā)展史

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

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

  與關鍵幀或過程依賴技術不同,物理模型(流體模擬)可以讓一個動畫師毫不費力地創(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領域中傳統(tǒng)流體動力學工具,他和R&H的其他三個成員一起獲得了2008年學院獎的Technical Achievement 獎項。

  Stanely Osher做了開創(chuàng)性工作,使用層集方法表達動力學表面,后來他的博士生Ron Fedkiw將層集方法帶入圖形學并且創(chuàng)造了PLS( Particle Level Set )方法,這個方法通過沿流體表面種植粒子來保持其它方法可能損失的次網(wǎng)格質量,減少了純層集方法的質量損失。Fedkiw的工作有極大的重要性,他獲得了來自動態(tài)圖像藝術與科學學院的技術成就學術獎。現(xiàn)在他是斯坦福計算機科學的副教授,發(fā)表了超過80篇計算物理、流體和視覺方面的論文。過去的十年中,他一直擔任工業(yè)光魔(Industrial Light & Magic ,ILM)的顧問,在銀幕上也有所成就,參與了 Terminator 3: Rise of the Machines(終結者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合作設計了噴濺流體模擬器,在許多電影的煙、水、火、云、水墨特效中都可以見到,這包括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è)內傳奇—— 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合作設計了噴濺流體模擬器。在參與組建Exotic Matter公司之前,Marcus在工業(yè)光魔有高級工程師的職位,在那里他是Zeno項目初始設計者之一。他在銀幕上的貢獻有 Star Wars Episode II、Spider-Man 2, Hellboy II、Inkheart、 Harry Potter and the Half-Blood Prince 和Avatar。

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

  Naiad軟件獲得了巨大的難以置信的成功,如今它有資格代表流體模擬藝術的發(fā)展現(xiàn)狀。當然沒有一個模擬器能做好每一個方面, Naiad因它的可擴展性、可信度和真實性廣受歡迎。今天在流體模擬領域有幾個主要的公司。Munich-based Scanline Productions (Stephan Trojansky領導) 和它們的獲獎軟件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藝術背后的科學進行深入的研究。


基本概念

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

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

  • 動量或能量守恒。

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

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

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

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


模擬解算斯托克斯方程

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

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

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

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


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


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

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

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

整理一下公式會得到:

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


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

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

以下是可以在合理的時間里面計算出寫實流體的一些關鍵技術點:

SPH(Smooth Particle Hydrodynamics)

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

學習CFD,沒準還能成為電影藝術家cfx結果圖片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)生速度場,粒子的速度場會被轉移到grid里面。用來處理流體的彈射方向,這樣可以避免粒子重迭,也可以避免它們都往同一個方向移動。FLIP流體的另外一個優(yōu)點是不同的流體可以迭在一起,不會影響到系統(tǒng)的穩(wěn)定度。SPH法當兩個粒子很靠近的時候很容易就炸飛,對于FLIP來說,你可以添加新的粒子到流體里面,例如石頭丟到水里面飛濺起來的分子。

學習CFD,沒準還能成為電影藝術家cfx結果圖片3



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

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

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

全國服務熱線

1358-032-9919

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