VR技术在钨矿山巷道可视化研究中的应用
2014-03-04张思卿谭同德
张思卿,谭同德
(1.郑州科技学院 信息工程学院,郑州450064;2.郑州大学 信息工程学院,郑州450001)
随着计算机技术的不断发展,信息化逐渐成为全球各个行业的发展趋势。钨矿开发是矿山开发的重要组成部分,矿山信息化在我国有相当广阔的应用前景。
钨矿山的主要组成部分是巷道,地下巷道错综复杂、纵横交错,如何能够多方位地、直观地、形象地、准确地表现井下巷道,是钨矿安全生产、高效和合理开发的重要保障,是构建数字矿山的基础。研究和开发三维巷道系统在矿山生产方面有很大的积极意义,例如钨矿山的安全生产、矿井设计的优化,并能够提高钨矿的现代化管理水平。
实现钨矿山三维巷道模型的动态模拟,可以使开采和设计人员有一种身临其境的感觉,使他们对巷道有一个全面的认识,可以在采矿生产中确保巷道掘进的合理性以及安全性,因此建立三维巷道模拟系统,使地下巷道数字化,通过展示矿区整个地下巷道的三维模型,可以直观地反映地下巷道的变化,并能够显示巷道与地表或者矿体的位置关系,从而大大提高钨矿开采工作的安全性以及提高开采工作的效率[1]。
本文基于 VR技术,在 Visual C++6.0集成开发环境下,设计实现了三维巷道仿真系统,解决了其中关键技术问题,可以模拟巷道外部全景以及巷道内部情况,最后通过贴图使巷道具有真实感。巷道的三维可视化对钨矿后续安全生产有重要意义。
1 钨矿山巷道的设计原则
1)平巷设计
矿山平巷包括平硐、石门、运输平巷、出矿通道等[2]。这些巷道最常见的断面形状有自然拱形、梯形、圆拱形、半圆拱形和圆形,如图1所示,当然在特殊情况下,也有马蹄形、椭圆形等。
图1 巷道断面Fig.1 Section of roadways
平巷断面形状主要由以下三个方面来决定[2]:
(1)巷道周围的地质环境以及地压的大小和压力的方向;
(2)巷道的用途以及工作年限;
(3)支护方式,施工的难易度等。
经过综合考虑,梯形断面利用率高,而拱形断面的稳定性较好,承载能力较大,所以设计时一般采用这两种形状的断面,而本次实验主要是为了实现三维巷道的模拟,所以采用统一的半圆拱形断面进行仿真。矿井生产中,井下巷道按要求应该是互相连接的,于是就会出现巷道相交或者有分叉的地方,这种情况下的巷道就称之为巷道交叉点。
根据交叉点支护方式的不同,交叉点可以分为简易交叉点和碹叉,而碹叉按其结构的不同又分为牛鼻子交叉点和穿尖交叉点[2],如图2所示。
图2 交叉点类型Fig.2 Intersection types
2)竖井设计
竖井是地下钨矿山工程中的主要井巷之一,其主要作用是在矿山生产时提升矿石、上下工作人员和器材、排水及通风。一般圆形断面的井筒多采用混凝土或者喷锚支护,另外在地质条件复杂的情况下也有钢筋混凝土。圆形断面具有承压性能好、受压均匀、封水性好、服务年限较长、能适应复杂的地质条件等优点,所以一般情况下竖井都会采用圆形断面。
2 系统总体框架
目前,随着采矿行业的不断发展,地下巷道纵横交错,越来越复杂。而现有的巷道数据基本都是以二维的方式存储的,并且巷道的数目越来越多,其内部设施也越来越复杂,直接考察获取巷道信息越来越难,所以依靠建立巷道的三维模型来保障矿山的安全生产越来越必要。
作为一个三维巷道仿真系统,其核心功能必然是实现巷道的三维显示,整体显示整个巷道的三维模型,主要是根据简单的原始数据以及属性描述建立起较有真实感的巷道模型,把二维的巷道数据转化为空间三维的模型,主要实现巷道的内部显示和外部显示。
由于本实验中在弯曲巷道处采用的是贝塞尔曲线插值方法,所以找到合适的曲线控制点是实现三维巷道仿真的重点,也是难点。另外在巷道段加载时,找到合适的加载位置也是要认真考虑的。最后,在巷道贴图处理时,怎样处理贴图的属性,找到合适的贴图坐标也是难点。
三维巷道的功能模块如图3所示。
图3 三维巷道建模系统Fig.3 3Droadway modeling system
1)文件管理功能模块。主要完成巷道的数据处理,主要是对格式为DXF的CAD文件进行处理,将图纸上的巷道信息在程序的环境下显示出来,最终得到巷道的骨架图,使用户对井下巷道有一个最初的认识。
2)系统交互功能。主要是在建模完成后,可以对三维模型进行的一些操作,可以平移三维模型,并且可以放大缩小,以便用户能看到自己想看的部分。
3)巷道建模。该部分是本系统最主要的部分,即核心部分,主要完成巷道的三维建模,其中包括各个巷道段的建模,即直巷道、弯曲巷道和交叉巷道。另外,还要考虑巷道截面不同的情况,即巷道变径时的处理方法。
4)显示效果。该部分是本系统的最终显示部分,主要为巷道的整体显示,即整个巷道群的外部显示,使用户可以对巷道有整体的、三维的、直观的认识。另外,为了以后的漫游工作,也要对巷道内部进行一定的处理,使用户对巷道内部也有一定了解。最后为了使巷道有一定的逼真性,对其加上贴图,使其更逼真,比如,岩石巷就可以在内部贴上岩石的贴图,水泥巷就可以贴上稍细腻的水泥贴图,可以使用户对巷道的材质有一定的了解。
3 实现过程
本次仿真实验是在郑州大学的虚拟现实与地理信息系统实验室的PC机上开发实现的,实验的硬件平 台 为 Intel(R)3.00GHz,显 卡 信 息 为GeForce6600GT,内存大小为1.49GB。软件方面使用的是面向对象开发工具 Visual C++6.0,在Windows XP操作系统环境下,使用OpenGL图形库,屏幕的分辨率是1 280×1024像素。实现流程如图4所示。
图4 实现流程Fig.4 Implementation process
3.1 读取数据
DXF是Autodesk公司开发的主要用于Auto-CAD与其它软件之间进行CAD数据交换的CAD数据文件格式,它的数据格式是开放的、矢量的。DXF文件格式可以分为两类:一类是ASCII格式,另一类是二进制格式[3]。ASCII格式具有可读性好的优点,但缺点是占有空间较大;而二进制格式则具有占有空间小、读取速度快的优点。因其内部为ASCII码,所以即使是不同类型的计算机、不同版本的文件,DXF文件也可以完成图像交换的功能,这是DWG格式的文件达不到的。另外由于DXF文件可读性好,用户可以方便地对其进行修改、编程,最终达到从外部进行编辑、修改的目的[4]。ASCII格式的DXF可以使用文本编辑器打开并查看其基本信息。
3.2 加载巷道段
系统将巷道分成三个部分来模拟:直巷道、弯曲巷道、交叉巷道。实现过程如下:
1)直巷道
对直巷道来说,其实最基本的就是巷道剖面的模拟,本文中根据选用特征点的方法来生成巷道剖面,实验的线框效果图如图5所示。
图5 直巷道效果图Fig.5 Straight tunnel effect
2)弯曲巷道
对弯曲巷道来说,采用贝塞尔曲线插值算法来进行编程实现,在用程序实现时,需要使用求值器。OpenGL中提供了一维求值器和二维求值器,但由于两者很相似,而一维求值器更易于描述,所以在本次实验中使用一维求值器。
贝塞尔曲线是单向量的向量值函数[5]:
其中u在某个定义域中变化。贝塞尔表面是双向量的向量值函数:
其中u、v都在某个定义域中变化,对于每个u(如果是表面,则是u、v),使用C()公式来计算曲线或曲面上的一个点,为了使用求值器,需要首先定义C()函数,然后启用此函数,并使用glEvalCoord1()函数来代替函数glVertex()。实验的线框图效果如图6(a)所示。
对于弯曲巷道的实现,常用的拼接算法是在巷道弯曲处加载连续断面,使拐角弱化,这种方法适用于弯曲度较小的巷道。这种方法实现起来简单,但是在巷道拼接的地方还是不太逼真,不太圆滑,如图6(b)所示。
图6 弯曲巷道效果图Fig.6 Curved tunnel effects
3)交叉巷道
交叉巷道采取的方法前面已经详细描述,这里就不再赘述,实验的效果图分别是使用Bezier曲线完成的Y形岔口和普通岔口,如图7所示。
图7 交叉巷道效果图Fig.7 Cross tunnel effects
使用贝塞尔曲面完成的交叉巷道拼接的效果图如图8所示。
图8 贝塞尔曲面拼接的交叉巷道Fig.8 The Bezier surface patchwork cross tunnels
4)变径处理
剖面大小不同的巷道也是将对应特征点连接起来形成巷道段,对于形状不同的则使用最小对角线进行判断后再将相应的特征点相连,如图9所示。
3.3 贴图处理
图9 变径效果图Fig.9 Variable diameter rendering
纹理贴图是一个很复杂的问题 。在使用纹理贴图时,必须做出一些编程选择。纹理可以是一维的、二维的,甚至也可以是三维的,开发者可以将纹理映射在由一组不规则多边形组成的平面上,或将它贴在曲面上,也可以在一个甚至多个方向上重复使用同一个纹理来覆盖物体的表面[5]。除此以外,可以把材质纹理直接贴在物体的表面上,来表示物体的形状或者其它属性。纹理可以按不同的方式应用于物体的表面,如既可以直接画到物体的表面,调整物体表面的颜色,也可以将纹理颜色与物体表面颜色相融合[5-6]。
为了使用纹理贴图,需要执行以下步骤[7]:
1)定义纹理、启动纹理。
2)将纹理映射到每个多边形点坐标上。
3)根据纹理坐标和贴图多边形坐标完成场景的绘制。
需要注意的是,纹理坐标在RGBA模式下才可以使用[8]。
纹理一般定义在单位正方形(0≤u≤1,0≤v≤1)上,称为纹理空间,理论上,任何定义在这个空间上的函数都可以作为纹理函数。常用的纹理定义是采用离散的方法,即用一个二维数组来定义纹理。把二维的纹理图案映射到三维物体表面时,必须使物体的空间坐标与纹理坐标一一对应。
另外,纹理贴图时还有一个问题要注意。在纹理生成时,经常使用的点取样方法会导致图形严重走样。走样的问题是不可避免的,但可以采用一定的措施使问题减小到不明显。目前减轻走样的方法有两种:一种是在适当加密取样之后再进行纹理滤波,另一种是先对纹理进行低通滤波后再采样。部分巷道纹理贴图后的效果如图10所示。
4 实验结果
图10 贴图处理Fig.10 Chartlet processing
实现巷道模拟后,为了使仿真效果更逼真,又对实现结果添加了光照和材质,尤其是材质方面,使用不同的贴图可以实现不同类型的巷道,但在纹理贴图中,会出现图像走样现象,就是图像会显示为锯齿状或台阶状。在OpenGL中采取提高分辨率的方法来实现反走样,并在实现过程中采取连续对单一面片贴纹理的办法实现巷道的逼真模拟。除了模拟巷道外,还添加了交互功能,用户可以使用鼠标来平移巷道,还可以对想观察的巷道进行放大缩小。
本研究主要实现了巷道三维模型的仿真,整体巷道的部分效果图如图11所示。
图11 三维巷道Fig.11 Three-dimensional roadway
5 结论
本研究的创新点在于对巷道的数据处理采取直接读取DXF文件的方法,提出分段模拟的思想,然后逐个加载,就像接水管一样,更方便逼真地完成巷道的三维模拟。在对交叉巷道模拟时,采用对巷道段求交线的方法,最后基于交线使用贝塞尔曲面完成拼接。
研究项目实现了一个巷道三维建模系统的建立,并解决了其中的关键技术,即弯曲巷道和交叉巷道的圆滑拼接。对于用户来说,基于一张CAD图纸就可以仿真出想要得到的结果,为用户了解巷道提供了很大的便利。
金属矿山的地下工程中的其它项目,如采矿、工作面、竖井等也可以利用本VR技术实现可视化,为矿山设计和现场管理提供可视化平台,提高矿山现代化、信息化管理水平。
[1] 季 兴 .三维巷道矢量模型生成与动态漫游[D].长沙:中南大学,2010.
[2] 卢义玉,康 勇,夏彬伟 .井巷工程设计与施工[M].北京:科学出版社,2010:55-75,143-161.
[3] 刘传亮,陆建德 .AutoCAD DXF文件格式与二次开发图形软件编程[J].微机发展,2004,14(9):101-104.
[4] 赵晓东,谷晓松,王海龙 .GIS的矿山巷道三维空间构模算法研究[J].测绘科学,2010,35(6):20-22.
[5] 徐 波.OpenGL编程指南[M].北京:机械工业出版社,2008:228-285.
[6] 孙家广.计算机图形学[M].北京:清华大学出版社,2004:378-387,491-495.
[7] 吴文国.交互式计算机图形学—基于OpenGL的自顶向下方法[M].北京:清华大学出版社,2006:354-360.
[8] 郑阿奇,丁有和,郑 进,等.Visual C++实用教程[M].2版 .北京:电子工业业出版社,2005:1-6.