陈世龙,李思昆,王怀辉,蔡勋
国防科学技术大学计算机学院,长沙 410073
飞行器表面矢量场数据动态纹理可视化方法
陈世龙,李思昆,王怀辉,蔡勋
国防科学技术大学计算机学院,长沙 410073
流场可视化是科学计算可视化中一个重要而活跃的研究领域,在计算流体力学、空气动力学、天气预报和地球物理模拟等方面起着举足轻重的作用。通过流场可视化,物体各处的流场情况能得到快速、清楚、直接的显示,快速地把大体积数据转变成直观的,以图形或图像形式表示的信息,帮助科学家观察到模拟和计算的过程,进行交互控制和有效分析。
流场数据可视化方法通常可分为:基于几何形状的流场数据可视化方法、基于颜色和光学特性的流场数据可视化方法、基于纹理的流场数据可视化方法等多种类型。纹理可视化是利用生成的纹理对矢量流场的方向变化信息进行可视化表现,该方法综合了几何形状映射方法与颜色映射方法两者的长处,同时又克服了两者各自存在的缺点,是目前矢量流场数据可视化领域的研究热点。
本文面向计算流体力学(CFD)领域飞行器表面流场数据可视化的应用需求,研究CFD矢量流场数据纹理可视化技术与方法。
矢量场的纹理可视化方法具体包括:点噪声(Spot Noise)[1]、线积分卷积(LIC)[2]、纹理平流方法IBFV[3]。其中点噪声方法的理论背景是统计和认知模型,实际效果类似于实验流动显示的油膜方法。其缺点是:对于速度方向变化剧烈的地方,可视化效果较差。
线积分卷积的基本思想为:矢量场中的任一点处的局部特性由一卷积函数k(w)沿一条从该点开始向前向后跟踪出的一段流线积分的结果决定。它可以清晰地描述流场的全局和局部细节信息,方向信息明显,适用于2D流场。但存在的不足是计算量巨大,实时交互性较差,对于3D流场存在遮挡问题。
针对LIC计算代价高和实时性差的问题,出现了各种对LIC的改进算法,如FLIC(Fast LIC)[4],为了进一步加快速度,新的改进算法利用流线纹理映射可以代替FLIC中的卷积计算[5-6]。Li等实现了基于GPU的UFLIC算法,但对算法实现细节描述较少。LIC动画[7]利用可变的动画速度来可视矢量大小,但计算动画帧序列、时间、内存开销都比较大。同时,Shen和Kao的UFLIC[8](Unsteady Flow LIC)算法从质点平流的角度重新诠释了LIC思想,并成功应用于不稳定流场的可视化。
在纹理平流方法中,以IBFV[3]方法为主要代表。IBFV基于纹理平流,最终流场动画的每一帧都是由之前图像和一系列经过滤波的噪声背景图像的卷积得到的。基于IBFV算法的扩展性研究很多,文献[9]提出一种基于质点平流的增强型IBFV可视化算法。Wijk将IBFV算法成功应用于曲面流场的可视化——IBFVS[10],该算法以三角网格为基本图元,首先将三维曲面投影到二维平面,然后进行纹理平流与混合,最终实现曲面流场的运动。Telea与Wijk提出了基于硬件加速的三维3D IBFV[11]算法,将IBFV算法拓展到三维空间。文献[12]应用IBFV算法对空间晶体生长实验中产生的流场数据进行可视化,实现了流场数据的实时动态显示。
本文以IBFVS方法为框架,用GPU加速的LIC图像替换IBFVS方法使用的随机噪声图像,提出基于线性卷积及纹理平流相结合的纹理可视化方法。算法结合LIC纹理结果对比度高,线条连续流畅及IBFVS方法生成速度快,具有流动特性的优势,并对线性卷积部分进行GPU并行加速处理,提高了整体显示速度和图像显示质量,取得了很好的实验结果。
2.1 概述
IBFV基于纹理平流,最终流场动画的每一帧都是由之前图像和一系列经过滤波的噪声背景图像的卷积得到。操作时以图像平流替代以往的质点平流,是一种用宏观图形表现微观粒子运动的新方法。该方法独立于流场数据,不需要事先分析流场的结构特点,具有普遍的适用性。
相对于LIC方法,不需要参数化,不会存在参数化难题,也不会在用户改变视角或者放大局部时进行重新参数化,具有较高的响应时间。
IBFV可以较好地利用硬件,且因为是基于图像的纹理方法,获得较高的绘制速度,这在对于大量数据的实时显示方面有很大的优势,而且对于全局有较好的显示和把握。
但是,该算法参数物理意义不明显,生成的图像对比度不高,没有较强的局部表现力。
2.2 IBFV算法原理
IBFV方法基于纹理平流,最终流场动画的每一帧都是由之前图像和一系列经过滤波的噪声背景图像卷积得到,操作时以图像平流替代以往的质点平流,是一种用宏观图形表现微观粒子运动的新方法。该方法独立于流场数据,不需要事先分析流场的结构特点,具有普遍的适用性;且IBFV方法还具有对硬件要求不高,绘制速度快等优点。
定义矢量场,如下:
添加随机噪声:在每一帧的平流结果中加入不同地随机噪声,使得平流图像产生动态效果。
其中,α为背景图案和上一帧图像的混合比例,α越大背景图案混合的比例越大;
去掉递归,可以得到结果:
对于变化步数k,随着步数k变大,初始图像的影响得到减弱,得到最终结果:
结论:IBFV最终图像结果的每个像素值,是通过这个点的流线在一系列不同的随机噪声对应位置的数值进行的卷积,其中卷积核为a*(1-a)i。选择不同的随机噪声,是为了使得不同点的计算有更大差别,最后能动起来。但这也存在不足,不同背景噪声导致结果纹理连续性差。
2.3 IBFVS算法优化原理
IBFVS是IBFV在曲面上的推广应用,需要速度投影,并加入阴影图案来体现曲面效果。
公式(6)是IBFVS方法的每个像素的计算公式,对一些指数级递减的噪声值进行积分;通过控制α的大小,可以控制前后两帧图像的混合比例。
观察公式(7),可以得出结论,平流的最终结果为:为了让画面动起来,每个像素点的值等于对一系列对应随机噪声点的值进行积分,但是图像对比度低,每一条纹理也不够连续。
本文利用LIC方法,产生具有明显LIC方向信息的矢量场速度及具有随机噪声的方向信息,将背景噪声代替原来的随机噪声G(pk;k),使得最终平流方法结果较为细腻,且对比性较强,单个纹理条纹连续性较好。
2.4 算法过程
2.4.1 数据预处理
对矢量场数据进行预处理的过程,如图1所示。首先,将原始的曲面场数据进行投影;然后,利用GPU插值,可以同时利用GPU优越插值功能及GPU加速功能,加快响应速度;最后,得到规则网格数据场。
图1 曲面矢量场数据处理示意图
数据预处理还包括求表面点的法向量,以便在后面可以进行正确的光照计算。在对曲面结点进行绘制的过程中,把速度值作为颜色值,使得绘制出来的平面图像每个结点的颜色值就是这个点的速度值,将它作为速度场传入GPU中。
2.4.2 LIC纹理的GPU加速生成
得到规则矢量数据场后,利用LIC算法生成纹理;再次利用GPU进行加速处理,以加快LIC算法的生成速度。本文算法能达到实时交互和时变矢量场可视化的要求。
如图2所示,将矢量场和随机噪声同时传入GPU;在GPU中,利用速度场对噪声场进行卷积积分,得到LIC纹理图案以及LIC结果;绘制出每一帧LIC流程图后,将其保存到FBO绑定的纹理中,并进行相应的FBO绑定切换。
图2 LIC纹理生成流程图
GPU加速部分是利用OPENGL着色器实现,主要在片元着色器中完成。在数据处理时,将速度场作为颜色值进行绘制,得到规则的数据场,然后将其以纹理方式传入着色器;在片元着色器中进行处理时,利用粒子平流方法,取一点纹理颜色值得到相应点的速度值,然后计算下一点位置,再取颜色值计算,以此类似计算可以得到粒子轨迹,取粒子经过点的噪声值进行计算,就可以得到相应点的最终纹理值。这个过程中,以不同的方法计算粒子下一点位置和以不同卷积函数计算最终相应轨迹点的随机噪声,可以得到各种不同的方法。
2.4.3 LIC纹理滤波
为了进一步提高LIC纹理图案的对比度,可以对LIC结果进行滤波,得到具有更高对比度的纹理图案。
如图3所示,对生成的每一帧LIC纹理图像的每个像素点进行滤波,增强像素点间值的差异性,得到对比度更强的图案。其中图3(a)为LIC结果;图3(b)为对LIC进行滤波后的结果;图3(c)为LIC未滤波全局图;图3(d)为对LIC进行滤波后的结果。前四张截图都是在后面地球上的结果截图,所有截图LIC步长都是20步。
图3 (a)LIC结果图
3(b)对LIC滤波后的效果图
图3 (c)LIC整体结果图
图3 (d)滤波后的LIC整体结果图
2.4.4 纹理平流
最后,利用纹理平流,产生纹理图案。具体方法:在平流的每一帧中,用LIC纹理结果代替平流方法产生的背景随机噪声,在已经具有一定矢量场方向随机噪声的基础上进行平流,结果图案将会更具方向性和更高纹理对比度,效果图如图4。其中,图4(a)和4(b)分别为最后平流效果的局部图和在球面上的效果图。
图4 (a)平流局部效果图
图4 (b)平流整体效果图
2.4.5 速度场的颜色映射
目前纹理方法中,只能较好地表现矢量场方向,而不能体现矢量场大小。对此,可以将矢量场大小与颜色进行映射,生成速度图像,然后将其混合到纹理图案中。其结果,图案纹理既体现了矢量场方向信息,又用颜色图案代表了矢量场大小信息,使所表达的信息更加丰富。
具体原理:将速度场按速度大小进行颜色映射,然后与纹理结果混合,使得结果图像既包含清晰的矢量场方向信息,又包含矢量场大小信息;具体方法为:将结点速度值归一化后分别对应为RGB值,作为颜色值绘制一遍模型(其中速度XYZ值分别对应RGB值),产生速度图案,如图5。其中,图5(a)为飞行器表面流场的速度映射;图5(b)为地球表面流场的速度映射图像。
图5 (a)飞行器表面流场颜色映射
图5 (b)地球表面流场颜色映射
2.4.6 噪声场优化
IBFV的随机噪声一般为256(至少为32)副;随机噪声窗口过大(一般为800×800),会加大随机噪声所占内存空间;利用GPU加速,内存空间需求会更大。对此,进行了多次实验。实验结果表明,传输每幅64×64大小的随机噪声,既降低系统负担,又不影响最终结果,如图6所示。
图6 (a)没有噪声优化的结果
图6 (b)优化后的结果
主要原理:利用着色器进行GPU加速时,计算随机噪声纹理坐标,并对其映射,对噪声数据重复优化利用,达到既定目的。
图6中,图6(a)为没有进行噪声优化的结果(噪声为128×128);图6(b)为在GPU中对噪声进行优化后的结果(噪声为64×64)。
2.4.7 算法流程图
以上为本文提出算法的主要改进步骤,算法流程如图7所示。
图7 算法流程图
实验环境为普通的PC机,Windows 7操作系统,Intel Pentium®4 CPU 3.00 GHz,2 GB内存,显卡为NVIDIA GeForce 8600T;算法基于Visual Studio 2010环境,利用OpenGL实现,显示窗口分辨率为800×800。图像平流周期为64,算法混合因子为0.1。选用地球数据场为16 290个点,32 040个面片,所有的截图都为在800×800的窗口上画好图后,所截部分而得。
图8为实验结果效果图,其中图8(a)为IBFV效果图;图8(b)为优化算法产生的效果图像;图8(c)为算法优化后的最后球面整体效果图像(LIC步长为5),地球表面贴有地球图像纹理;图8(d)为没有加地球图像的纹理;图8(e)为飞行器上的局部纹理图案,其中表面速度映射方法为将流场XYZ方向速度归一化后与颜色RGB值对应进行映射;图8(f)为优化算法产生的的整体纹理图案。
图8 (a)IBFV效果
图8 (b)算法优化后效果图
图8 (c)地球表面效果图(含地图纹理)
图8 (d)地球表面效果图
图8 (e)飞行器局部效果图
图8 (f)飞行器整体效果图
表1为相关绘制数据。从实验数据可以观察到:通过GPU加速技术,LIC绘制速度较快,LIC步长对最后速度影响不大;算法的平流绘制帧率较高,可以得到流畅的绘制速度;进一步进行算法优化,本文算法可以满足时变流场的绘制速度要求。
表1 实验数据
研究发现IBFVS纹理的连续性不好,对比度不高的原因是积分项的每一项背景噪声不相同。
利用矢量场速度和随机噪声产生LIC的方向信息明显的纹理结果,然后将它作为背景噪声代替原来的随机噪声,这样就能让平流方法产生的结果对比性强,而且单个纹理流线上的连续性较好,图像细腻,也能达到较快的交互能力。下一步研究方向:将矢量场大小更好地体现到纹理结果图像中,同时,进一步提高算法的绘制速度,满足时变流场可视化和可视化交互能力的需求。
[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]孙长会,范茵,李骞,等.增强型IBFV 2维矢量场可视化算法[J].中国图象图形学报,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
面向飞行器表面流场数据可视化的应用需求,提出一种基于线性卷积(LIC)及纹理平流(IBFVS)相结合的动态纹理可视化方法。算法通过将IBFVS方法的背景随机噪声替换为LIC纹理方式,结合了LIC纹理结果对比度高及IBFVS方法生成速度快的优势;针对LIC绘制速度慢的不足,利用GPU对曲面矢量场投影并插值,生成规则矢量数据场;用GPU对LIC部分进行并行加速,有效提高了LIC纹理图像产生速度;将LIC结果图像加入到IBFVS进行平流,生成纹理图像,最后加入颜色映射,丰富流场信息。实验结果表明,该方法生成的飞行器表面动态纹理图像对比度高,清晰度强,实时绘制性能好。
矢量场;纹理可视化;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.
国家重点基础研究发展计划(973)(No.2009CB723803)。
陈世龙(1988—),男,硕士研究生,研究方向为飞行器表面流场的纹理可视化;李思昆(1941—),男,教授,博导,主要研究方向:虚拟现实与可视化,嵌入式系统与SoC设计方法学等。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