摘要:過去的十年,計算機圖形業(yè)一直專注于制造煙霧、水、火的真實效果。而現(xiàn)在,這個行業(yè)開始轉(zhuǎn)向創(chuàng)作面部表情、毛發(fā)和衣服運動的真實效果。但是盡管如此,由于基于物理的計算復(fù)雜的限制和光照計算機的耗時性,設(shè)計一個交互設(shè)計更為方便,能達(dá)到實時性,幾乎完全真實地體現(xiàn)自然界中各種流體動畫的系統(tǒng),仍然是一個很有挑戰(zhàn)性的問題,還存在很多課題值得深入研究。
關(guān)鍵詞:流體動畫;基于物理的計算;真實效果
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)14-3811-02
The Physical Principles of Fluid Animation
HUANG Mei-juan
(AnHui Business Vocational College, Hefei 230041, China)
Abstracts: Over the past decade,the computer graphics industry has been focused on the real effect of smoke,water,the fire.and now,the industry will start to create the Real effect of facial expressions,hair and clothing dynamic.But nevertheless,as a result of the constraints of complex calculation based on physical and thetime-consuming of light computer,the design of a more convenient interaction design,to achieve real-time,almost completely reflect the true nature of the various fluid animation system,is still a very challenging, but also there are many issues worthy of more research.
key words: Fluid animation;calculation based on physical;real effect
流體現(xiàn)象在日常生活中隨處可見,對其進(jìn)行真實感模擬,對于計算機動畫具有重要意義,可以應(yīng)用于影視游戲,虛擬現(xiàn)實等行業(yè)。這里主要探討基于物理的流體計算機動畫這個領(lǐng)域,其中涉及的現(xiàn)象包括煙霧、流體運動界面、氣泡、火焰、以及爆炸等。在圖形學(xué)領(lǐng)域,計算的快速性計算精度非常重要,小的計算機代價可以讓人們方便預(yù)覽可能的效果,從而進(jìn)行快速調(diào)整生成畫面。計算機圖形學(xué)必須為動畫師提供一個良好的控制策略,這樣通過簡單交互就可以設(shè)計實現(xiàn)想要的藝術(shù)效果。在三維圖形軟件產(chǎn)品中,有不少包含了流體模擬的模塊,如Maya里面的 Fluid Effects該模塊的方法主要來自Jos Stam提出的半拉格朗日方法。在3ds max 里面則提供有Glus3d流體插件。獨立的軟件包如Next Limit 推出的RealFlow 和RealWave更是出類拔萃,被稱為pc 機上最好的兩種流體動力學(xué)模擬軟件。筆者將從當(dāng)前計算機圖形學(xué)真實感模擬的研究發(fā)展入手,對基于物理流體運動建模過程的原理進(jìn)行討論。
1 流體模擬研究方法的發(fā)展
早期的流體模擬,由于計算機能力有限,主要采用參數(shù)建模方法。如采用波動理論中的函數(shù)來模擬波浪效果;又如基于統(tǒng)計的FFT經(jīng)驗?zāi)P?,也可以很好的描述波幅較小海平面,但是對于這些模擬,人們覺得控制起來很困難,而且不能模擬一些復(fù)雜的細(xì)節(jié)更為豐富的真實效果(如圖1),于是研究者轉(zhuǎn)向基于物理方法。
多種不同特性的流體混合在一起運動形成混合物,這是自然界中一類常見且有趣的現(xiàn)象,其主要視覺效果來自于各成分的擴散過程(如溶解現(xiàn)象),或者分離過程(食油浮于水面之上)。但由于組成成份之間的相互作用非常復(fù)雜,使得混合流現(xiàn)象的模擬成為一個非常有挑戰(zhàn)性的任務(wù),我們引入一種二元Lattice Boltzmann Model(LBM),實現(xiàn)了兩種液體組成的混合流的模擬。不同于其他的類似模型,它區(qū)分考慮了流體的黏性的擴散性,可以很容易地模擬各種互溶或者不互溶的混合流現(xiàn)象。此外,由于LBM的運算大都是線性的局部運算,這使得它很容易在可編程圖形處理器(Graphics Process Unit, GPU)上進(jìn)行加速,從而進(jìn)行實時模擬,圖2分別給出了互溶和不互溶的混合物模擬結(jié)果。
2 兩種物理學(xué)中研究流體的思路
歐拉法與拉格朗日法各有優(yōu)缺點,為了更真實的模擬流動,基于網(wǎng)格的歐拉算法往往結(jié)合拉格朗日法一起使用,比如得到廣泛應(yīng)用的半拉格朗日法。
2.1 歐拉法
描述流體現(xiàn)象最為完整的納維-斯托克斯方程(Navier-StokesEquation. NSE)該方程是根據(jù)牛頓第二定律推導(dǎo)出來的。在圖形學(xué)領(lǐng)域,目前最為流行的歐拉法,是在規(guī)則網(wǎng)格是采用有限的差分求解NSE的方法,它將NSE離散到網(wǎng)格上,然后計算各個固定網(wǎng)格節(jié)點上狀態(tài)量的變化,從而得到整個場。這里有兩種思路進(jìn)行網(wǎng)格化,一種是交錯網(wǎng)格,即一般情況下標(biāo)量,如壓強,分布在網(wǎng)格單元的中心,目前多采用此思路;另一種剛是所有的量都處于同一個位置,這種方法簡單,不需太多的插值運算,對各個變量也不需要區(qū)別對待。
2.1.1 關(guān)于歐拉法
什么是歐拉法
從研究流體所占據(jù)的空間各個固定點處的運動著手,分析被運動流體所充滿的空間中每一個固定點上的流體的速度、壓強、密度等參數(shù)隨時間的變化,以及研究由某一空間轉(zhuǎn)到另一空間點時這些參數(shù)的變化,這種思想被稱為歐拉法,由此類思想衍生出的方法均基于網(wǎng)絡(luò)來計算。
歐拉法的優(yōu)缺點
推導(dǎo)過程嚴(yán)密,求解精度較高,參數(shù)物理意義明確,并且基于該網(wǎng)格,容易構(gòu)造液體表面拓補。但必須對整個場景進(jìn)行計算,從而造成浪費,且迭代運算會影響算法的并行性。
2.2 拉格朗日法
目前常用的拉格朗日法,是一種稱為Smoothed Particle Hydrodynamics方法,常簡稱SPH方法。它在場景空間中分布大量粒子,這些粒子具有質(zhì)理、密度等流體屬性,則采用周圍粒子的屬性值插值得到。顯然,該方法是對于各個獨立的粒子進(jìn)行計算。近兩年,Lattice Boltzmann Model(LBM)被引入圖形學(xué)領(lǐng)域,LBM方法也是一種拉格朗日法,它不去追蹤每一個實際粒子,在離散的格子里,粒子沿著格子軌線向相鄰的格子遷移和相互碰撞,這樣分布函數(shù)的演變就決定了流體運動的變化過程。該方法相對于歐拉法的優(yōu)點在于編程容易,更容易并行化,可以很方便的處理復(fù)雜邊界。
2.2.1 關(guān)于拉格朗日法
從分析各個流體微團的運動著手,即研究流體中某一個指定微團的速度、壓強、密度等描述流體運動的參數(shù)隨時間的變化,以及研究由一個流體微團轉(zhuǎn)到其它流體微團時參數(shù)的變化,以此來研究整個流體的運動,這種思想被稱為拉格朗日法,由此衍生出來的方法均基于粒子來計算流場。
拉格朗日法的方法的優(yōu)點為容易表達(dá),不需要對整個空間進(jìn)行處理,容易保證質(zhì)量守恒,而且比較容易實施控制。但拉格朗日法對于平滑運動界面的重建比較難處理,自由界面托撲的改變必須采用復(fù)雜的算法才能構(gòu)造出表面幾何,而且計算量隨著粒子數(shù)增多而快速加大。
煙霧問題可能是流體現(xiàn)象模擬中最為簡單的一類(圖3、圖4),同水比,氣體不存在液體表面。更重要的是,氣體分子間距足夠大,相互之間的作用可以忽略,這意味著氣體不存在黏性,所以NSE中的黏性項可以不作計算,這大大簡化了計算。剩下的計算就是采用半拉格朗日方法求解對流項。以及采用迭代技術(shù)來求解速度對時間偏導(dǎo)數(shù)項。
盡管基于物理的流體模擬的整個基礎(chǔ)是流體力學(xué),但由于關(guān)注的最終目標(biāo)存在差異,所以研究的重點有所側(cè)重。
3 結(jié)束語
對于計算機動畫來說,人們期望更我真實的細(xì)節(jié)特征,這就需要我們的流體算法能足夠快速地求解真實世界中的場景。然而為保持豐富細(xì)節(jié)而增大的計算分辯率,極大地增加了計算量,因此設(shè)計效率更高的算法,是我們不懈的追求。近年來圖形硬件Graphics processing Unit (GPU) 已經(jīng)取得了長足的進(jìn)步,目前最新的NVIDIA Gforce GTX295采用SLI技術(shù)集成兩塊圖形核心,流處理器數(shù)量達(dá)到了160顆,并行能力大幅提高,并且顯存容量可達(dá)1,792MB對于提高模擬場景的規(guī)模有很大幫助。另外,人們期望能夠?qū)α黧w的運動進(jìn)行充分的控制,使其流動能夠滿足人的意愿或者想像,而不心關(guān)心背后的物理,研究靈活有效的控制算法,也是重要研究方向。
參考文獻(xiàn):
[1] 王曉華,張?zhí)镂?,柴旭東.流體動畫方法綜述[J].計算機工程與應(yīng)用,2008,2(44).
[2] 陳長植.工程流體力學(xué)[M].華中科技大學(xué)出版社,2008,4.