矿山复合场一体化构模及可视化仿真技术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第2章 关键技术

2.1 可视化技术

2.1.1 科学计算可视化

科学计算可视化是发达国家在20世纪80年代后期提出并发展起来的一个新的研究领域,通常是指运用计算机图形学和图像处理技术,将科学计算过程中产生的数据及计算结果转换为图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。它将图形生成技术、图像处理技术、人机交互技术和图像理解技术结合在一起,来产生复杂的多维数据图形[2,3]

目前,科学计算可视化研究的领域主要集中于计算环境的研究、虚拟环境显示设备的研究和科学计算可视化技术的研究等3个方面[4,5]

(1)计算环境的研究。在高端计算环境方面,分布存储的大规模并行计算机、共享存储对称多处理机和分布共享存储多处理机相继问世,同时,在工作站和PC机等低端方面,也出现了多处理器结构和并行处理功能,以提高科学计算质量和效率。

(2)虚拟环境显示设备的研究。开发适用于真三维显示的墙式大屏幕显示器,具有沉浸式特点的洞穴式显示设备,为巨量数据的生成和表现提供方法和手段。

(3)科学计算可视化技术的研究。主要包括各种应用模型的研究和可视化实现技术的研究两个方面。各种应用模型的研究是以模拟与设计应用模型为核心,以视觉洞察力方式进行各种问题的交互求解,把医学、地学、气象学、物理学和生物科学等不同学科的数据,处理为人类的视觉所能直观接受的图形信息;在可视化实现技术的研究方面,分布式、协同式和沉浸式科学计算可视化技术已成为当前主流的研究方向。

2.1.2 可视化绘制技术

可视化绘制技术,即图像处理技术,为空间数据的三维重构提供底层支持,按照绘制方法的不同,可分为两类:一类是基于面的绘制方法;另一类是基于体数据的绘制方法。

表面绘制技术是表示三维物体形状最基本的方法,它可以提供三维物体形状的全面信息,按其具体形式可分为边界轮廓线表示和表面曲面表示两种。

1975年,Keppel[6]最早提出表面重建方法,采用基于轮廓线的描述方式,即在断层图像中,通过手工或自动方式实现目标轮廓的确定性分割,然后用各层的轮廓线“堆砌”在一起,表示感兴趣物体的边界。这种轮廓线表示方法简单,数据量小。

1977年,Fuchs[7]的方法是基于多边形技术,主要用平面轮廓的三角形算法,根据在不同切片图像上抽取出的一组轮廓线,用三角片拟合过这组轮廓线的曲面。这种方法属于面向曲面的方法,它通过构造实体表面的结合形状来重构实体。

1983年,Xu[8]提出由CT断层图像序列进行物体的三维表面重构问题,他对物体的插值表面增加了一个附加约束,即插值表面在每一轮廓点上的曲率之和为最小值。

1985年,Boissonnat[9]提出了另一种基于表面轮廓的Delaunay三角形方法,解决了系列表面轮廓的三维连通性问题。用三角形或多边形的小平面(或曲面)在相邻的边界轮廓线间填充形成物体的表面,但是这种方法所得出的只是分片光滑的表面。

1987年,Lorensen[10]提出了“Marching Cube”算法,这是一种基于体素的表面重建方法,属于等值面技术。1989年Lin[11]采用从轮廓出发的B样条插值重建算法,得到了整体光滑的表面。这两种方法属于面向曲面的绘制方法。

1999年,赵海峰等[12]通过对八元树结构和系列断层图像的空间布局的分析,提出了一种通过断层系列图像直接建立八元树的快速算法。

基于表面的绘制方法主要优点是可以采用比较成熟的计算机图形学方法进行显示,计算量小,速度快,可借助专用硬件支持实现实时显示。

体绘制技术[3]是在吸收图像处理、计算机视觉和计算机图形学等学科基础上发展起来的,其基本原理是将数据映射为某种云状物质的属性,如颜色、不透明度等,然后通过光线与这些物质的相互作用描述所产生的图像。

(1)与传统计算机图形学的区别。从表现方式上来说,传统计算机图形学以面和边等基元来描述物体,不含有任何内部信息,而体绘制技术则是以三维基元(体素)来描述整个物体,它包含物体内外的全部信息[13];从表现内容上来说,其差异主要体现在表示对象的模型不同,体绘制主要是对有限个离散采样点进行表达,而传统计算机图形学则是对连续几何模型的描述,由此导致它们对物体模型的处理、操作、变换、分析和实现方法的截然不同。

(2)体数据的来源与组织。其来源主要包括测量(如医学的计算机断层扫描、磁共振成像)、计算(如计算流体力学、有限元分析)和几何实体的体素化等三类数据[14]。这些数据均可看作映射在三维空间网格上的体素集合,这个三维空间网格的结构决定着体素的基本形状和各体素之间的空间关系,从而决定着体数据的组织形式。网格的结构主要包括笛卡儿网格、规整网格、直线网格、曲线网格、块结构网格、非结构网格、散乱数据等几种[15]

(3)体绘制方法。主要包括以光线投射法为代表的像序体绘制法、以足迹法(Footprint或Splatting)为代表物序体绘制方法和以剪切-曲变法(Shear-Warp)为代表的适用于多观察角度情况混合体绘制方法三类[16]。光线投射法的基本原理是根据视觉成像原理,将每个体素都看成为能够透射、发射和反射光线的粒子,然后根据光照模型或明暗模型,依据体素的介质特性得到它们的颜色(灰度图像为亮度)和不透明度,并沿着视线观察方向积分,最后在像平面上形成具有半透明效果的图像[17-19],依投影顺序的不同,投影法分为从前至后算法与从后至前算法[20];足迹法首先由Westover提出,其原理是将体数据表示为一个由交叠的基本函数构成矩阵,基本函数通常选择由体素值表示的高斯函数核,然后根据一个预先计算的、存储着沿视线方向对函数核积分的足迹查询表,把这些基本函数投射到像平面以生成图像[21];剪切—曲变法被认为是目前速度最快的体绘制算法之一,其绘制过程为通过剪切出适当的编码体素使射线正交于所有的体素层,利用双线性插值在遍历的体素层内得到它们的采样值,再通过曲变函数将平行于基准平面的图像转换为屏幕图像[22]

(4)光照模型。包括光源与物质的光学性质两部分[23],其中光源模型包括光源类型(环境光、辐射光、漫射光、镜面光等)、强度、位置和颜色等;物质的光学性质包括由物质材质所决定的反射率、折射率、不透明度和漫射等属性。这两者相互结合、作用共同实现整个光照模型。

目前,国内有许多学者对于体绘制方法进行了深入的研究和对比,并在医学、图形学、地学和气象学等方面也做了大量的实际工作[24-33]

2.1.3 面向Web的可视化

随着传统互联网应用的普及和新一代互联网技术的到来,Web技术正在从仅能够提供文字与静态图片浏览,逐渐发展成为可以支持丰富的影音数据流、海量的数据挖掘、远程实时交互的监测预警及控制等功能。目前,面向Web浏览器的三维可视化技术有多种,主要包括VRML(Virtual Reality Modeling Language)技术、X3D(eXtensible 3D)技术和基于Java语言的Java3D及JOGL技术。

(1)VRML技术。该技术采用文本信息进行三维场景的描述,并由VRML的浏览器按照VRML规范解释、生成三维场景。其实现过程为[34-36]:由网络服务器发布VRML文件(包含了VR世界的逻辑结构信息),客户端通过网络下载所需的文件,通过本地平台的浏览器对该文件描述的VR世界进行访问,从而实现VR功能。其特点包括以下3个方面。

1)基于ASCII码的低带宽可行性。VRML像HTML一样,用ASCII文本格式来描述世界,降低了数据量,从而在低带宽的网络上也可以实现。

2)良好的交互性。采用实时3D着色引擎,把VR的建模与实时访问更明确地隔离开来,并在交互过程中提供7个自由度。

3)可扩充性。即可以根据需要定义自己的对象及其属性,并通过Java语言等方式使浏览器可以解释这种对象及其行为。

(2)X3D技术。该技术是一种专为万维网而设计的三维图像标记语言,在访问和组织方式上仍采用了文件格式进行几何数据和行为的描述,并通过浏览器端的插件进行显示。但从技术方面,它结合了最新商业图形硬件特性,并基于多年来VRML97开发团体反馈改进了应用程序的结构,引入了包括XML(eXtensible Markup Language)在内的多个文件编码进行模型的描述,是对VRML97规格新的修订。其特点包括以下3个方面[37-42]

1)X3D技术采用统一的API,定义了ECMA Script和Java绑定,其中ECMA Script是建立应用程序所必需的,这使执行更强健、更可靠。

2)X3D技术支持多种文件编码,包括原VRML97规定格式、XML语言和压缩的二进制格式。

3)X3D技术采用组件(Component)和概貌(Profile)技术使结构更加模块化,为应用程序提供更好的扩展。

(3)基于Java语言的三维可视化技术。该类技术主要包括以Java3D为代表的Java API技术和以基于OpenGL的JOGL为代表的图形接口技术,这两者均可广泛地应用于各种平台,并通过开发基于Web的应用程序与Internet进行集成。

1)基于Java3D的绘制技术[43-47],Java3D是Java语言在三维图形领域的扩展,是一组应用编程接口。Java3D API是用来开发三维图形编程接口,它提出了一种新的基于视平台的视模型和输入设备模型的技术实现方案,即通过改变视平台的位置、方向来浏览整个虚拟场景。它不仅提供了建造和操作三维几何物体的高层构造函数,而且利用这些构造函数还可以建造复杂程度各异的虚拟场景。Java3D是Java Media APIs中的一部分,汲取了已有图形接口的优点,即Java3D的底层图形构造函数不仅综合了底层APIs(如Direcrt3D、OpenGL)的绘制思想,而且它的高层图形绘制还综合了基于场景图的思想,同时,它又引入了一些通用的图形环境所未考虑的新概念(如立体声等),这样将有助于提高用户在虚拟场景的沉浸感。

2)基于JOGL的绘制技术[48],JOGL是建立在OpenGL这一公共图形接口基础上的技术,是第一个被认可的Java对OpenGL的绑定,得到Java创建者SUN公司和Open-GL创建者SGI公司的共同支持。JOGL在集成Java的AWT和SWING等界面组件的同时,还能够为采用Java开发的应用程序提供强大的三维图形硬件支持,并且对OpenGL 2.0规范中的API和几乎所有第三方开发商提供了访问接口。其运行实质[49]就是JOGL使用OpenGL来展示三维模型,使用AWT或者SWING来进行窗口的建立,这就充分利用了OpenGL具有硬件加速、接口与硬件无关的特性,实现在Java运行环境下快速的三维绘制。

综上所述,这3类网络可视化技术均可产生交互式的虚拟现实场景。但从本质上来讲,其中VRML、X3D仍然是承载着三维多媒体内容的数据文件,缺乏对运用可视化技术和可视化算法的直接支持。而Java作为一种通用程序设计语言,它具有很强的可移植性,并且Java3D和JOGL等不仅能够像VRML一样支持视景图形处理,还能够支持高层次即时模式的图形处理。