呂夢雅,張 鵬,劉培藝,唐 勇,李 穎
1(燕山大學 信息科學與工程學院,河北 秦皇島 066004)
2(河北省計算機虛擬技術與系統(tǒng)集成重點實驗室,河北 秦皇島 066004)
E-mail:tangyong@ysu.edu.cn
近年來,中國沿海城鎮(zhèn)工業(yè)化發(fā)展進程加快,沿海海域污染程度日趨嚴重,對沿海居民的身體健康和沿海海域內的生態(tài)環(huán)境造成了極大的影響.因此,模擬海洋污染擴散對于了解污染物在海洋中擴散的過程和程度以及有效地治理沿海污染具有重要的現(xiàn)實意義和廣泛的應用前景,但由于污染物在大規(guī)模海洋中擴散受到多種外界因素的影響,較難展現(xiàn)大規(guī)模海洋污染擴散蔓延等細節(jié).
真實感的海洋場景一直都是計算機圖形學的研究熱點.為模擬逼真的大規(guī)模海洋污染場景,不少國內外研究人員取得了很多優(yōu)秀的研究成果.2015年,Christopher等[1]對多種非定向海浪譜以及方向分布函數(shù)進行研究對比,提出了一個“swell”參數(shù)來模擬從波濤洶涌海面到平靜海面的平滑過渡,但模擬海面陡峰突兀,真實感較差;2016年,唐勇等[2]將光強、太陽光顏色和位置信息加入到海面顏色的計算中,實現(xiàn)了不同時刻海島周圍海水的顏色變化,但僅可以實現(xiàn)具有一定幅度海面,且并未考慮到存在污染物時海面顏色的變化,具有較大的局限性;2018年,Jeschke等[3]提出了一種基于小波變換的海浪實時構造方法,實現(xiàn)了大規(guī)模、可交互且能體現(xiàn)微小細節(jié)的海面場景,但并沒有考慮存在污染物時海面波動情況;同年鄒長軍等[4]采用紋理投影技術,實現(xiàn)了基于GPU的海面溢油實時可視化方法,但紋理投影實現(xiàn)的海面溢油效果細節(jié)不足,真實感較差;2011年,劉世光等[5]基于渾濁水體成分對光學特性的影響,提出了一個渾濁水體的光學模型,根據(jù)光線在渾濁水體中的傳播及衰減作用,將其轉化為RGB顏色系統(tǒng)進行繪制.但是該方法僅僅考慮水中小顆粒的影響,光學模型的計算精度較差,真實感較差.2012年,Jinjin Shi等[6]基于生物光學模型應用光子映射技術在小規(guī)模水體內實現(xiàn)了水內可溶有機物與懸浮顆粒的擴散效果,但是光子映射技術計算量過大,實時性較差,且僅應用于小規(guī)模水體渲染.2017年,Rufu Q等[7]提出了一種基于分子布朗運動和粒子跟蹤擴散模型的污染物擴散預測系統(tǒng),并與GIS系統(tǒng)結合,為水體污染預警提供依據(jù),但并未實現(xiàn)三維空間的海面污染物擴散模擬.2004年,Dobbins等[8]分析了基于GIS進行管理和預測水體中污染物擴散漂移進程的系統(tǒng),但其僅模擬二維平面的海面污染物擴散模擬,并未擴展至三維空間場景.2006年Weiss等[9]提出了一種基于CPU的中值濾波算法,提高傳統(tǒng)濾波算法效率.
因此,提出一種結合投影網格和元胞自動機的方法動態(tài)模擬大規(guī)模海洋污染物的擴散.首先,利用投影網格繪制大規(guī)模海面,并采用元胞自動機對水體中污染物的擴散漂移過程進行模擬;然后,利用高斯平滑濾波算法并引進濃度因子增加污染物擴散漂移過程的細節(jié).最后,采用四叉樹算法簡化海面網格,提高繪制速率,實現(xiàn)大規(guī)模海面污染物擴散實時動態(tài)模擬.
為模擬大規(guī)模海面場景,常采用海面網格將大規(guī)模海面劃分為規(guī)則網格.由于Nyquist極限的限制,為平衡計算量和模擬細節(jié),采用投影網格算法搭建海面網格.
傳統(tǒng)的投影網格算法通過在投影空間中創(chuàng)建規(guī)則的網格,并將網格投影到世界空間中的基準平面上,最后根據(jù)高度場函數(shù)移動頂點.但是當視線方向與基準平面平行時,視線方向與基準平面不相交,該算法失效.同時視點高度小于基準平面時,該算法也會出現(xiàn)問題.
圖1 優(yōu)化的投影網格算法示意圖
為解決上述問題,應用改進的投影網格算法,通過引入一個輔助相機以達到填充屏幕網格的作用.輔助相機的位置與相機位置重合,輔助相機的視景體的下切割平面始終垂直與水平面,而其他切割平面與原相機的視景體相應的切割平面保持一致,如圖1所示.通過該方法可以使投影網格始終覆蓋整個屏幕網格.
污染物在海面中的擴散過程受到水體流速、流向、風向、風速和自身的物理性質等多種因素影響,所以其過程具有局部性、時空離散型等特點.由于元胞自動機具有快速模擬復雜系統(tǒng)局部時空演化過程的能力,采用元胞自動機模擬污染物在大規(guī)模海面中的擴散過程.
元胞自動機通常由元胞、元胞空間、鄰域和狀態(tài)演化規(guī)則構成.第2節(jié)所述投影網格的每一個規(guī)則網格定義為一個元胞,每一個元胞的狀態(tài)由周圍鄰域的元胞狀態(tài)共同決定.
3.1.1 濃度因子優(yōu)化元胞自動機狀態(tài)
(1)
3.1.2 海面污染物擴散元胞自動機的擴散規(guī)則
以二維元胞自動機為模型,并采用摩爾型鄰域.同時為簡化計算,假設海洋中的污染物不會與海水發(fā)生化學反應以及發(fā)生蒸發(fā)、降解和乳化等現(xiàn)象,污染物僅受到本身分子運動和水流以及風的作用.根據(jù)上述假設,污染物在海水中擴散的過程中會發(fā)生分子擴散和機械彌散兩種情況.
當污染物流入海洋時,由于污染物本身的分子運動,污染物通常由高濃度處向低濃度處擴散,這種擴散稱為分子擴散.根據(jù)菲克定律,可以得到污染物在海面的擴散規(guī)則:
(2)
其中M為質量,i,j為行列號,m為靜態(tài)擴散系數(shù),d為斜向系數(shù),t為時刻.根據(jù)Karafyllidis[10]的研究得知,當m=0.084、d=0.16時模擬效果最契合實際情況.
在實際情況中,水流和風對污染物的擴散存在重大的影響,這種由于水速或風速造成的擴散漂移現(xiàn)象被稱為機械彌散.結合分子擴散和機械彌散,可得到海水中污染物擴散元胞自動機的擴散規(guī)則:
(3)
其中W為元胞八個方向上的修正系數(shù).
元胞自動機是基于規(guī)則的投影網格,而網格分辨率受到計算資源的限制,往往是有限的.當網格分辨率較低時,邊緣處就會出現(xiàn)明顯的鋸齒現(xiàn)象.為解決上述問題,采用高斯平滑濾波法進行元胞自動機邊緣的平滑處理,以達到改善邊緣鋸齒化的目的.
高斯平滑濾波算法原理是每一個像素點都由其本身和鄰域內的其他像素值加權得到.隨著鄰域像素點距離中心像素點的距離增加,其權值將迅速減小,從而使像素點的顏色過渡更加自然.其主要思想是通過對高斯函數(shù)進行離散化,以離散點上的高斯函數(shù)值為權值對鄰域內像素點的加權平均,即可達到平滑邊緣的目的.
對于一個N×N的鄰域,窗口模板大小為(2h+1)×(2h+1)的高斯卷積核為:
(4)
其中σ為方差,h為模板矩陣的維數(shù),m,n為窗口內相對于中心元素點的相對坐標.
(5)
在大規(guī)模海面的污染物擴散模擬過程中,元胞自動機和投影網格需要大量的離散數(shù)據(jù),簡單的數(shù)據(jù)存儲往往會降低繪制速率.引入四叉樹算法提高場景繪制速率.將海面平面分割成四個相等的四邊形,依次迭代細分,直到滿足繪制的網格分辨率或給定的閾值為止.每次迭代出的四邊形都為四叉樹的一個節(jié)點,每個節(jié)點保存該區(qū)域所包含的所有信息,例如中心點的高度值、分割閾值、水流速度、水流方向、風速、風向、深度值等網格數(shù)據(jù).在繪制海洋中污染物的擴散過程時,通過遍歷的方式,對四叉樹的每一個節(jié)點進行訪問,如圖2所示.
圖2 四叉樹算法簡化網格示意圖
實驗采用基于Windows系統(tǒng),Unity3d平臺開發(fā)的基于元胞自動機的大規(guī)模海面污染物擴散仿真系統(tǒng),硬件環(huán)境為:Intel(R)Core(TM)i7 CPU 4790 3.60GHz,8G RAM,顯卡為ATI AMD Radeon R7 200 Series.
圖3中為采用本文算法繪制不同分辨率的海面效果與文獻[1]中海面效果的對比,圖3(a)為文獻[1]中采用TMA模型模擬的海面,圖中看出波浪具有明顯周期性,模擬海面不夠真實;而圖3(b)-圖3(d)為本文采用投影網格算法模擬海面效果,圖3b海面網格的分辨率為512×512,分辨率較低,同樣具有明顯周期性.圖3(c)采用相同算法,但海面網格分辨率為2K×2K.圖3(d)模擬海面分辨率為4K×4K的海面效果,圖3(c)和圖3(d)的海面真實感差距不大,但圖3(d)繪制速率較低,所以在實時的條件下,圖3(c)模擬海面效果最佳.
圖4中為本文算法與文獻[3]海面波浪效果圖,圖4(a)為文獻[3]模擬的海面,從圖中可以看出,文獻[3]模擬的海面波浪真實,但文獻[3]并沒有考慮海面存在污染物的情況;而圖4(b)為本文拓展海面存在污染物時海面波動的效果圖,在實時的條件下,大大提高真實感.
圖3 不同分辨率下模擬海面與文獻[1]對比實驗
圖4 與文獻[3]對比實驗
圖5展示不同時刻污染物的擴散狀態(tài).隨時間變化以及不同區(qū)域濃度因子的變化,污染物擴散的范圍以及顏色的效果呈現(xiàn)不同狀態(tài),顯著提高真實性.
圖5 不同時刻污染物擴散效果實驗
圖6展示應用平滑濾波算法改善邊界效果的實驗對比圖.圖6(a)是沒有利用平滑濾波算法的效果圖,而圖6(b)是利用平滑濾波算法的效果圖.從圖6(a)和圖6(b)中可以明顯看出,應用平滑濾波算法可以明顯改善由于網格分辨率低而產生的邊界鋸齒化.
圖6 應用平滑濾波算法效果對比實驗
圖7為大規(guī)模海面污染場景模擬實驗.圖7(a)展示真實海洋赤潮生態(tài)現(xiàn)象,圖7(b)為文中模擬的大規(guī)模海面的赤潮場景,圖7(c)為海洋泥沙分界現(xiàn)象,圖7(d)為文中模擬海面的分界效果圖,通過以上對比可以看出,應用文中方法模擬大規(guī)模海面污染物擴散場景還原度較高,有較大的真實感.
圖7 應用本文方法與真實場景對比實驗
為檢測大規(guī)模海面污染物擴散仿真效果可行性,表1列出了本文實驗以及是否使用四叉樹算法數(shù)據(jù)的對比狀況.可以明顯看出本文算法在顯著提升模擬的細節(jié)同時,保證了實時性.
表1 大規(guī)模海面污染物擴散模擬實驗數(shù)據(jù)對比
Table 1 Comparison of simulated experimental data of large-scale sea surface pollutants
實驗圖網格分辨率使用四叉樹算法幀率(FPS)未使用四叉樹算法幀率(FPS)D圖3b512×5127432圖3c2K×2K4218圖3d4K×4K123.8圖4b640×4807126圖5(a),5(b),5(c)640×48070,68,5635,24,11圖7b1200×7206321圖7d1200×7205926
本文提出一種元胞自動機改善大規(guī)模海面污染物擴散模擬方法.首先,采用投影網格方法進行海面網格建模,在模擬大規(guī)模海面同時提高繪制速率;此外,利用元胞自動機結合海面網格的方法,實現(xiàn)海洋中污染物動態(tài)擴散過程的模擬,引入濃度因子,增加污染物擴散的細節(jié),并利用高斯平滑濾波算法平滑元胞邊界效果;最后,采用四叉樹算法簡化海面網格,大大提高繪制效率,大幅度提升大規(guī)模海面污染物動態(tài)擴散過程真實感.實驗數(shù)據(jù)表明,本文的方法能夠實現(xiàn)大規(guī)模海面污染物擴散狀態(tài)下的實時模擬.在未來工作中,需進一步研究污染物與環(huán)境的交互,提高模擬真實度.