唐 勇,毛菊珍,呂夢雅,張利衛(wèi)
(1.燕山大學(xué)信息科學(xué)與工程學(xué)院,河北秦皇島066004;2.河北省計算機虛擬技術(shù)與系統(tǒng)集成重點實驗室,河北秦皇島066004)
不同屬性煙霧融合過程可視化建模與實時繪制
唐 勇1,2,?,毛菊珍1,2,呂夢雅1,2,張利衛(wèi)1,2
(1.燕山大學(xué)信息科學(xué)與工程學(xué)院,河北秦皇島066004;2.河北省計算機虛擬技術(shù)與系統(tǒng)集成重點實驗室,河北秦皇島066004)
為了快速精準繪制真實世界中各種各樣的多煙霧融合現(xiàn)象,提出一種基于歐拉法的實時有效的煙霧融合模型。首先,提出域劃分算法,從結(jié)構(gòu)層解決了多煙霧自由隨機運動的描述問題;其次,利用GPU的并行能力大幅提高了N?S方程求解速度,獲得多達7種不同屬性煙霧融合過程的實時繪制;再次,實現(xiàn)Ray?casting(光線投射)算法,清晰地表現(xiàn)出煙霧融合的擴散細節(jié);最后,調(diào)節(jié)溫度、速度、擴散系數(shù)和濃度等煙霧運動影響因子,靈活控制煙霧融合過程。實驗表明,所做工作能夠快速真實地模擬不同屬性煙霧的融合。
歐拉法;煙霧融合;域劃分算法;GPU;光線投射
對煙霧、水面、海洋等自然現(xiàn)象進行模擬是計算機圖形學(xué)(CG)研究中非常具有挑戰(zhàn)性的課題。模擬沒有規(guī)則外觀形狀且運動極其復(fù)雜的煙霧非常困難。從Stam J等人開始人們對單股煙霧和煙霧與固體障礙物交互問題上做了大量研究[1?2]。2008年,浙江大學(xué)周昆提出用光線補償算法實時渲染煙霧[3],獲得高品質(zhì)細節(jié)。2013年,斯坦福大學(xué)Zhu B等人實現(xiàn)用動態(tài)自適應(yīng)網(wǎng)格突出表現(xiàn)煙霧局部有趣的細節(jié)[4]。2014年,美國威斯康星大學(xué)Setaluri R等人提出一種新的稀疏均勻網(wǎng)格結(jié)構(gòu),通過優(yōu)化數(shù)據(jù)存儲方式來加快煙霧模擬速度[5]。以上只是對單股煙霧進行模擬,而并未對多種煙霧融合進行研究。
近年來,研究者對多種流體混合模擬的研究越來越感興趣,2006年,高麗大學(xué)Roh B和Kim C用拉格朗日粒子方法實現(xiàn)兩股交互式運動的煙霧[6],但交互過程基于固定路徑不能進行實時控制。同年,Zhu H等提出了雙流體格子玻爾茲曼方法(TFLBM)來模擬兩種流體之間的混溶相互作用[7],然而,TFLBM在處理流體自由表面時無法保持穩(wěn)定。2010年,Kim B使用粒子水平集方法模擬獲得流體光滑界面[8],但容易損失細節(jié)表現(xiàn)。2014年,清華大學(xué)Ren B等提出一種基于SPH模擬方法的混合模型處理多個流體的交互運動[9],在多流體模擬研究中有顯著成效與巨大貢獻,但針對大量粒子模擬將會降低實時性,最大幀率為4.049 fps。唐勇等人[10?11]對煙霧模擬進行了大量研究,并取得了一定成果。
當前對流體模擬的研究多集中于表現(xiàn)單股煙霧的真實性與實時性,以及可混合或不可混合水體之間的交互,而鮮有對多股煙霧間交互式運動的模擬。為此,本文提出一種基于歐拉法的實時有效的煙霧融合模型,針對空氣中煙霧交互融合模擬的難點,快速精準模擬真實世界中各種各樣的多煙霧融合現(xiàn)象。
煙霧融合運動是研究的重點,實時性與真實感是最高目標。最核心的任務(wù)是建立合理的煙霧融合模型。
1.1 建立煙霧融合控制方程組
流體模擬時依賴微分方程來描述流體的運動規(guī)律。N?S(Navier?Stokes)方程是用來計算流體力學(xué)的經(jīng)典模型。為模擬空氣中的煙霧融合,對基本N?S方程進行改進。同時,采用易于在可編程GPU上求解的流體模擬方法—歐拉法來模擬。由于煙霧粘性很小,粘性項可以忽略,因而,可將簡化的N?S方程即歐拉方程表示如下:
式中,p表示壓力,ρ表示密度,f表示外力,u表示速度矢量,u=(ux,uy,uz)。
方程(1)是由牛頓第二定律推得的流體動量方程,保證動量守恒。方程(2)是在流體密度為常數(shù)時,根據(jù)質(zhì)量守恒定律得到的流體質(zhì)量守恒方程。
為了形象生動地將煙霧融合的動態(tài)效果繪制出來,加入隨速度場流動的密度場方程:
式(1)中外力f的影響使煙霧運動更加有趣,本文將外力描述為浮力fbuoy、漩渦力fconf以及融合力ffusi的合成,所以外力表示為
完成流體動力學(xué)基本N?S方程的以上改進,為科學(xué)準確描述煙霧融合過程建立了數(shù)學(xué)基礎(chǔ)。
1.2 域劃分算法的數(shù)學(xué)描述
煙霧融合控制方程組建立之后,如何劃分求解域、子求解域間融合力的實現(xiàn)便成為下一步需要解決的問題。在現(xiàn)有笛卡爾網(wǎng)格上自定義劃分區(qū)域網(wǎng)格的方法實現(xiàn)在整個求解域中復(fù)合不同的力場,實現(xiàn)多種煙霧間的相互作用,真實自然表現(xiàn)煙霧融合現(xiàn)象。
求解域劃分為三維網(wǎng)格空間,為保證多種煙霧受力融合,對三維網(wǎng)格空間進行自定義劃分,劃分方式如圖1所示,其中虛箭頭線代表每個區(qū)域的速度矢量,實箭頭線代表一個時間步后更新的速度矢量。
圖1(a)中為完成兩種煙、一定角度相遇交互,笛卡爾網(wǎng)格被劃分為3個子求解域,速度變化為
圖1(b)中為完成3種煙霧環(huán)流融合狀態(tài),笛卡爾網(wǎng)格被劃分為4個子求解域,每個域的速度受相鄰域速度影響變化為
式中,uim為分力場作用后的速度,ai為速度衰減因子,其中i=1,2,3。將更新的速度代入煙霧融合基本方程組求解。
圖1 煙霧融合速度分布圖Fig.1 Multiple?smoke fusion velocity distribution
域分解算法實現(xiàn)整個求解域上多個力場相互作用,形成不同的速度流,很好地表現(xiàn)了多種煙霧的自由隨機運動。
1.3 數(shù)值化煙霧融合控制方程
完成區(qū)域劃分,實現(xiàn)子求解域間的融合力,接下來須對控制方程進行數(shù)值求解,即計算每一時刻整個流場的變化,完成煙霧融合模擬。具體過程如下:
1)初始化速度場u0和密度場ρ0。
2)煙霧的上升速度受到溫度的影響,溫度越高,氣體上升越快;另外,煙霧微粒受到重力的影響會向下運動。計算熱浮力影響后的速度場
其中,α、β為非負系數(shù),Tamb是當前環(huán)境溫度,方向為z=(0,1,0)。
3)自定義劃分笛卡爾網(wǎng)格空間,施加融合力,運用1.2節(jié)方法更新速度場u2=um。
4)網(wǎng)格中的物理量需要相互傳遞,在每個時間步平流所有網(wǎng)格中的速度到新的位置
此時這個新位置的速度更新為u3=u2。
5)平流過程導(dǎo)致煙霧融合運動的一些細節(jié)消失,引入漩渦力進行補償,重新添加因平流而去除的漩渦,保證煙霧運動更加真實自然。
式中,ε是漩渦系數(shù),控制漩渦強度;h是網(wǎng)格大小,限制網(wǎng)格精細程度。
6)同樣因平流過程會造成速度場的發(fā)散,所以要滿足不可壓縮流體散度自由將速度場更新為
其中,u(i,j,k)代表網(wǎng)格點(i,j,k)處的速度。
7)因壓力梯度作用使速度場更新,用雅克比迭代法求解泊松方程得到
8)最后,結(jié)合壓力和速度場得到散度自由的速度u7,并代入式(4)完成密度隨速度的平移。
利用可編程GPU同時處理多個網(wǎng)格,并行求解N?S方程,相較于CPU模擬速度有了顯著提高,同時引入MacCormack方法來求解N?S方程對流項,簡化求解過程,減少計算時間,進一步提高煙霧融合模擬的實時性。并且,在整個計算過程中靈活調(diào)整溫度、密度、擴散系數(shù)等煙霧融合運動影響因子,實時創(chuàng)造各種煙霧融合效果。
在GPU上實現(xiàn)Cg語言編程,采用體繪制技術(shù)中傳統(tǒng)的 Ray?casting(光線投射)算法進行渲染。為實現(xiàn)煙霧融合效果,利用公式
對不同種類的煙霧渲染不同的顏色,并使顏色屬性隨濃度平流。式中,Ci為渲染后的煙霧顏色,C0i為光線穿越物體獲取的顏色數(shù)據(jù),αi為透明度,且Ai是光線吸收因子,i代表不同種類的煙。
將n種煙霧進行融合,用公式
對Ci求和,實現(xiàn)融合煙霧顏色屬性的累加。
算法基于射線掃描過程,符合人類認知規(guī)律,易于理解,計算簡單,并且可以實時繪制出靈動有趣的煙霧融合效果。
實驗在Windows操作系統(tǒng)下進行,使用Unity3d開發(fā)平臺結(jié)合GPU建立了實時有效的不同屬性煙霧融合模型。
圖2為不同場景不同狀態(tài)煙霧的融合效果。圖2(a)是一團煙霧滲入一股煙霧之中并隨之騰升的現(xiàn)象,這個過程中這一小團煙霧將逐漸地被稀釋與擴散,圖2(b)是兩個橫向容器中冒出的不同屬性煙霧等比例的融合為一種屬性煙霧的過程,圖2(c)是在室外高空環(huán)境中,在風(fēng)場的作用下煙霧的融合效果,改變風(fēng)速與風(fēng)向?qū)⒏淖兤浣蝗谶\動態(tài)勢,產(chǎn)生靈活多變的效果,圖2(d)是七色彩虹煙霧由下到上低速流動于一個密閉空間中,在這一過程中每股煙相遇相融在一起,圖中可看出每股煙霧的邊界有明顯的融合效果。
圖3中為兩股煙霧受45°角的力的作用碰撞在一起產(chǎn)生的效果,圖3(a)中由于力的大小相同,所以碰撞融合過程中形成兩個相同大小,互為反向的漩渦,圖3(b)中為施加不同大小力的煙霧碰撞融合效果。
圖4(a)是文獻[9]中不同液體混合實驗效果,圖4(b)是本文中不同煙霧融合效果。文獻[9]中液體混合實驗非常真實自然,本文對其方法進行改進并應(yīng)用到煙霧融合實驗中,得到了更加靈動有趣的效果。
圖2 不同場景不同狀態(tài)煙霧融合效果Fig.2 Different attribute smoke fusion in different scene
圖3 煙霧碰撞融合Fig.3 Smoke collision and fusion
圖4 實驗效果圖對比Fig.4 Comparison of the experimental effects
多煙霧融合可視化繪制在分辨率為64×128× 64的網(wǎng)格上模擬,幀率如表1所示。
文獻[9]采用基于SPH的粒子方法模擬,其方案可容易地集成到現(xiàn)有的最先進的SPH模擬器中,表2為不同粒子數(shù)的多種液體交互的幀率。通過圖4、表1與表2的對比可看出,本文已經(jīng)獲得逼真的多煙霧融合效果,而且?guī)蔬h高于文獻[9]的最大幀率。
表1 不同精度網(wǎng)格上多種煙霧融合的幀率Tab.1 Frame rate of multiple?smoke fusion on different resolution grids
表2 文獻[9]中不同粒子數(shù)的多種液體交互幀率Tab.2 Frame rate under different particle numbers and phase numbers in reference[9]
針對不同屬性煙霧融合過程可視化尚難滿足實時性、且真實感有待提升的問題,優(yōu)化流體力學(xué)模型并結(jié)合歐拉法提出求解域劃分算法,快速穩(wěn)定地捕捉到煙霧相遇后的運動態(tài)勢,大大提高了煙霧融合過程模擬的真實性與實時性;將 Ray?casting算法求解移植到可編程渲染管線GPU中,快速逼真且清晰明朗地展現(xiàn)了煙霧融合過程的可視化效果;最后,通過多種數(shù)值實驗驗證,實時性大大提高,融合細節(jié)表現(xiàn)充分。在模擬多達7種不同濃度、不同質(zhì)量的煙霧在真實環(huán)境中受力融合現(xiàn)象時,也能滿足實時性要求。
[1]Stam J.Stable fluids[C]//Proceedings of Computer Graphics,Annual Conference Series,ACM Siggraph,Los Angeles,1999:121?128.
[2]Fedkiw R,Stam J,Jensen H.Visual simulation of smoke[C]//Proceedings of Computer Graphics,Annual Conference Series,ACM Siggraph,Los Angeles,2001:15?22.
[3]Zhou Kun,Ren Zhong.Real?time smoke rendering using compensa?ted ray marching[J].ACM Transactions on Graphics,2008,27(3):1?12.
[4]Zhu B,Lu W,Cong M,et al.A new grid structure for domain ex?tension[J].ACM Transactions on Graphics,2013,32(4):1?12.[5]Setaluri R,Aanjaneya M,Bauer S,et al.SP Grid:A sparse paged grid structure applied to adaptive smoke simulation[J]. ACM Transactions on Graphics,2014,33(6):1?12.
[6]Roh B,Kim C.Controllable multi?phase smoke with lagrangian particles[C]//24th Computer Graphics International Conference,Hangzhou,China,2006:115?123.
[7]Zhu H,Liu X,Liu Y,et al.Simulation of miscible binary mixtures based on lattice Boltzmann method[J].CAVW Computer Animation and Virtual Worlds,2006,17(3/4):403?410.
[8]Kim B.Multi?phase fluid simulations using regional level sets[J]. ACM Transactions on Graphics,2010,29(6):1?8.
[9]Ren B,Li C,Yan X,et al.Multiple?fluid SPH simulation using a mixture model[J].ACM Transactions on Graphics,2014,33(5):1?11.
[10]唐勇,吳娛,呂夢雅,等.一種改進的自適應(yīng)漩渦限制實時煙霧模擬[J].小型微型計算機系統(tǒng),2012,33(12):2676?2679.
[11]唐勇,李萍,呂夢雅,等.一種實時模擬煙霧的新方法[J].燕山大學(xué)學(xué)報,2011,35(1):65?68.
Visualization modeling and real?time rendering for fusion process of different property multi?smoke
TANG Yong1,2,MAO Ju?zhen1,2,Lü Meng?ya1,2,ZHANG Li?wei1,2
(1.School of Information Science and Engineering,Yanshan University,Qinhuangdao 066004,China;2.The Key Laboratory for Computer Virtual Technology and System Integration of Hebei Province,Qinhuangdao,Hebei 066004,China)
In this paper,a real?time and effective Euler approach is introduced for multiple?smoke fusion.First of all,the domain de?composition algorithm is presented to solve the free random movement problem of multiple?smoke fusion in structural layer.Second?ly,the speed of solving N?S equations is improved by the GPU,and as many as seven different attributes of smoke fusion process is got.Thirdly,the spread of smoke fusion details is shown clearly through realization Ray?casting algorithm.Finally,more smoke's in?teresting fusion details is got by controlling the smoke flow impact factors,such as temperature,speed,diffusion coefficient,concen?tration,etc.So the method can simply and effectively simulate real?time multiple?smoke fusion.
Euler approach;smoke fusion;domain decomposition algorithm;GPU;Ray?casting
TP391.9
A
10.3969/j.issn.1007?791X.2015.05.011
1007?791X(2015)05?0448?05
2015?06?22 基金項目:國防重大專項資助項目(2014AT09)
?唐勇(1964?),男,四川遂寧人,博士,教授,博士生導(dǎo)師,主要研究方向為計算機動畫、計算機圖形學(xué)、虛擬現(xiàn)實技術(shù)及其應(yīng)用,Email:tangyong@ysu.edu.cn。