陳世龍,李思昆,王懷輝,蔡勛
國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,長沙 410073
飛行器表面矢量場數(shù)據(jù)動態(tài)紋理可視化方法
陳世龍,李思昆,王懷輝,蔡勛
國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,長沙 410073
流場可視化是科學(xué)計(jì)算可視化中一個(gè)重要而活躍的研究領(lǐng)域,在計(jì)算流體力學(xué)、空氣動力學(xué)、天氣預(yù)報(bào)和地球物理模擬等方面起著舉足輕重的作用。通過流場可視化,物體各處的流場情況能得到快速、清楚、直接的顯示,快速地把大體積數(shù)據(jù)轉(zhuǎn)變成直觀的,以圖形或圖像形式表示的信息,幫助科學(xué)家觀察到模擬和計(jì)算的過程,進(jìn)行交互控制和有效分析。
流場數(shù)據(jù)可視化方法通??煞譃椋夯趲缀涡螤畹牧鲌鰯?shù)據(jù)可視化方法、基于顏色和光學(xué)特性的流場數(shù)據(jù)可視化方法、基于紋理的流場數(shù)據(jù)可視化方法等多種類型。紋理可視化是利用生成的紋理對矢量流場的方向變化信息進(jìn)行可視化表現(xiàn),該方法綜合了幾何形狀映射方法與顏色映射方法兩者的長處,同時(shí)又克服了兩者各自存在的缺點(diǎn),是目前矢量流場數(shù)據(jù)可視化領(lǐng)域的研究熱點(diǎn)。
本文面向計(jì)算流體力學(xué)(CFD)領(lǐng)域飛行器表面流場數(shù)據(jù)可視化的應(yīng)用需求,研究CFD矢量流場數(shù)據(jù)紋理可視化技術(shù)與方法。
矢量場的紋理可視化方法具體包括:點(diǎn)噪聲(Spot Noise)[1]、線積分卷積(LIC)[2]、紋理平流方法IBFV[3]。其中點(diǎn)噪聲方法的理論背景是統(tǒng)計(jì)和認(rèn)知模型,實(shí)際效果類似于實(shí)驗(yàn)流動顯示的油膜方法。其缺點(diǎn)是:對于速度方向變化劇烈的地方,可視化效果較差。
線積分卷積的基本思想為:矢量場中的任一點(diǎn)處的局部特性由一卷積函數(shù)k(w)沿一條從該點(diǎn)開始向前向后跟蹤出的一段流線積分的結(jié)果決定。它可以清晰地描述流場的全局和局部細(xì)節(jié)信息,方向信息明顯,適用于2D流場。但存在的不足是計(jì)算量巨大,實(shí)時(shí)交互性較差,對于3D流場存在遮擋問題。
針對LIC計(jì)算代價(jià)高和實(shí)時(shí)性差的問題,出現(xiàn)了各種對LIC的改進(jìn)算法,如FLIC(Fast LIC)[4],為了進(jìn)一步加快速度,新的改進(jìn)算法利用流線紋理映射可以代替FLIC中的卷積計(jì)算[5-6]。Li等實(shí)現(xiàn)了基于GPU的UFLIC算法,但對算法實(shí)現(xiàn)細(xì)節(jié)描述較少。LIC動畫[7]利用可變的動畫速度來可視矢量大小,但計(jì)算動畫幀序列、時(shí)間、內(nèi)存開銷都比較大。同時(shí),Shen和Kao的UFLIC[8](Unsteady Flow LIC)算法從質(zhì)點(diǎn)平流的角度重新詮釋了LIC思想,并成功應(yīng)用于不穩(wěn)定流場的可視化。
在紋理平流方法中,以IBFV[3]方法為主要代表。IBFV基于紋理平流,最終流場動畫的每一幀都是由之前圖像和一系列經(jīng)過濾波的噪聲背景圖像的卷積得到的?;贗BFV算法的擴(kuò)展性研究很多,文獻(xiàn)[9]提出一種基于質(zhì)點(diǎn)平流的增強(qiáng)型IBFV可視化算法。Wijk將IBFV算法成功應(yīng)用于曲面流場的可視化——IBFVS[10],該算法以三角網(wǎng)格為基本圖元,首先將三維曲面投影到二維平面,然后進(jìn)行紋理平流與混合,最終實(shí)現(xiàn)曲面流場的運(yùn)動。Telea與Wijk提出了基于硬件加速的三維3D IBFV[11]算法,將IBFV算法拓展到三維空間。文獻(xiàn)[12]應(yīng)用IBFV算法對空間晶體生長實(shí)驗(yàn)中產(chǎn)生的流場數(shù)據(jù)進(jìn)行可視化,實(shí)現(xiàn)了流場數(shù)據(jù)的實(shí)時(shí)動態(tài)顯示。
本文以IBFVS方法為框架,用GPU加速的LIC圖像替換IBFVS方法使用的隨機(jī)噪聲圖像,提出基于線性卷積及紋理平流相結(jié)合的紋理可視化方法。算法結(jié)合LIC紋理結(jié)果對比度高,線條連續(xù)流暢及IBFVS方法生成速度快,具有流動特性的優(yōu)勢,并對線性卷積部分進(jìn)行GPU并行加速處理,提高了整體顯示速度和圖像顯示質(zhì)量,取得了很好的實(shí)驗(yàn)結(jié)果。
2.1 概述
IBFV基于紋理平流,最終流場動畫的每一幀都是由之前圖像和一系列經(jīng)過濾波的噪聲背景圖像的卷積得到。操作時(shí)以圖像平流替代以往的質(zhì)點(diǎn)平流,是一種用宏觀圖形表現(xiàn)微觀粒子運(yùn)動的新方法。該方法獨(dú)立于流場數(shù)據(jù),不需要事先分析流場的結(jié)構(gòu)特點(diǎn),具有普遍的適用性。
相對于LIC方法,不需要參數(shù)化,不會存在參數(shù)化難題,也不會在用戶改變視角或者放大局部時(shí)進(jìn)行重新參數(shù)化,具有較高的響應(yīng)時(shí)間。
IBFV可以較好地利用硬件,且因?yàn)槭腔趫D像的紋理方法,獲得較高的繪制速度,這在對于大量數(shù)據(jù)的實(shí)時(shí)顯示方面有很大的優(yōu)勢,而且對于全局有較好的顯示和把握。
但是,該算法參數(shù)物理意義不明顯,生成的圖像對比度不高,沒有較強(qiáng)的局部表現(xiàn)力。
2.2 IBFV算法原理
IBFV方法基于紋理平流,最終流場動畫的每一幀都是由之前圖像和一系列經(jīng)過濾波的噪聲背景圖像卷積得到,操作時(shí)以圖像平流替代以往的質(zhì)點(diǎn)平流,是一種用宏觀圖形表現(xiàn)微觀粒子運(yùn)動的新方法。該方法獨(dú)立于流場數(shù)據(jù),不需要事先分析流場的結(jié)構(gòu)特點(diǎn),具有普遍的適用性;且IBFV方法還具有對硬件要求不高,繪制速度快等優(yōu)點(diǎn)。
定義矢量場,如下:
添加隨機(jī)噪聲:在每一幀的平流結(jié)果中加入不同地隨機(jī)噪聲,使得平流圖像產(chǎn)生動態(tài)效果。
其中,α為背景圖案和上一幀圖像的混合比例,α越大背景圖案混合的比例越大;
去掉遞歸,可以得到結(jié)果:
對于變化步數(shù)k,隨著步數(shù)k變大,初始圖像的影響得到減弱,得到最終結(jié)果:
結(jié)論:IBFV最終圖像結(jié)果的每個(gè)像素值,是通過這個(gè)點(diǎn)的流線在一系列不同的隨機(jī)噪聲對應(yīng)位置的數(shù)值進(jìn)行的卷積,其中卷積核為a*(1-a)i。選擇不同的隨機(jī)噪聲,是為了使得不同點(diǎn)的計(jì)算有更大差別,最后能動起來。但這也存在不足,不同背景噪聲導(dǎo)致結(jié)果紋理連續(xù)性差。
2.3 IBFVS算法優(yōu)化原理
IBFVS是IBFV在曲面上的推廣應(yīng)用,需要速度投影,并加入陰影圖案來體現(xiàn)曲面效果。
公式(6)是IBFVS方法的每個(gè)像素的計(jì)算公式,對一些指數(shù)級遞減的噪聲值進(jìn)行積分;通過控制α的大小,可以控制前后兩幀圖像的混合比例。
觀察公式(7),可以得出結(jié)論,平流的最終結(jié)果為:為了讓畫面動起來,每個(gè)像素點(diǎn)的值等于對一系列對應(yīng)隨機(jī)噪聲點(diǎn)的值進(jìn)行積分,但是圖像對比度低,每一條紋理也不夠連續(xù)。
本文利用LIC方法,產(chǎn)生具有明顯LIC方向信息的矢量場速度及具有隨機(jī)噪聲的方向信息,將背景噪聲代替原來的隨機(jī)噪聲G(pk;k),使得最終平流方法結(jié)果較為細(xì)膩,且對比性較強(qiáng),單個(gè)紋理?xiàng)l紋連續(xù)性較好。
2.4 算法過程
2.4.1 數(shù)據(jù)預(yù)處理
對矢量場數(shù)據(jù)進(jìn)行預(yù)處理的過程,如圖1所示。首先,將原始的曲面場數(shù)據(jù)進(jìn)行投影;然后,利用GPU插值,可以同時(shí)利用GPU優(yōu)越插值功能及GPU加速功能,加快響應(yīng)速度;最后,得到規(guī)則網(wǎng)格數(shù)據(jù)場。
圖1 曲面矢量場數(shù)據(jù)處理示意圖
數(shù)據(jù)預(yù)處理還包括求表面點(diǎn)的法向量,以便在后面可以進(jìn)行正確的光照計(jì)算。在對曲面結(jié)點(diǎn)進(jìn)行繪制的過程中,把速度值作為顏色值,使得繪制出來的平面圖像每個(gè)結(jié)點(diǎn)的顏色值就是這個(gè)點(diǎn)的速度值,將它作為速度場傳入GPU中。
2.4.2 LIC紋理的GPU加速生成
得到規(guī)則矢量數(shù)據(jù)場后,利用LIC算法生成紋理;再次利用GPU進(jìn)行加速處理,以加快LIC算法的生成速度。本文算法能達(dá)到實(shí)時(shí)交互和時(shí)變矢量場可視化的要求。
如圖2所示,將矢量場和隨機(jī)噪聲同時(shí)傳入GPU;在GPU中,利用速度場對噪聲場進(jìn)行卷積積分,得到LIC紋理圖案以及LIC結(jié)果;繪制出每一幀LIC流程圖后,將其保存到FBO綁定的紋理中,并進(jìn)行相應(yīng)的FBO綁定切換。
圖2 LIC紋理生成流程圖
GPU加速部分是利用OPENGL著色器實(shí)現(xiàn),主要在片元著色器中完成。在數(shù)據(jù)處理時(shí),將速度場作為顏色值進(jìn)行繪制,得到規(guī)則的數(shù)據(jù)場,然后將其以紋理方式傳入著色器;在片元著色器中進(jìn)行處理時(shí),利用粒子平流方法,取一點(diǎn)紋理顏色值得到相應(yīng)點(diǎn)的速度值,然后計(jì)算下一點(diǎn)位置,再取顏色值計(jì)算,以此類似計(jì)算可以得到粒子軌跡,取粒子經(jīng)過點(diǎn)的噪聲值進(jìn)行計(jì)算,就可以得到相應(yīng)點(diǎn)的最終紋理值。這個(gè)過程中,以不同的方法計(jì)算粒子下一點(diǎn)位置和以不同卷積函數(shù)計(jì)算最終相應(yīng)軌跡點(diǎn)的隨機(jī)噪聲,可以得到各種不同的方法。
2.4.3 LIC紋理濾波
為了進(jìn)一步提高LIC紋理圖案的對比度,可以對LIC結(jié)果進(jìn)行濾波,得到具有更高對比度的紋理圖案。
如圖3所示,對生成的每一幀LIC紋理圖像的每個(gè)像素點(diǎn)進(jìn)行濾波,增強(qiáng)像素點(diǎn)間值的差異性,得到對比度更強(qiáng)的圖案。其中圖3(a)為LIC結(jié)果;圖3(b)為對LIC進(jìn)行濾波后的結(jié)果;圖3(c)為LIC未濾波全局圖;圖3(d)為對LIC進(jìn)行濾波后的結(jié)果。前四張截圖都是在后面地球上的結(jié)果截圖,所有截圖LIC步長都是20步。
圖3 (a)LIC結(jié)果圖
3(b)對LIC濾波后的效果圖
圖3 (c)LIC整體結(jié)果圖
圖3 (d)濾波后的LIC整體結(jié)果圖
2.4.4 紋理平流
最后,利用紋理平流,產(chǎn)生紋理圖案。具體方法:在平流的每一幀中,用LIC紋理結(jié)果代替平流方法產(chǎn)生的背景隨機(jī)噪聲,在已經(jīng)具有一定矢量場方向隨機(jī)噪聲的基礎(chǔ)上進(jìn)行平流,結(jié)果圖案將會更具方向性和更高紋理對比度,效果圖如圖4。其中,圖4(a)和4(b)分別為最后平流效果的局部圖和在球面上的效果圖。
圖4 (a)平流局部效果圖
圖4 (b)平流整體效果圖
2.4.5 速度場的顏色映射
目前紋理方法中,只能較好地表現(xiàn)矢量場方向,而不能體現(xiàn)矢量場大小。對此,可以將矢量場大小與顏色進(jìn)行映射,生成速度圖像,然后將其混合到紋理圖案中。其結(jié)果,圖案紋理既體現(xiàn)了矢量場方向信息,又用顏色圖案代表了矢量場大小信息,使所表達(dá)的信息更加豐富。
具體原理:將速度場按速度大小進(jìn)行顏色映射,然后與紋理結(jié)果混合,使得結(jié)果圖像既包含清晰的矢量場方向信息,又包含矢量場大小信息;具體方法為:將結(jié)點(diǎn)速度值歸一化后分別對應(yīng)為RGB值,作為顏色值繪制一遍模型(其中速度XYZ值分別對應(yīng)RGB值),產(chǎn)生速度圖案,如圖5。其中,圖5(a)為飛行器表面流場的速度映射;圖5(b)為地球表面流場的速度映射圖像。
圖5 (a)飛行器表面流場顏色映射
圖5 (b)地球表面流場顏色映射
2.4.6 噪聲場優(yōu)化
IBFV的隨機(jī)噪聲一般為256(至少為32)副;隨機(jī)噪聲窗口過大(一般為800×800),會加大隨機(jī)噪聲所占內(nèi)存空間;利用GPU加速,內(nèi)存空間需求會更大。對此,進(jìn)行了多次實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,傳輸每幅64×64大小的隨機(jī)噪聲,既降低系統(tǒng)負(fù)擔(dān),又不影響最終結(jié)果,如圖6所示。
圖6 (a)沒有噪聲優(yōu)化的結(jié)果
圖6 (b)優(yōu)化后的結(jié)果
主要原理:利用著色器進(jìn)行GPU加速時(shí),計(jì)算隨機(jī)噪聲紋理坐標(biāo),并對其映射,對噪聲數(shù)據(jù)重復(fù)優(yōu)化利用,達(dá)到既定目的。
圖6中,圖6(a)為沒有進(jìn)行噪聲優(yōu)化的結(jié)果(噪聲為128×128);圖6(b)為在GPU中對噪聲進(jìn)行優(yōu)化后的結(jié)果(噪聲為64×64)。
2.4.7 算法流程圖
以上為本文提出算法的主要改進(jìn)步驟,算法流程如圖7所示。
圖7 算法流程圖
實(shí)驗(yàn)環(huán)境為普通的PC機(jī),Windows 7操作系統(tǒng),Intel Pentium?4 CPU 3.00 GHz,2 GB內(nèi)存,顯卡為NVIDIA GeForce 8600T;算法基于Visual Studio 2010環(huán)境,利用OpenGL實(shí)現(xiàn),顯示窗口分辨率為800×800。圖像平流周期為64,算法混合因子為0.1。選用地球數(shù)據(jù)場為16 290個(gè)點(diǎn),32 040個(gè)面片,所有的截圖都為在800×800的窗口上畫好圖后,所截部分而得。
圖8為實(shí)驗(yàn)結(jié)果效果圖,其中圖8(a)為IBFV效果圖;圖8(b)為優(yōu)化算法產(chǎn)生的效果圖像;圖8(c)為算法優(yōu)化后的最后球面整體效果圖像(LIC步長為5),地球表面貼有地球圖像紋理;圖8(d)為沒有加地球圖像的紋理;圖8(e)為飛行器上的局部紋理圖案,其中表面速度映射方法為將流場XYZ方向速度歸一化后與顏色RGB值對應(yīng)進(jìn)行映射;圖8(f)為優(yōu)化算法產(chǎn)生的的整體紋理圖案。
圖8 (a)IBFV效果
圖8 (b)算法優(yōu)化后效果圖
圖8 (c)地球表面效果圖(含地圖紋理)
圖8 (d)地球表面效果圖
圖8 (e)飛行器局部效果圖
圖8 (f)飛行器整體效果圖
表1為相關(guān)繪制數(shù)據(jù)。從實(shí)驗(yàn)數(shù)據(jù)可以觀察到:通過GPU加速技術(shù),LIC繪制速度較快,LIC步長對最后速度影響不大;算法的平流繪制幀率較高,可以得到流暢的繪制速度;進(jìn)一步進(jìn)行算法優(yōu)化,本文算法可以滿足時(shí)變流場的繪制速度要求。
表1 實(shí)驗(yàn)數(shù)據(jù)
研究發(fā)現(xiàn)IBFVS紋理的連續(xù)性不好,對比度不高的原因是積分項(xiàng)的每一項(xiàng)背景噪聲不相同。
利用矢量場速度和隨機(jī)噪聲產(chǎn)生LIC的方向信息明顯的紋理結(jié)果,然后將它作為背景噪聲代替原來的隨機(jī)噪聲,這樣就能讓平流方法產(chǎn)生的結(jié)果對比性強(qiáng),而且單個(gè)紋理流線上的連續(xù)性較好,圖像細(xì)膩,也能達(dá)到較快的交互能力。下一步研究方向:將矢量場大小更好地體現(xiàn)到紋理結(jié)果圖像中,同時(shí),進(jìn)一步提高算法的繪制速度,滿足時(shí)變流場可視化和可視化交互能力的需求。
[1]van Wijk J J.Spot noise:texure synthesis for data visualization[C]//Proceedings of the 18st Annual Conference on Computer Grapuhics and Interactive Techniques,1991.
[2]Cabral B,Leith C L.Imaging vector fields using line integral convolution[C]//Proceedings of the 20th Annual Conference on Computer Graphics and Interactive Techniques,1993:263-270.
[3]van Wijk J J.Image based flow visualization[C]//Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques,2002:745-754.
[4]Stalling D,Hege H C.Fast and resolution-independent line integral convolution[C]//Proceedings of SIGGRAPH’395,1995:249-256.
[5]Zhang Wen,Li Xiaomei.Enhanced streamline texture synthesis for vector field visualization[C]//Proceedings of the 4th International Conference on High-Performance Computing in the Asia-Pacific Region(HPC-Asia 2000),Beijing,China,2000.
[6]Kiu M H,Banks D C.Multi-frequency noise textures for LIC[C]// Proceedings of IEEE Visualization’96,1996:121-126.
[7]Taponecco F,Alexa M.Vector field visualization using Markov random field texture synthesis[C]//Proceedings of IEEE TCVG Symposium on Visualization,Grenoble,2003:195-202.
[8]Shen H W,Kao D L.A newline integral convolution algorithm for visualizing time—varying flow fields[J].IEEE Transactions on Visualization and Computer Graphics,1998,4(2):98-108.
[9]孫長會,范茵,李騫,等.增強(qiáng)型IBFV 2維矢量場可視化算法[J].中國圖象圖形學(xué)報(bào),2011,16(6):1064-1069.
[10]van Wijk J J.Image based flow visualization for curved surfaces[C]//Proceedings of the IEEE Visualization Conference(VIS 2003),2003:123-130.
[11]Telea A,van Wijk J J.3D IBFV:hardware-accelerated 3D flow visualization[C]//Proceedings of the IEEE Visualization Conference,2003.
[12]Wu Xiaoli,Shi Meiping,He Hangen.Dynamic flow visualization in space crystal growth[J].Computer Simulation,2007,24(4):190-192.
CHEN Shilong,LI Sikun,WANG Huaihui,CAI Xun
College of Computer,National University of Defense Technology,Changsha 410073,China
This paper presents a visualization method for the aircraft surface flow field data.The algorithm is a combination of the linear convolution(LIC)and texture advection(IBFVS)visualization methods.The algorithm by using random noise to replace the background of IBFVS LIC texture way,combines the advantages of high contrast and IBFVS methods to generate fast LIC texture results.Firstly,it projects and interpolates surface vector field to generate vector data field by using GPU.Secondly,it rapidly creates the LIC texture image,and then adds LIC resulting image to the IBFVS advection,to generate the texture image. Finally,it adds color mapping,to display rich information of flow.The experimental results show that the proposed algorithm can generate high contrast,strong clarity and real-time dynamic textures for the aircraft surface flow field data.
vector field;texture visualization;IBFVS method;Line Integration Convolution(LIC);GPU acceleration
面向飛行器表面流場數(shù)據(jù)可視化的應(yīng)用需求,提出一種基于線性卷積(LIC)及紋理平流(IBFVS)相結(jié)合的動態(tài)紋理可視化方法。算法通過將IBFVS方法的背景隨機(jī)噪聲替換為LIC紋理方式,結(jié)合了LIC紋理結(jié)果對比度高及IBFVS方法生成速度快的優(yōu)勢;針對LIC繪制速度慢的不足,利用GPU對曲面矢量場投影并插值,生成規(guī)則矢量數(shù)據(jù)場;用GPU對LIC部分進(jìn)行并行加速,有效提高了LIC紋理圖像產(chǎn)生速度;將LIC結(jié)果圖像加入到IBFVS進(jìn)行平流,生成紋理圖像,最后加入顏色映射,豐富流場信息。實(shí)驗(yàn)結(jié)果表明,該方法生成的飛行器表面動態(tài)紋理圖像對比度高,清晰度強(qiáng),實(shí)時(shí)繪制性能好。
矢量場;紋理可視化;IBFVS方法;線積分卷積法;GPU加速
A
TP391.41
10.3778/j.issn.1002-8331.1206-0365
CHEN Shilong,LI Sikun,WANG Huaihui,et al.One texture visualization method for aircraft surface vector flow field. Computer Engineering and Applications,2013,49(19):123-126.
國家重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃(973)(No.2009CB723803)。
陳世龍(1988—),男,碩士研究生,研究方向?yàn)轱w行器表面流場的紋理可視化;李思昆(1941—),男,教授,博導(dǎo),主要研究方向:虛擬現(xiàn)實(shí)與可視化,嵌入式系統(tǒng)與SoC設(shè)計(jì)方法學(xué)等。E-mail:chenshilong1949@163.com
2012-06-25
2012-09-17
1002-8331(2013)19-0123-04
CNKI出版日期:2012-10-08http://www.cnki.net/kcms/detail/11.2127.TP.20121008.1651.004.html