基于GPU的风暴数据场多维纹理混合绘制
2014-07-08郑坤王锫李芬蕾
郑坤,王锫,李芬蕾
中国地质大学(武汉)信息工程学院,武汉 430074
基于GPU的风暴数据场多维纹理混合绘制
郑坤,王锫,李芬蕾
中国地质大学(武汉)信息工程学院,武汉 430074
在气象领域,三维风暴数据场可视化是风暴监测及灾害预测的重要技术手段之一。可视化效率及质量直接影响到风暴体分析研究的准确性和时效性。针对传统的二维、三维纹理映射体绘制方法进行了研究,提出了一种基于GPU的风暴数据场多维纹理混合绘制技术。该方法采用了三维纹理存储风暴数据场并结合代理几何体动态生成方法,克服了传统方法中纹理数据冗余的问题,并保证了模型的三维交互流畅性。该方法中提出的纹理映射光滑重采样策略,显著提高了风暴体模型显示效果,并在一定程度上避免了CPU-GPU通信瓶颈。
体视化;图形处理器;混合绘制;风暴体
众所周知,灾害性天气会对人民生命财产构成严重威胁。2012年第11号热带风暴“海葵”登陆我国浙江,仅浙江一省就有500万人受灾,造成直接经济损失145亿元。可见对风暴的监测及灾害预报关乎国计民生。风暴预测预报的准确性依赖于对大量数据的计算和对计算结果的分析。三维数据场可视化技术可以将大量的数据转化为三维图像,在屏幕上直观地展现风暴的方位、运动过程、规模、强度等,从而对风暴的变化趋势进行监测及预测预报。
体视化技术是当前对属性数据模型三维展示的经典技术,在气象领域,体视化技术已经得到较为广泛的应用[1-3]。国外在该领域已有诸如Vis5D、Display 3D、AVS/EXPRESS、Grads、NCAR Graphics等成熟的软件[4]。目前随着气象探测手段的发展使得风暴的场数据量不断扩大,同时用户对图像精度要求也不断提高,传统的基于CPU实现的体绘制方法已经难以在普通的PC机上进行实时渲染和灵活交互。近年来随着图形硬件技术的发展,新一代的图形处理器具备了可编程能力,利用HLSL(High Level Shading Language,高级着色语言)可定制图形处理器中几何着色器与光栅化着色器的功能。利用基于GPU的纹理映射体绘制技术对风暴体进行渲染已成为气象三维可视化领域研究的主流。
1 基于GPU的纹理映射体绘制
基于GPU的纹理映射体绘制是一种以物体空间为序的绘制方法。其利用一系列多边形切片对体模型包围盒进行切割,产生一系列几何体,在GPU中计算几何体各顶点与纹理空间坐标的映射关系,并在光栅化阶段为每个片段计算纹理坐标,实现对体模型的重采样,最终利用图形硬件的A lpha融合技术由前向后生成最终结果图像。
几何体(Geometry)是GPU可视化的基本单元,最终绘制的图像是硬件对几何体进行光栅化及相应处理的结果。由于原始体模型中实际上并不包含任何几何体,这些几何体只是为了绘制的需要而生成的,因此称之为代理几何体[5]。基于GPU的纹理映射体绘制算法主要包括纹理的生成和纹理的绘制两个阶段[6],算法的流程图如图1所示。
图1 基于GPU的纹理映射体绘制算法流程图
根据代理几何体的选取方式及纹理类型的不同,可以将纹理映射体绘制方法分为二维纹理映射体绘制和三维纹理映射体绘制两种。
1.1 二维纹理映射体绘制
二维纹理映射体绘制算法是对体模型按照某个坐标轴向进行等间距采样,得到一系列代理几何体,然后对这些代理几何体进行纹理映射和A lpha融合操作绘制结果图像。该算法又被称为沿轴向对齐的代理几何体绘制,如图2所示。很显然,代理几何体数目越多所得结果图像越精细,相应地会降低图像绘制效率;反之则是以牺牲图像质量为代价以提高绘制效率。
图2 二维纹理映射代理几何体
该方法原理简单且易于实现,但其需要分别存储三个轴向的二维纹理堆栈,才能避免存在代理几何体投影呈直线的现象,导致纹理数据存在冗余[7]。当视点改变时,各纹理堆栈的不断切换以及代理几何体的采样间距的不断变化会导致产生较多的伪影从而严重影响图像绘制的质量。为此人们提出一系列改进方法。LaM ar等人[8]提出用同心球组成球面集代替平面代理集合体,从而使所有像素采样距离均为常数。但球面集的设置及计算的高复杂度影响绘制效率。朱国仲等人[9]提出镜面反射加速绘制方法,将具有镜面反射表达式的模型经过预先离散采样计算后作为纹理对象传给图形硬件,利用组合函数实现物体镜面反射现象的绘制,但其是在CPU上实现纹理单元及坐标的计算,使该方法远未达到实时的绘制效率。
1.2 三维纹理映射体绘制
三维纹理映射体绘制算法是将体模型以三维纹理的形式存放,根据当前视点的位置动态地进行等间距采样生成代理几何体。每当视点方向改变时,重新生成相应的纹理切片[10]。因此,该算法又被称为沿视线对齐的代理几何体绘制,如图3所示。
图3 三维纹理映射代理几何体
基于三维纹理映射的体绘制算法只需在GPU中单独存储一个三维纹理,避免了纹理冗余,且等间距采样机制保证了图像质量[11]。K rueger等[12]利用GPU对三维纹理进行压缩解压,通过定制转换函数实现了对不规则采样数据的准确采样,实现了对海量空间数据的三维光线投射绘制。但不论如何优化三维纹理映射体绘制方法,其代理几何体的生成、纹理映射过程都是根据视点位置实时计算的,因此该算法对计算效率要求高,在针对气象风暴体等大规模的数据量时通常无法保证绘制效率,影响交互的流畅程度。
2 风暴场多维纹理混合绘制
利用现有的硬件环境,根据风暴场研究的具体需求,在图像绘制质量与绘制速度之间寻求最佳平衡点,已成为三维风暴数据场模拟一个研究重点,并由此形成了许多不同的体绘制算法及相应的加速算法。Ding等[13]提出了一种针对龙卷风的仿真方法。其通过求解Navier-Stokes方程模拟风暴运动过程并引入粒子系统模拟风暴中的尘埃。Liu等[14]利用双流体模型(TFM)模拟龙卷风及其周围物体的运动,并利用GPU加速方法实现交互式渲染。通过纹理映射体绘制技术以上两种方法都得到十分逼真的仿真效果,但都无法达到对风暴体的实时渲染。Liu等人在2007年对文献[14]中算法进行改进[15],提出利用雷诺平均双流体模型(RATFM)模拟风暴体及周围物体的运动,并基于GPU加速算法实现了风暴体实时模拟。但该方法的侧重点在风暴模拟的逼真程度,无法为气象工作者提供准确的数据支持及有效的三维分析方法。
本文针对大规模风暴数据场的数据特点,并结合二、三维纹理映射体绘制算法各自的特点,提出了一种基于二维纹理代理几何体获取思想并采用三维纹理映射的混合绘制方法。该方法在保证数据准确性的前提下实现了风暴体的实时绘制,不仅克服了纹理冗余及生成三维纹理切片时的低效性,而且提出的径向数据光滑策略在一定程度上避免了CPU-GPU的通信瓶颈。该算法的流程图如图4所示。
图4 多维纹理混合绘制算法流程图
基于GPU的多维纹理混合绘制算法步骤如下:
(1)读取气象风暴体数据模型到系统内存,并利用传输函数将内存中的风暴体模型属性值转换为光强度、颜色及不透明度等三维纹理数据存储于GPU的纹理缓存中。
(2)利用沿轴向对齐的动态代理几何体生成方法定义一系列相互平行的代理几何体,将其三角面索引信息装入GPU的索引缓存中。
(3)根据索引信息将体数据中对应于几何体切片上点的位置、法向量、纹理坐标等顶点信息存储于GPU的顶点缓存中。
(4)运用径向数据光滑策略渲染代理几何体,保证绘制质量。
(5)混合映射后的代理几何体生成结果图像。
2.1 代理几何体动态生成
在代理几何体生成阶段,考虑到GPU拥有的强大的浮点运算能力,本文借鉴了二维纹理映射中沿轴向对齐生成代理几何体的思想,并结合三维纹理映射中的几何体生成的动态性,提出了沿轴向对齐的动态代理几何体生成方法。其根据视线方向,实时确定代理几何体的轴向。设当前视点坐标为(x,y,z),视线方向为Dir(x,y,z),轴向的确定存在以下三种情况:
(1)若max(|x|,|y|,|z|)=|x|,则Dir(x,y,z)=X,即选择沿X轴动态生成代理几何体。
(2)若max(|x|,|y|,|z|)=|y|,则Dir(x,y,z)=Y,即选择沿Y轴动态生成代理几何体。
(3)若max(|x|,|y|,|z|)=|z|,则Dir(x,y,z)=Z,即选择沿Z轴动态生成代理几何体。
除确定轴向外,代理几何体的数目也需要根据当前需要绘制的顶点数、显卡的绘制效率等条件决定。不同的风暴体模型需要相应适宜的代理几何体数目,以在保证模型绘制的质量的情况下最大程度上提高模型绘制效率。
2.2 径向数据光滑重采样
图形流水线是GPU工作的通用模型,当GPU在片段着色器中进行纹理映射时,常用的重采样经典方法有临近点采样、双线性采样、两次立方采样等,这些方法在对风暴数据场进行体绘制时效果都不好。如图5所示,原始的气象雷达探测数据是以雷达中心为圆点的一系列同心圆上的探测点组成。由于风暴数据场数据规模通常较大,考虑到CPU处理效率的瓶颈,传统的风暴数据纹理映射方法常采用临近点采样,使得纹理图像通常具有马赛克效果,如图6所示,严重影响最终的风暴体视化效果。
图5 雷达原始探测数据
图6 临近点采样生成的图像
本文通过对风暴场数据特点的分析:风暴场反射率原始信号应光滑且连续,雷达探测的采样信号离散且呈径向分布等特点,提出一种适用于风暴反射率数据场的光滑重采样策略。利用着色语言对GPU可编程流水线中的片段着色器的功能进行重新定义,使着色器的新功能可确保风暴数据场纹理映射重采样后的光滑性。下面以代理几何体切片中的任意一个像素点为例对该方法进行说明。
如图7所示,Px为待求值的像素点,设Px点处与圆心距离为R。P11、P12、P21和P22为Px周围四个临近风暴数据采样点,Q1、Q2为计算过程中的辅助点。则Q1、Q2的属性值可由式(1)和式(2)得出(f代表该点的属性值,下同):
从而待求点Px的属性值可由式(3)计算:
根据式(1)(2)(3)计算每个点的属性值并通过查找色表确定颜色,生成最终结果图像。
图7 纹理映射光滑算法示意图
利用该光滑策略得到的纹理映射后的某一代理几何体纹理图片如图8所示(图4中的紫色区域是风暴数据中的特殊值,在此以白色区域代替)。可以看出该方法光滑效果非常好,几乎没有马赛克效果。虽然该方法比临近点采样方法复杂,但由于每个像素点的计算流程相同且数据之间没有相干性,可利用GPU强大的并行计算能力实现该算法,使得算法复杂度对计算性能的影响可忽略不计。该方法能保证体模型在放大时不会出现模糊失真现象,使风暴研究人员能近距离观察模型细节。同时由于该方法在数据稀疏的情况下仍能发挥光滑作用,从而对大数据量的原始数据经过抽稀预处理后依旧能达到良好的显示效果,这在一定程度上可用于避免由CPU-GPU总线通信速率引发的GPU运算性能瓶颈。
图8 光滑后的显示效果
3 应用实例
在主频2.70 GHz的Dual-Core E5400,NV IDIA Geforce GT 240显卡,2.0 GB内存的计算机上进行了实验。数据采用2009年8月6日登陆我国东南沿海的某风暴场,其每时相原始数据的规模为1 390×1 320× 20,共22个时相。经过数据建模生成每模型的规模为1 390×1 320×512。利用二维、三维纹理映射及多维纹理混合绘制技术分别对其可视化,交互效率如表1所示。利用多维纹理混合绘制技术的绘制效率始终保持在28 f/s以上,且CPU的能耗几乎无增长。图9为利用该方法对风暴体进行动态可视化的部分截图。实验表明采用该方法对风暴体模型进行体视化显示效果较好且交互流畅。
表1 不同纹理映射方法交互效率表(f·s-1)
图9 风暴体模型动态可视化效果图
进一步观察风暴体的一些细节形态,图10为某一时相的风暴体进行模型切割并从不同视角观察的形态。选取其中的风暴眼,构建规模为1 024×1 024×512的风暴眼数据场并进行可视化,图11为经过属性值过滤后呈现出的风暴体形态的展示效果。可以看出虽然选取的区域较小易导致原始数据不足,但基于光滑重采样策略的多维纹理混合映射方法仍能达到较好的显示效果。
图10 风暴体模型可视化效果图
图11 属性值过滤后的体视化效果
4 结论
本文提出了一种基于GPU的多维纹理混合绘制算法,该算法结合了二维、三维纹理体绘制的思想,提出利用代理几何体动态生成方法结合三维纹理的方式避免了纹理数据冗余,提高了三维交互性能。在此方法中提出一种适用于风暴数据场的纹理映射光滑重采样策略,使风暴体的显示效果得到显著提高,保证在对某一局部进行放大可视化时效果依旧良好,亦可保证进行抽稀预处理后数据的显示效果从而避免CPU-GPU通信瓶颈。
利用该方法进行体视化,在切换不同轴向代理几何体时显示效果还是有一定差异的,这是由于不同轴向代理几何体切片数目不同,如何对该显示差异进行模糊处理是后续研究工作的重点。
基于GPU的多维纹理混合绘制算法,为风暴数据场三维属性模型的体视化提供了一种高效高质量的绘制方法,为三维气象数据模拟的研究提供了新的思路。
[1]Joshi A,Caban J,Rheingans P,et al.Case study on visualizing hurricanes using illustration-inspired techniques efficient visibility[J].IEEE Transactions on Visualization and Computer Graphics,2009,15(5):709-718.
[2]Akibah H,Ma K L,Chen J H,et al.Visualizing multivariate volume data from turbulent combustion simulations[J]. Computing in Science&Engineering,2007,9(2):76-83.
[3]Dobashi Y,Yamamoto T.A controllable method for animation of earth-scale clouds[C]//Proc of CASA,2006:43-52.
[4]高希伟.时变气象体数据的可视化技术研究[D].杭州:浙江大学,2011.
[5]李冠华.基于GPU的三维医学图像处理算法研究[D].辽宁大连:大连理工大学,2008.
[6]Abellan P,Tost D.Multimodal volume rendering with 3D textures[J].Computers&Graphics,2008,32(4):412-419.
[7]Liu L,Stamos I.A systematic approach for 2D-image to 3D-range registration in urban environments[J].Computer Vision and Image Understanding,2012,116(1):25-37.
[8]LaM ar E,Hamann B,Joy K I.Multiresolution techniques for interactive texture-based volume visualization[C]//7th Meeting on Visual Data Exploration and Analysis,1999:355-361.
[9]朱国仲,张玉华.基于二维纹理映射的镜面反射加速绘制[J].计算机工程与设计,2011,32(7):2439-2442.
[10]丁剑飞,徐昆,胡国桥.基于GPU的自由立体显示器通用渲染算法[J].系统仿真学报,2012,24(7):1422-1427.
[11]胡慧君,费耀平,李敏.高质量的三维纹理硬件体绘制[J].计算机工程与应用,2010,46(17):188-190.
[12]K ruger J,Westermann R.Acceleration techniques for GPU-based volume rendering[C]//IEEE Visualization 2003 Conference,2003.
[13]Ding X Y.Physically based simulation of tornadoes[D]. Ontario:University of Waterloo,2004.
[14]Liu S,Wang Z,Gong Z,et al.Physically based modeling and animation of tornado[J].Journal of Zhejiang University,2006,7(7):1099-1106.
[15]Liu S,Wang Z,Gong Z,et al.Real time simulation of a tornado[J].The Visual Computer,2007,23(8):559-567.
ZHENG Kun,WANG Pei,LI Fenlei
Faculty of Information Engineering,China University of Geosciences,Wuhan 430074,China
In the field of meteorology, 3D storm data field visualization is one of the most important technical means of storm monitoring and disaster prediction. The visualization efficiency and quality directly affect the accuracy and timeliness of the analysis. Based on the study of the traditional 2D and 3D texture mapping methods, this paper proposes a multidimensional texture hybrid rendering method based on GPU for the storm data field. It uses 3D texture to storage storm data combined with dynamically generated of the geometry. It overcomes the problem of texture data redundancy and it ensures the fluency of 3D interactive. Texture mapping smooth resampling strategy is proposed to improve the 3D storm model display effects significantly and to avoid the CPU-GPU communication bottleneck.
volume visualization; Graphic Processing Unit(GPU); hybrid rendering; storm volume
ZHENG Kun,WANG Pei,LI Fen lei.M ultidim ensional texture hybrid rendering for storm data field based on GPU. Computer Engineering and Applications,2014,50(17):173-177.
A
TP391.9
10.3778/j.issn.1002-8331.1210-0114
教育部新世纪优秀人才支持计划项目(No.NCET-07-0772);武汉市学科带头人计划项目(No.201271130443)。
郑坤(1977—),男,博士,副教授,主要研究方向为三维数据建模及体视化;王锫(1987—),男,硕士研究生,主要研究方向为三维可视化。E-mail:myfrank0922@sina.com
2012-10-12
2012-12-17
1002-8331(2014)17-0173-05
CNKI网络优先出版:2013-01-11,http://www.cnki.net/kcm s/detail/11.2127.TP.20130111.0953.012.htm l