孫 冉
(安徽理工大學(xué) 測繪學(xué)院,安徽 淮南 232000)
?
數(shù)字礦山巷道三維可視化模塊設(shè)計與開發(fā)
孫冉
(安徽理工大學(xué) 測繪學(xué)院,安徽 淮南 232000)
摘要:采用Visual C#和DirectX結(jié)合的方式對巷道進行三維可視化模擬。工礦企業(yè)的礦井中,無論是正在運轉(zhuǎn)的礦井還是已經(jīng)報廢的礦井都留存大量的礦圖,并且這些礦圖主要以ACAD的DWG文件形式留存。DXF是ACAD數(shù)據(jù)交換文件格式,通過讀取DXF文件中BLOCK以及ENTITIES中的LINE和LWPOLYLINE數(shù)據(jù),為巷道三維可視化模擬提供具體的位置信息。以直壁圓拱巷道為例,探討巷道截面數(shù)據(jù)的組織、單條巷道的生成、巷道連接處的處理、多條巷道的生成等問題。最后涉及到巷道可視化顯示的具體問題,如光照、顏色渲染、旋轉(zhuǎn)、縮放等。
關(guān)鍵詞:數(shù)字礦山;DirectX;Visual C#;巷道;三維可視化
三維巷道可視化的研究在我國也有近十年的歷史,相比較外國而言,我國起步較晚,目前取得的成果也不太多。利用一些已有的數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)兩條巷道的首尾相接時,并不能實現(xiàn)全方位的三維顯示,僅能實現(xiàn)起點、中點、終點都在同一平面上的巷道連接,同時,有些巷道拓撲關(guān)系的組織也僅限于平面上。本文主要就巷道的三維可視化的實現(xiàn)展開,涉及空間巷道的生成、巷道連接處的處理等問題。同時,為了實現(xiàn)從礦圖中提取導(dǎo)線點的空間坐標(biāo),還需要對AutoCAD的繪圖交換文件DXF進行讀取,本文僅就DXF文件中的BLOCK以及ENTITIES中的LINE和LWPOLYLINE進行讀取。巷道有不同種類,其截面也不同,本文統(tǒng)一采用直壁圓拱巷道,巷道連接處的處理僅以部分連接方式為例,如巷道的轉(zhuǎn)彎、巷道交岔點中的牛鼻子交岔點和穿尖交岔點。
1原有礦圖基本介紹
日常接觸到的礦圖一般都是二維的,這些礦圖復(fù)雜晦澀,沒有專業(yè)背景的人很難看懂。而大多數(shù)工礦企業(yè)的礦圖也大多以ACAD的DWG文件形式留存。通過提取礦圖中的信息,同時借助三維巷道可視化模擬,以此讓礦圖的用戶對礦井的三維結(jié)構(gòu)有一個初步的了解。
一個生產(chǎn)礦井必須具備的基本圖件有兩大類:一類主要反映礦井范圍內(nèi)礦體與圍巖產(chǎn)狀,地質(zhì)與水文地質(zhì)情況以及礦產(chǎn)質(zhì)量狀況的礦井地質(zhì)圖;另一類是根據(jù)地面、井下測量資料填繪而成的礦山測量圖,簡稱礦圖。礦圖按圖的用途不同可以分為基本礦圖和專用礦圖。
礦山中最重要的圖件有采掘工程圖、主要巷道平面圖、井底車場平面圖、井上井下對照圖等。本文主要利用數(shù)字化的采掘工程平面圖,如圖1所示。
圖1 某礦的采掘工程平面
2巷道三維建模
圓弧上點的坐標(biāo):
(1)
直壁底端的兩個點分別為:
(2)
圖2 巷道截面形狀
圖3 單條巷道的繪制
單條巷道的繪制是繪制其他一些組合式巷道的基礎(chǔ),在具體介紹直壁圓拱巷道截面生成的基礎(chǔ)上,介紹如何去生成一條完整的巷道。
DirectX中物體生成所需要的頂點數(shù)據(jù)以及為提高頂點的利用率所需要的頂點索引。圖4和圖5分別為巷道外表面沿直壁與巷道弧交線展開后的平面網(wǎng)格圖,圖4所示為組成巷道的頂點網(wǎng)格,橫向為巷道的延伸方向,有h+1個頂點,縱向為巷道的截面方向,有m+2個頂點,總共有(h+1)×(m+2)個頂點。
圖4 巷道的頂點網(wǎng)格
圖5所示為巷道的索引網(wǎng)格,每個小方格由6個索引數(shù)據(jù)點組成,橫向是巷道的延伸方向,有h個索引數(shù)據(jù)點,縱向為巷道的截面方向,有m+3個索引數(shù)據(jù)點,總共有6×(m+2)×h個索引數(shù)據(jù)點。
圖5 巷道的索引網(wǎng)格
下面以一個小方格為例,說明其頂點數(shù)據(jù)和索引數(shù)據(jù)的關(guān)系。圖6顯示的是巷道頂點網(wǎng)格第一行第一列,其4個角點對應(yīng)的頂點號分別為0、1、h+1、h+2,頂點分別為vertices[0]、vertices[1]、vertices[h+1]、vertices[h+2],這里的vertices都是具有三維坐標(biāo)的點。
圖6 三角面片中頂點的編號
圖7所示為巷道的索引網(wǎng)格中第一行第一列的網(wǎng)格,每個網(wǎng)格都由6個索引點組成,分別為index[0]、index[1]、index[2]、index[3]、index[4]、index[5]。
圖7 三角面片中索引的編號
本文采用DirectX中的PrimitiveType.TriangleList來組織圖形,建立TriangleList的過程中會出現(xiàn)很多重復(fù)的頂點,為了提高頂點的利用率,同時提高圖形的顯示效率,就要建立頂點數(shù)據(jù)與索引數(shù)據(jù)之間的聯(lián)系。
(3)
式(3)的左側(cè)為索引數(shù)據(jù),右側(cè)為頂點數(shù)據(jù)對應(yīng)的編號。
3巷道的可視化
在從DXF數(shù)據(jù)中提取巷道的節(jié)點數(shù)據(jù)后,對數(shù)據(jù)進行組織,構(gòu)建巷道模型,完成單條巷道、連接處、多條巷道的繪制,為了實現(xiàn)巷道的逼真表達,還需要對巷道進行可視化處理,如燈光的設(shè)置、顏色渲染等,一些基本的放大、縮小、全屏、旋轉(zhuǎn)、平移等操作,以及響應(yīng)鼠標(biāo)和鍵盤的命令,如圖8所示。
圖8 巷道模型總體思路
三維物體顯示的逼真性很大程度上取決于明暗效果的處理,明暗處理的前提在于處理各種燈光照在可見面上的效果,由于各種物體的光譜反射特性千差萬別,要想準(zhǔn)確模擬自然條件下的光照幾乎是不可能的。
DirectX中有三種類型的光源,他們分別為點光源、平行光和聚光燈。其中,平行光沒有位置屬性,聚光燈具有內(nèi)錐角度和外錐角度屬性,如圖9所示。
圖9 聚光燈的內(nèi)外錐角度
通過繪圖設(shè)備的device.light屬性來獲取和繪制燈光,RenderState.Ambient屬性設(shè)置環(huán)境色。本文采用聚光燈光源對巷道進行處理。代碼如下:
//設(shè)置聚光燈
device.Lights[0].Type = LightType.Spot;
device.Lights[0].Diffuse = System.Drawing.Color.White;
device.Lights[0].Position = new Vector3(50.0f, 20.0f, 50.0f);
device.Lights[0].Direction = new Vector3(0.0f, -1.0f, 1.0f);
device.Lights[0].Range = 50.0f;
device.Lights[0].Attenuation1 = 0.1f;
device.Lights[0].OuterConeAngle = 45f;
device.Lights[0].Enabled = true; //打開燈光
由于巷道采用的是“骨架”式設(shè)計,其紋理貼圖的效果也很理想。同時,為了使模型的顏色與背景中的顏色區(qū)分,采用最簡單的顏色渲染,給巷道骨架賦予一種顏色,使其具有較明顯的顏色對比,方便觀測巷道“骨架”的數(shù)據(jù)結(jié)構(gòu),如圖10所示。
圖10 巷道顏色渲染效果
為了能夠全方位地觀察巷道,一些基本操作是必不可少的,如放大、縮小、全屏、旋轉(zhuǎn)、平移等,并且這些操作都要借助鼠標(biāo)和鍵盤來實現(xiàn)。設(shè)計其可視化界面如圖11所示。通過鍵盤實現(xiàn)放大、縮小、全屏、旋轉(zhuǎn)、平移等操作。
圖11 可視化界面設(shè)計
4結(jié)束語
Visual C#與DirectX的結(jié)合實現(xiàn)三維巷道的可視化,在這過程中實現(xiàn)了空間中巷道的三維顯示,也摸索著去實現(xiàn)巷道交叉處的處理,通過查閱文獻以及自己的理解構(gòu)建巷道模型??臻g上的建模難度要遠遠超過平面上的建模,這也是導(dǎo)致巷道交岔處的處理不完善的主要原因。在實現(xiàn)帶有坡度的巷道的交岔處的處理時出現(xiàn)錯位現(xiàn)象,但可以實現(xiàn)單角度上的無縫連接。主巷道與岔道的連接中有牛鼻子交岔點和穿尖交岔點,二者在礦井中都有出現(xiàn),只是牛鼻子交岔點的應(yīng)用更廣一些。
參考文獻
[1]吳蘊珉.礦山測量與礦圖[M].徐州:中國礦業(yè)大學(xué)出版社,1998:90-106.
[2]譚超,張群會.基于AutoCAD的DXF格式文件讀寫方法研究[J].通信論壇,2009(21):46-49.
[3]惠本利,王紅娟,盧新明.井巷工程精細建模與應(yīng)用[J].礦業(yè)研究與開發(fā), 2014,34(5):95-98.
[4]葛永惠,王建民.礦井三維巷道建模方法的研究[J].工程勘察,2006(10):46-49.
[5]汪云甲,伏永明.礦井巷道三維自動建模方法研究[J].武漢大學(xué)學(xué)報(信息科學(xué)版),2006,31(12):1097-1100.
[6]唐敏.礦山井巷三維模型的建立[D].昆明:昆明理工大學(xué),2007:35-52.
[7]石奉華.巷道三維可視化建模技術(shù)——以東灘煤礦為例[D].濟南:山東科技大學(xué),2007:32-46.
[8]楊奎奇,潭海樵.面向?qū)ο蟮南锏廊S顯示與查詢系統(tǒng)[J].煤礦現(xiàn)代化,2004(1):35-36.
[9]高井祥.測量學(xué)[M].徐州:中國礦業(yè)大學(xué)出版社,2010:10-15.
[10] 孫廣義,郭中平.采煤概論[M].徐州:中國礦業(yè)大學(xué)出版社,2007:26-32.
[責(zé)任編輯:郝麗英]
Design and development of 3D visualization module for mine roadway
SUN Ran
(College of Surveying and Mapping,Anhui University of Science and Technology,Huainan 232000,China)
Abstract:The three-dimensional visual simulation of roadway is carried out by Visual C# and DirectX. Mine industrial and mining enterprises in the coal mine, whether it is running or has scrapped, all retained many mine maps, most of which are mainly in DWG file from ACAD. The data format DXF is the main current CAD data exchange format. In this paper, the data of BLOCK and LINE and LWPOLYLINE data of ENTITIES in DXF file, can provide the position information for the 3D visualization of roadway. Taking the case of a straight wall round arch roadway, it studies the data organization of roadway cross section, and generates single roadway, roadway junction, and double roadway, etc. Finally, the visualization of the roadway is related to the specific problems, such as illumination, color rendering, rotation, scaling, etc.
Key words:digital mine; DirectX; Visual C#; roadway; 3D visualization
作者簡介:孫冉(1992-),女,碩士研究生,研究方向:大地測量學(xué)與測量工程.
收稿日期:2015-07-12
中圖分類號:TD912
文獻標(biāo)識碼:A
文章編號:1671-4679(2015)06-0010-05