APP下载

体绘制技术在海底地形三维可视化中的应用

2013-06-26范瑞杰李宏伟

地理空间信息 2013年1期
关键词:体素插值绘制

范瑞杰,李宏伟,张 斌,夏 青

(1.信息工程大学 测绘学院,河南 郑州450052)

目前,海底地形三维可视化的方法是利用面绘制技术(surface rendering)构建海底地形数字高程模型,即海底DEM。该技术的基本思想是通过提取对象体的表面信息,把物体的实体数据转换为中间几何图元(如曲面、平面等),通过综合运用光照模型和明暗模型进行渲染和消隐处理,得到物体的三维表面模型。该技术只是对对象体表面信息的模拟,无法表达对象体的构造信息和属性信息。然而海底地形十分复杂,其内部信息对于舰船的航行、海底资源的勘探、海底地质构造的研究等诸多领域有着重要的意义,面绘制技术显然无法满足这些方面的要求。因此,将体绘制技术应用于海底地形的真实三维场景搭建,构建海底地形数字高程体模型(digital elevation volume rendering),对于实现海底地形的真三维可视化十分重要。本文分析了体绘制技术的特点,对海底地形中的体绘制过程进行了说明,并针对体绘制方法应用于海底地形三维可视化提出了一些观点。

1 海底地形体数据模型的构建

基于离散体元的体绘制技术(volume rendering),即体绘制技术,是一种真实的三维绘制技术。该技术以体素为基本单元,直接由切片数据集生成三维图像,也称直接体绘制。它能够表示对象体内部的信息及属性,绘制结果可以使人们感受到完整的体数据信息,给人以更直观、更方便的视觉表达效果[1,2]。因此,运用体绘制技术对海底地形进行三维可视化,能够真实地展示海底地形的地质构造及内部属性信息。

目前,常用的海底地形数据都是一些离散的等深点数据,通常只包含海底地形的坐标和高程数据,而不包含海底地形的属性信息。体绘制方法最重要的就是包含属性信息的体数据。体数据可以看作是在有限空间内对一种或者多种属性(如物理属性)的一组离散采样,可以将其表示成f n(x),其中x是n维空间的采样点集合,n是体数据所要表达的信息维度。

海底地形体数据模型如图1所示,图中的每一个小长方体称之为体素(voxel),体素是构成体数据空间最基本的单位。体素模型可以看成是二维数据在三维上的扩展,是三维空间均匀网格组成的结构化体数据。

图1 体素模型

体素通常有2种定义:一种是将体素定义为中心点在采样点上的小长方体,该长方体内的数值都是相同的,都等于该采样点的采样值,即该采样点为小长方体的属性汇聚点(见图2a);另一种是将以8个相邻的网格点为顶点的小长方体定义为1个体素,该小长方体内的数据值是变化的,体素内任一点的数据值可以通过对这8个顶点的采样值进行内插确定(见图2b)。

图2 体素的定义

通常,海底地形某一采样点的数据可以表示为P(x,y,z),即该点的空间坐标。在定义该采样点的体数据时,可以将其表示为P(x,y,z,m),其中的m取决于所要表现的要素或者环境场的信息,可以是标量,如海底的地质分布状况;也可以是矢量,如海底的地磁分布等。这里的m并不只是表示某一种特定属性,而是指除了采样点的位置信息外的其他所有要研究的相关信息的集合。

2 海底地形体绘制方法

2.1 海底地形体绘制方法的应用分析

直接体绘制技术中比较典型的方法有:基于空间域的体绘制技术,如光线投射法、溅射法、错切-变形法等;基于变换域的体绘制算法,如频域体绘制法、基于小波的体绘制法等。

光线投射法(ray casting)[3]通过为每个体素配置不同的透明度和光强来合成三维模型,有利于保留海底地形的细节,从而生成高品质的海底地形三维模型。因此,该方法特别适用于绘制区域地形特征模糊、构造复杂、地形特征相关性高的三维模型,如海底地质断裂带附近的特殊地形。但该方法需对每一个体素进行操作,极大地限制了绘制速度。溅射法也称足迹法(splatting),是用一个称为足迹的函数计算每一体素投影的影响范围,用高斯函数定义强度分布,从而计算出其对图像的总体贡献,并加以合成,形成最后的图像。其绘制速度较快。在溅射过程中,背景物体的色彩可能会扩散,绘制效果没有光线投射法好。因此,该方法适用于对背景绘制要求不高的情况。错切-变形法(shear-warp)是将三维离散数据场的投影变换分解为三维数据场错切变换和二维图像的变形2步来实现,从而将三维空间的重采样过程转换成二维平面的重采样过程,大大减少了计算量。

频域体绘制法(frequency domain volume rendering)[4-6]是利用快速傅立叶变换(FFT),将空间域的体数据f(x)变换到频域得到离散频谱f(s),然后沿着经过原点并与视线正交的抽取平面对离散频谱f(s)进行插值,重新采样后得到一个二维频谱,对其作二维傅立叶反变换即可得到该视线方向上的空间域投影图。该方法绘制速度较快,但是不能保留光吸收特性,无法实现半透明效果,不适合绘制海水等具有光吸收特性的要素。小波域射线投射(ray tracing in wavelet space)是光线投射法在小波域的实现。该方法实时绘制速度极快,可以达到网络交互级的绘制速率,适用于在网络交互模式下进行体绘制[7]。其缺点是绘制的图像质量呈现一种指数型的自阻塞特性,即随着绘制质量的提高,导致绘制效率的下降,反过来又进一步影响绘制的质量。小波足迹法(wavelet-base splatting)是先利用傅立叶变换得到每个小波和尺度函数的足迹,再通过小波系数加权得到投影图像。该方法能够渐进显示绘制的图像,适合于大规模场景数据的分级绘制。

基于三维纹理映射的体绘制方法是当前的一个研究热点。该方法首先将需要绘制的数据场转化为三维纹理,然后用垂直于视线的一系列切面,按照从后到前或是从前到后的顺序,切割整个数据场,并将由此产生的相交多边形中的采样结果合成至图像缓冲区内,进而得到最终的可视化三维模型。该方法对硬件要求高,其获取数据的难度也较大,因此不适合绘制大型数据场。不同体绘制算法对比如表1所示。

表1 不同体绘制算法的比较表

2.2 海底地形体绘制方法的流程

虽然不同的体绘制方法的侧重点不同,适用情况也不同,但针对海底地形的体绘制流程通常包括以下阶段:获取海底地形体数据、体数据预处理、体数据重采样、分类、明暗计算、融合和图像显示,见图3。

在海底地形三维数据场可视化过程中,通过在体绘制算法中计算相关要素的明暗,设计和优化光照模型,控制光照的强弱,可以明显提高海底地形体数据可视化效果在视觉上的冲击力和感受力。因此,在研究海底地形真实环境的体绘制方面,光照明暗的控制是十分重要的。但在某些方面,如单独显示海底地形的某一局部、某一种环境场要素时(通常需要高亮显示),该步骤可以通过将明暗程度设置为一个固定值,从而简化对光照明暗的控制。重采样过程通常在分类和明暗计算之前,但在某些特殊情况下,如体数据特征较少、明暗计算较为简单、采样率较高时,也可以将分类和明暗计算放在重采样过程之前,即在预处理阶段完成,以加快绘制速度,称为提前分类(preclassification)。由于分类和明暗计算并非线性变换,因此操作顺序的更改对最终绘制结果会有影响,但只要原始体数据的采样率足够高,绘制结果不会有严重的走样。

图3 体绘制流程图

3 海底地形底质的体绘制

在地形的体视化方面,对于地质构造层次体绘制的研究相对成熟。本文以海底地形地质构造的体绘制为例,进一步说明海底地形构造及其他环境场的体绘制技术的实现方法和步骤。

3.1 数据预处理

选定一定区域海底地形的实验数据。根据前面章节对体素的定义,将m定义为海底不同地质层的地质类型;m通过对海底进行钻孔探测确定,同时辅以一定的海底浅层声纳探测数据。

首先确定采样点数据在3个方向的最小值和最大值[Xmin,Xmax]、[Ymin,Ymax]、[Zmin,Zmax],即该区域的覆盖范围,之后分别沿X、Y、Z方向等间距划分维数。由于本实例主要是研究海底地质体的分布情况,而地质体通常是从上到下分层分布的,因此对于Z方向的数据要划分得更加细密,但是也要适度,否则会占用很大的内存,影响交互速度。

在确定海底地形钻孔探测数据范围并对其维数划分之后,需要对数据进行插值处理。本实例采用Kriging插值方法。Kriging方法是对空间数据进行加权插值的权值计算方法,它采用以距离为自变量的变差函数来确定权值。由于变差函数既可以反映变量的空间结构特性,又可以反映变量的随机分布特性,因此使用Kriging方法对海底地形体数据进行空间数据插值能够取得比较理想的效果。同时,通过确定变差函数,很容易实现局部加权插值,克服了一般距离加权插值方法插值结果的不稳定性,特别适用于局部小区域的空间数据插值[8]。需要注意的是,该插值方法与变差函数模型的选择有很大的关系[9]。通过插值可以产生各个地质层曲面,从而确定各个地质层曲面之间体数据中m的值。

3.2 体数据的生成

生成地质曲面之后,假设每一地层顶部曲面的属性代表该地层的属性,通过各个数据点,作沿Z轴方向的垂线,确定该垂线与各地质层曲面的交点(如图4所示),从而确定各数据点所属的地质层区域。用该方法获得的体数据能够真实地反映了原始地层分布状态,较好地解决了层与层之间的交叉判断、透镜体(有的地层只出现在某一局部)等问题。在海底地形构造的体绘制方面,该方法同样也可以真实地反映海底地形中大量出现的孔洞现象。

图4 确定数据点所属地质层

3.3 体绘制可视化

本实例采用直接体绘制中的光线投射算法对体数据进行体绘制,具体步骤如图5所示。本实例需要依据各地层的属性值(m)对数据进行提前分类,将具有相同属性的数据点看作相同类型的数据。在提前分类完成后,对不同类型的各种数据点赋予不同的颜色值。由于层状地质体的属性变化集中在Z方向,因此体数据类型的变化也是沿着Z方向的。Z方向上的透明度变化对最终显示的视觉效果没有实际意义,同时明暗计算对本实例的实现效果影响也不大,因此可以将所有类型数据的透明度和光照强度设为一个显示效果较好的常数,以便减少计算量。在重采样阶段,主要是实现光线投射算法,即屏幕上的每一个像素点根据设定的观察方向投射出1条射线,在这条射线穿过三维数据场之后,沿着这条射线选择N个等距离的采样点(见图5),并由距离某一采样点最近的8个数据点的颜色值作三线性插值,求出该采样点的颜色值,最终在融合阶段,将每条射线上的各采样点的颜色值按照由前向后或由后向前的顺序进行融合,从而得到发出该射线的像素点处的颜色值。

本实例的最终效果见图6,图中不同的颜色代表不同的地质层,如积沙层、淤泥层、硬泥层、岩石层等。体绘制技术可以推广应用到海底环境其他要素的三维可视化方面,如对海底存在的大量洞穴及暗礁的体绘制可视化,图6显示在该区域地下存在一个空洞;也可以实现海洋其他环境场的体绘制可视化,如不同深度海水的温度、盐度、磁力场等。

图5 光线投射法

图6 最终效果

4 结 语

本文对体绘制技术在海底地形三维可视化中的一些关键问题进行了分析,并对常见的几种体绘制技术进行了比较,进而得到不同体绘制技术的适用情形。在海底地质构造体绘制的实例中,采用光线投射法,进一步说明了海底地形体绘制技术的具体流程。此过程中的主要困难是获取实验数据,同时对于海底地形体数据的拓扑存储结构、多源数据融合以及基于体绘制技术构建的三维场景拓扑关系描述、LOD、数据综合等多个方面的问题仍需要进一步的研究。

[1]石教英, 蔡文立.科学计算可视化算法与理论[M].北京:科学出版社,1996

[2]唐泽圣.三维数据场可视化[M].北京:清华大学出版社,1999

[3]Sobierajski L,Kaufman A.Volumetricray Tracing[M]. Proc.of the ACM Volume Visualization Symp. New York:ACM Press,1994:11-18

[4]Dunne S, Napel S, Rutt B K. Interactive Display of Volumetric Data by Fast Fourier Projection[J]. Computerized Medical Imaging and Graphics, 1992,16(4): 237-251

[5]Tom M. Fourier Volume Rendering[J].ACM Transactions on Graphics, 1993,12(3): 233-250

[6]Grosso R, Ertl T. Biorthogonal Wavelet Filters for Frequency Domain Volume Rendering//Visualization in Scientific Computing’95[C]. Springer Computer Science, 1995

[7]张加万.交互式体绘制关键技术及其应用研究[D].天津:天津大学,2004

[8]王靖波. 基于Kriging方法的空间散乱点插值[J].计算机辅助设计与图形学学报,1999,11(6):525-529

[9]杜宇健,萧德云. Kriging算法在温度场计算中的应用分析[J].计算机辅助设计与图形学学报, 2004,16(8):1 153-1 158

[10]李志林,朱庆. 数字高程模型[M].武汉:武汉大学出版社,2004

猜你喜欢

体素插值绘制
基于多级细分的彩色模型表面体素化算法
瘦体素决定肥瘦
运用边界状态约束的表面体素加密细分算法
超萌小鹿课程表
基于体素格尺度不变特征变换的快速点云配准方法
基于Sinc插值与相关谱的纵横波速度比扫描方法
放学后
一种改进FFT多谱线插值谐波分析方法
基于四项最低旁瓣Nuttall窗的插值FFT谐波分析
在转变中绘制新蓝图