夏輝麗 王繼州
摘要:計算機圖形學的煙霧模擬,主要采用三大類方法:粒子系統(tǒng)方法、數學物理方法和紋理技術方法;其中粒子系統(tǒng)方法屬于比較早期的簡單方法,數學物理方法大部分是基于或圍繞N-S方程的。介紹了煙霧模擬的主要方法與應用等,對煙霧模擬的方法進行了細致的分類;有早期的煙霧模型,也討論了近年來出現的一些最新發(fā)展。討論了各種模擬方法的優(yōu)缺點;指出了目前煙霧方法中存在的一些問題;關注了未來的研究工作需要重點加以關切的幾個方面;介紹了今后需要進一步努力和完善的一些工作思路。
關鍵詞:煙霧模擬;粒子系統(tǒng);紋理方法;數學物理方法
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2014)21-5083-04
真實的自然界和人類社會當中有一類特殊的物體越來越多得受到了人們的關注——無規(guī)則形狀的物體:火焰、煙霧、云彩、水流、瀑布等等。煙霧模擬由于其結構的復雜性和外部形態(tài)的多變性,這類模擬當中占據著舉足輕重的地位。用計算機模擬煙霧的真實形態(tài),有著十分重要的現實價值。介紹了煙霧模擬的主要方法;并進行了細致的分類。
1 煙霧模擬方法簡介
計算機上煙霧進行準確的模擬和再現,是計算機圖形技術中的熱點和難點問題、備受人們的高度關注。研究和運用具有真實效果、速度和效率、比較理想、應用范圍廣、可擴展性強的模擬方法,是計算機科學工作者所面臨的重要問題。
1.1 煙霧模擬方法的分類
幾十年來人們已經逐步構造出了很多煙霧模擬的方法,主要有三大類:以粒子系統(tǒng)思想為主的煙霧模擬、進行數學建模和分析、運用流體力學等物理規(guī)律的煙霧模擬、基于視覺效果的紋理技術的煙霧模擬等。近年來,新的方法和思路不斷涌現,出現了很多“新奇”和“另類”的解決途徑有基于視覺效果的、有基于數理原理的、有基于硬件加速的,有基于交互互動的、有基于多方法混合使用的等等
1.2 粒子系統(tǒng)方法的煙霧模擬
粒子系統(tǒng)的核心是大量粒子集合在一起表現模糊物體,把模糊物體看作是眾多粒子組成的粒子團,各粒子均有自己的屬性:如顏色、形狀、大小、生命力、速度等。至今其生命力卻依舊旺盛[1-6],呈現出生機勃勃的發(fā)展態(tài)勢,涌現出了很多新的應用和進展:如文獻[7]的低速、快速物理模型、文獻[8]的粒子數生成函數模型、文獻[9]的粒子鏈模型等等。
1.3 傳統(tǒng)的數學物理模型
基于物理的流體模擬主要是基于經典的Navier-Stokes方程組來描述所有流體(煙霧也是流體的一種)的運動,但由于該方程是非線性偏微分方程,想要獲得它的解析解非常困難。用基于物理模型的方法模擬煙霧,一般分為三個步驟:一,確定煙霧的物理模型。二,求解煙霧的物理模型。三,煙霧的繪制?;谖锢砟P头椒梢詤⒖嘉墨I[10]。
1.4 基于紋理技術的模擬
2002年文獻[11]將紋理片應用于火焰模擬;2007年文獻將旋轉的紋理片用于火焰的模擬[12];2008年文獻[13]通過旋轉的紋理片來模擬煙霧,實現比較快速、較為真實的模擬效果;但是在場景變換方面存在一些細節(jié)上的問題。文獻[14]提出了基于紋理球方法的煙霧模擬方法,是對紋理片方法的一個很好的改進。文獻[15]對三類方法有較為詳細的論述和比較。
1.5 基于形狀控制的煙霧模擬
形狀控制的煙霧模擬,用戶指定一個形狀,通過煙霧變形生成另外一個形狀如2003年的文獻[16]和2004年的文獻[17]。要達到的形狀用幾何模型來表示,控制煙霧形狀運動的時候,算法設計兩個力:包括外吸引力和內驅動力。外吸引力使煙霧向幾何模型變換,同時也阻止煙霧流出。內驅動力使流體在模型內從高煙霧密度區(qū)向低密度區(qū)域流動。文獻[18-20]提出了加快煙霧形成指定目標形狀的速度的方法。
1.6 LBM方法的煙霧模擬
LBM(格子Boltzmann方法)是一種介觀的方法,介觀方法的好處在于能夠描述傳統(tǒng)宏觀變量、得到具有均勻和穩(wěn)定的連續(xù)解外,也擁有微觀分子方法的靈活性。LBM方法不直接求解NS方程,分布函數存儲在格子中從而進行遷移和碰撞,最終可以完成計算和模擬,從微觀上的遷移和碰撞可以恢復成宏觀上的對于流體方程的求解,最終模擬流體的運動。這種方法是近幾年流體模擬的一個熱點,收到了較多的關注。2004年文獻[21]運用LBM模擬煙霧等氣體現象。
1.7 基于GPU加速的煙霧模擬
GPU被作為一個流處理器來處理一些通用計算方面的應用,近幾年慢慢發(fā)展起來,應用于流體和煙霧的模擬。高效的計算應該是尋求在CPU、AGP通道、頂點級以及像素級這幾者之間達到一個很好的均衡;目前的思路是利用GPU 與CPU 之間的消息機制來維持整個計算的負載均衡[22-24]。
1.9 卡通煙霧模擬方法簡介
該領域的研究重點是,生成諸如動畫片、風格化等的、有很強的藝術吸引力和廣闊的使用價值(如文獻[25]將卡通煙霧和火焰應用于手機游戲)的煙霧效果、還可以自動生成動漫卡通中的情景,如文獻[26-27],因而卡通煙霧的模擬和制作一度成為CG行業(yè)研究的熱門問題[28-29]。
1.10 近年來的一些其他煙霧模擬方法
近年來的煙霧模擬呈現出了精彩紛呈、激動人心的繽紛盛況;各種新方法、新思想、新嘗試稱出不窮,令人眼花繚亂?;凇凹毥z”的煙霧模擬,如2006年的文獻[30]。核心思想是把煙霧設想成在空間中不斷生成、變化、運動、扭曲、纏繞的“細絲”;然后通過CG的方法構造煙霧的薄面,通過光照、渲染生成具有一定特色和用途的煙霧效果。隨后,又有很多學者就此方法展開深入細致的研究,并取得了很好的模擬效果,如文獻[31-33]等。
2003年文獻[34],通過二維數理方法計算出火焰爆炸效果,從而構造出三維立體的視覺效果,成功模擬出了核爆炸的驚人逼真效果。2011年文獻[35],同時采用質量守恒和動量守恒來求解和簡化NS流體方程,也取得較好的模擬效果。2011年文獻[36-37],采用自適應的動態(tài)網格劃分的方法求解和簡化NS流體方程,基于視覺場景對網格進行遠近的區(qū)分和銜接。
2 研究方法的比較與動向
以上方法在煙霧模擬的應用上都有各自的優(yōu)勢,如果以模擬的視覺效果為主要目標,避免進行復雜的物理分析和運算;可以引入紋理技術的模擬方法。根據實際模擬中遇到的各種問題對三大類模擬方法做一些定性的比較;指出當前煙霧模擬中存在的一些問題和將來可以解決的思路。
2.1 各種方法的分析
粒子系統(tǒng)的模擬方法,優(yōu)點是計算簡單、運算速度相對較快,運動變化及其控制模式單一;模擬的人工痕跡比較明顯,在表現細節(jié)方面比較欠缺;該方法容易編程,很受廣大CG工作者的好評和喜愛。
數理方法要建立一定的精確模型并進行數值方面的求解,在大部分情況下,不能直接求解而必須進行必要的簡化處理。在近些年的模擬成果中,精確度也不斷得到提升,應用的范圍有所擴展,程序和算法的設計難度有所降低,得到了越來越多的研究人員的廣泛認可和接收。
紋理方法通過一定體積的實體來代替比較小的粒子,因而需要處理的數據結構比較少,計算量在某種程度上有所下降,系統(tǒng)資源的消耗有很大的降低。在表現細節(jié)方面,紋理方法也存在很大的缺陷,畢竟實體占據一定的空間體積,多少會影響細節(jié)的精細程度。
2.2 煙霧模擬方法中存在的問題
仔細分析和對比會發(fā)現,的各種方法中也普遍存在很多不盡如人意的地方;在處理具體問題的時候都還有很多關鍵的問題沒有搞清楚,也沒有進行合理的對待;大致可以從以下幾個方面加以說明:
煙霧模擬的數理方法過于依賴N-S方程,把煙霧看成純粹的流體來對待。煙霧的發(fā)生大多數情況下與燃燒相關,目前的很多模擬算法沒有把燃燒現象加入和合成到煙霧模擬的過程中來;凸顯出煙霧模擬的單調性和生成不真實性;當今煙霧模擬的絕大多數方法都沒處理與之相關的燃燒效應。
當前煙霧模擬算法大多數是在“封閉”區(qū)域內進行計算,且為了能夠正確“求解”而設定了諸多特定的“邊界條件”。然而日常經驗告訴我們,煙霧的發(fā)生、擴展、運動變化、消逝等自然過程,大多是在比較大的場景中進行的,并沒有固定的體積和邊界;如篝火、戰(zhàn)場硝煙、導彈發(fā)射尾焰等。
目前很多二維煙霧效果和形態(tài)控制的煙霧(如前面提到過的那些方法),也以煙霧模擬的名義大行其道,給人們的感覺好像與真正的煙霧模擬不太相符;其實這些效果可以換一些別的稱謂以使人們能夠辨清是非。
在影視、特效、廣告制作方面,商業(yè)煙霧制作軟件或插件,目前停留在粒子系統(tǒng)的解決機制上,沒有把當前數理方法所取得的成就加以合理消化和運用;雖然模擬的效果能夠滿足人們的正常需求,但是理論研究與實際應用的脫節(jié)。
2.3 煙霧模擬方法的發(fā)展動向
以上諸多方法皆有各自的優(yōu)缺點和使用效果;但是在多方法的相互配合上和各自優(yōu)點的發(fā)揮上還存在很大的問題,也有很大的潛力可以進行挖掘。
模擬細節(jié)的表現和優(yōu)化。一方面煙霧的構成微粒要能夠加以合理的表現,另一方面與實體交互時要體現出微粒的存在并表現出其應有的運動屬性;還有,煙霧微粒的渦流運動也是必不可缺的。
煙霧的整體形態(tài)和外力因素。煙霧的形態(tài)也是千差萬別,其發(fā)生機制也不盡相同。外力作用對于煙霧也是非常正常的;但目前很多方法在這方面的成果卻都不盡人意。外力和障礙都屬于CG中的動力系統(tǒng),牽涉到的技術比較復雜。
算法的模擬速度?,F今,圖形技術所涉及的算法越來越復雜,對硬件條件的要求也越來越高。數理方法更是如此,求解流體方程的代價也是極高的;即使是一些簡化和類似算法,也都需要進行大量復雜的數學手段。
煙霧的光照與陰影。目前的很多方法,處理光照非常吃力、困難重重。如果把煙霧看成是由無數微小的顆粒所組成的,那么處理每個顆粒的光照和陰影幾乎是完全不可能的事情。把煙霧看成相對較大的微團結構,將會損失煙霧模擬的細節(jié),無法再現其真實的物理情節(jié);也無法保障煙霧擴散時的形態(tài)變化所帶來的結果。最近的研究效果如文獻[38-40]。
煙霧模擬技術的發(fā)展方向。該文認為應該針對具體的研究對象采用更加靈活的思路,不拘一格,面向不同的對象采用不同的模型和處理辦法,并逐步拓展其應用領域[41]。近些年盛行的卡通動漫、手機游戲、影視特技中出現的水墨效果,物體飛散、聚集效果等;都是人們發(fā)揮人類的聰明才智和藝術想象力創(chuàng)造力而構造出來的??梢园褦道砟P驮谝曈X效果和場景結構方面加以適當的簡化和優(yōu)化,需要數學、物理學、化學、燃燒學[42]、流體力學學、影視技術、廣告技術、藝術學等多學科之間的緊密配合;涉及的學科越來越多。
今后的工作包括:進一步挖掘粒子系統(tǒng)的潛能,不斷增加其實用性、改善其通用性;提高模擬的精確度、優(yōu)化模擬的效果(如文獻[43]等)。進一步研究數學物理方法在無規(guī)則物體建模上的應用。隨著計算機硬件水平和軟件思想的不斷進步,特別是近年來GPU的廣泛應用,相信該方法也將會有較大的突破,紋理應用技術的也會進一步深化。
3 結束語
煙霧的真是再現和模擬一直是計算機圖形技術重點考慮的問題,也是一個長時間等候沒有很好地加以解決的難點問題。目前有許多煙霧模擬的各種解決辦法和思路模型,但還是遠遠不夠,還遠遠沒有達到人們的期望,也沒有實現人們的急切需求。今后還需進行更加深入、廣泛的思考和研究,需要加倍的努力和嘗試。
參考文獻:
[1] 初曉.基于粒子系統(tǒng)的實時煙霧模擬與實現[D].北京:北京師范大學,2008.
[2] 羅忠奎,李西猴,胡貴菊.基于物理動力學的煙霧建模與渲染[J].計算機工程與設計,2010,31(22) :4855-4857,4928.
[3] 唐勇,李萍,呂夢雅,等.一種實時模擬煙霧的新方法[J].燕山大學學報,2011,35(1)-:65-68,73.
[4] 劉斕,徐健鋒,劉群.基于微粒群優(yōu)化的煙霧擴散的實時研究[J].計算機工程與應用,2012,48(2):179-181,234.
[5] 郭皎,鄢沛.基于光滑粒子的流體仿真研究[J].西南大學學報:自然科學版,2012,34(1):44-48.
[6] 沈敬偉,溫永寧,周廷剛,等.基于元胞自動機的林火蔓延時空演變研究[J].西南大學學報:自然科學版,2013,35(8):116-121.
[7] Yue G,Chen F L,Shi M H,et al.Simulating gaseous fluids with low and high speeds[J].Computer Graphics Forum,2009,28(7):1845-1852.
[8] 唐勇,李曉艷,呂夢雅,等.基于粒子數生成函數的煙霧模擬[J].計算機應用研究,2010,27(2):754-756.
[9] 顧耀林,王繼州.基于改進的粒子系統(tǒng)的火焰模擬[J].計算機工程與設計,2007,28(8):1867-1869.
[10] 隋連升,葛靖青,程榮剛.三維煙霧的實時模擬[J].計算機工程與應用,2011,47(14):174-176,179.
[11] Wei X,Li W,Mueller K,et al.Simulating fire with texture splats[C].IEEE Visualization,Boston,Massachusetts,USA,2002:227-234.
[12] 王繼州,顧耀林.火焰的快速模擬[J].計算機輔助設計與圖形學學報,2007,19(1):102-107.
[13] 袁雪霞,尹新富.煙霧的快速模擬.計算機工程與設計,2008,29(9) :2392-2393,2396.
[14] 王繼州,袁雪霞.紋理球方法的煙霧模擬[J].小型微型計算機系統(tǒng),2013,34(7) :1680-1685.
[15] 王繼州,顧耀林.火焰模擬方法的研究綜述[J].中國圖象圖形學報,2007,12(11) :1961-1970.
[16] Adrien T,Antoine M,Zoran P,et al.Keyframe control of smoke simulations[J].ACM Transactions on Graphics,2003,22(3) :716-723.
[17] Raanan Fl,Dani L.Target-driven smoke animation[J].ACM Transactions on Graphics,2004,23(3):441-448.
[18] Yoojin J,Insung I.Chemical kinetics-assisted,path-based smoke simulation[J].Journal of Visualization and Computer Animation,2009,20(2-3) :247-256.
[19] 孟強龍.煙霧的物理模型及其模擬[D].合肥,安徽大學,2010.
[20] Jake L,Taku K.Real-time controllable fire using textured forces[J].The Visual Computer,2012,28(6-8) :691-700.
[21] X Wei,W li,K Mueller,etc.The lattice-boltzmann method for simulating gaseous phenomena[J].IEEE Transactions on Visualization and Computer Graphics,2004,10(2):164-176.
[22] Meng Y,Jingwan L,Alla S,etc.GPU methods for real-time haptic interaction with 3d fluids[C].Haptic Audio visual Environments and Games.IEEE International Workshop on,Microsoft Corp,Redmond,WA,USA,2009(7-8):24-29.
[23] 湛永松,楊明浩,石民勇,等.基于可編程圖形處理器的實時煙霧控制模擬[J].工程圖學學報,2008,29(4):60-64.
[24] 周益.基于物理的三維煙霧模擬及其加速技術的研究[D].濟南,山東大學,2010.
[25] DongGyu P,Mirina J,SangHyuk W,et al.A fire and smoke simulation for mobile game[J].International Journal of Software Engineering and Its Applications,2008,2(4):1-8.
[26] 陳天洲,黃穎,于金輝.計算機生成3維卡通煙塵動畫[J].中國圖象圖形學報,2006,11(5):679-683.
[27] 湛永松,石民勇,費廣正.基于物理模型的實時卡通煙霧模擬算法[J].中國圖象圖形學報,2007,12(2):261-265.
[28] Eduardo J,?lvarez,Celso C,etc.Interactive cartoon rendering and sketching of clouds and smoke[J].Computational Science,2007,Part II,LNCS 4488:138-145.
[29] Alfred Barnat,Zeyang Li,James McCann,et al.Mid-level smoke control for 2D animation[C].Graphics Interface 2011,Ontario,Canada,2011:25-32.
[30] Alexis A,Fabrice N,Karan S,et al.A Controllable,Fast and Stable Basis for Vortex Based Smoke Simulation[C] .ACM SIGGRAPH/Eurographics Symposium on Computer Animation,Vienna,Austria,2006:25-32.
[31] Steffen W,Ulrich P.Filament-based smoke with vortex shedding and variational reconnection[J].ACM Transactions on Graphics,2010,29(4):1-12.
[32] Jinho P,Yeongho S,Frederic C,et al.A smoke visualization model for capturing surface-like features[J].Computer Graphics Forum,2010,29(8):2340-2351.
[33] Alfred B,Nancy S P.Smoke sheets for graph-structured vortex filaments[C].ACM SIGGRAPH/Eurographics Symposium on Computer Animation,Lausanne,Switzerland,2012(113):11-19.
[34] Rasmussen N,Nguyen D,Geiger W,et al.Smoke simulation for large scale phenomena[J].ACM Transactions on Graphics,2003,22 (3):703-707.
[35] Lentine M,Aanjaneya M,Fedkiw R.Mass and momentum conservation for fluid simulation[C].2011 ACM SIGGRAPH/Eurographics Symposium on Computer Animation,Vancouver,Canada,2011:91-100.
[36] Rinchai B,Pizzanu K.Adaptive grid refinement using view-dependent octree for grid-based smoke simulation[C].Computer Science.Springer-Verlag Berlin Heidelberg,2011:204-215.
[37] 王繼州,袁雪霞.基于動態(tài)網格細分的煙霧模擬[J].微型機與應用,2011,30(8):33-35,38.
[38] Kun Z,Zhong R,Stephen L,et al.Real-time smoke rendering using compensated ray marching[J].ACM Transactions on Graphics,2008,27(3):36:1-12.
[39] 湛永松,楊明浩,石民勇,等.基于直接投射擴散的煙霧陰影實時模擬[J].中國圖象圖形學報,2008,13(11):2231-2237.
[40] 李偉偉,郭曉新,陳軼.GPU上具有復雜光照煙霧動畫的繪制[J].吉林大學學報,2011,49(4):716-722.
[41] 趙林靜,陳文文.基于物聯(lián)網和Zigbee技術的圖書館火情監(jiān)控系統(tǒng)設計[J].西南師范大學學報:自然科學版,2013,38(12):158-163.
[42] 黃成,彭敬東.燃燒熱測定實驗技術的改進[J].西南師范大學學報:自然科學版,2013,38(5):169-172.
[43] 王繼州.基于改進的粒子系統(tǒng)的火焰模擬[D].無錫:江南大學,2007.