蔣冬梅, 彭成東
(1.安徽水利水電職業技術學院,安徽 合肥 231603;2.合肥明信軟件技術有限公司,安徽 合肥 230088)
將分布在不同地層、地質環境的井下工程空間數據和井下環境監控數據融合在三維可視化系統中,通過逼真的場景渲染和直觀的數據展現,對煤礦安全生產管理有重要的意義。
本文基于明信軟件MX-EMine三維可視化引擎,研究了對煤礦井下巷道的自動建模算法,并使用示例數據進行仿真,三維場景和虛擬漫游用戶體驗好。
明信軟件MX-EMine三維可視化引擎具備場景物體的坐標變換和投影變換處理、消除遮蓋處理、光源明暗度處理、顏色與紋理的表面細節等渲染處理。
構建煤礦井下三維可視化環境,只需要使用適當的數學模型和建模算法對井下巷道和巷道中的物體進行對象建模,把對象變成MX-EMine可以加載的數據,由引擎實現對象的渲染和虛擬現實呈現。
巷道由一系列的局部巷道組成。由巷道中心線和巷道斷面來表示局部巷道,其中巷道中心線確定巷道位置,斷面確定巷道的空間形態,利用相鄰巷道的斷面對應點、線、面的相連構成三維模型[1]。巷道的建模的主要過程包括:巷道導線節點的網絡拓撲關系處理、巷道斷面加載及交叉處平滑、紋理處理。
(1) 巷道元素。主要有① 節點。節點表示同一水平巷道的交叉處,也表示水平巷道與上下山巷道的交叉處。② 弧段。在巷道網絡中2節點之間鏈接的部分是弧段。③ 巷道線。每1條巷道都稱之為巷道線。其基本組成元素是巷道弧段。一般來說,它代表著1條完整的巷道。
(2) 巷道元素的拓撲關系。如圖1所示,巷道節點采用英文字母A、B、C、D表示,弧度采用數字1、2、3、4表示,采用希臘字母Ⅰ、Ⅱ、Ⅲ表示3條巷道。巷道的空間關系構成包括巷道線、節點,它們之間的拓撲關系就是巷道網絡的拓撲關系。

圖1 巷道元素及拓撲關系
(3)巷道中線計算方法。對井下巷道位置進行測量時,每個測點都有距離巷道兩邦的邦左距離sL、邦右距離sR、測點坐標A(Xa,Ya,Za)、后視測點的方位角為α。通過中心線的逼近方法[2],可以逼近出巷道導線上的中心點坐標C(Xc,Yc,Zc)。 連接巷道中線點坐標即可形成巷道中線。
(4) 巷道斷面計算方法。井下巷道的斷面形狀有矩形、拱形和梯形[3]。以拱形巷道為例,巷道斷面算法描述如下:由已知拱形巷道斷面參數拱半徑r、寬度s、高度h可以計算出坐標原點處的斷面數據如圖2(a)所示。通過巷道斷面的方位角a將圖2(a)的旋轉到圖2(b),再將圖2(b)巷道平移到實際位置如圖2 (c)所示。圖中P1和P2所在的斷面就是巷道的真實斷面。通過將巷道2個節點處斷面相應的計算點相互連接起來就形成巷道表面模型。

圖2 拱形巷道斷面數據的計算
(1) 建模算法步驟。在巷道導線網絡拓撲關系和巷道斷面類型、節點坐標已知的情況下,巷道模型生成算法如下:
第1步在巷道導線結點處計算底面和頂面坐標,得出結點處斷面。對于交叉節點使用插入法插入斷面進行平滑處理;第2步從巷道起始點開始,以此斷面上坐標向下一節點做平行線,與下一結點斷面求得交點;依次類推,再向巷道導線中的下一節點做平行線和求交點。直至與導線中最后一個節點斷面求交。第3步將所有斷面上的交點坐標依次連接形成巷道外立面的多個四邊形。將所有節點的斷面交點坐標進行數據存儲。通過以上3步實現巷道斷面坐標計算和3D立體建模。
(2) 算法時間復雜度。假定巷道導線中結點的數量是 n,斷面輪廓線條數為m,任意相鄰的3個巷道中點都不在1條直線上,該算法的時間復雜度為:T(n)=O(n)+O(m)+O(n*m)=O(n*m)。
使用MX-EMine三維圖形渲染工具對上述算法構建的巷道模型進行渲染。如圖3所示。

圖3 巷道模型數據加載及渲染流程
流程中的關鍵點說明如下:
(1) LoadContent()方法。使用素材管道加載計算好的巷道節點、斷面模型,并獲取模型面片和初始變換矩陣。
(2) Run()方法。開始引擎的循環,反復調用 Update()和 Draw()方法完成巷道模型的渲染和更新。
(3) Update()方法。讀取巷道模型計算結果數據,對巷道模型中的節點和斷面對象進行更新;通過子線程實現對設備對象實時數據的異步更新,以在場景中同步實時數據。
(4) Draw()方法。巷道斷面及場景中設備對象的3D渲染代碼實現。
以某礦1段交叉的3段巷道的部分測點數據為例,按照巷道節點法計算巷道中位線、加載巷道斷面、交叉點處理,形成巷道的空間模型。
巷道測點數據包括測量點位號、坐標(X,Y,Z),及其幫距、高度、寬度、斷面、巖層屬性、支護方式(混凝土、錨網、錨噴、U型鋼棚等)屬性參數。3段巷道的測點坐標數據如表1所列,導線拓撲關系如表2所列。

表1 巷道測點的坐標數據

表2 巷道導線的測點數據
由每條巷道2相鄰節點構造巷道導線,由此可得到巷道的節點和導線網絡拓撲,如圖4所示。對U型斷面按左邦、右邦、頂面(8個插入點),依次鏈接形成巷道三維模型效果,如圖5所示。

圖4 巷道節點與導線空間關系

圖5 巷道斷面三維模型效果
(1) 巷道交叉處理。當1個節點的度大于2時,在生成巷道時已經出現了面的交叉,需要進行裁面或者補面才能夠保證巷道的完整性。遍歷每個節點的度,對于遍歷到的某個節點(后面稱為基點),記錄所有與該基點相連接的邊的出點,將記錄下來的點集合按照固定規則進行排序形成1個新的點集合,依次取出點集合中的2個點并將其與基點構成的邊所在平面進行求相交處理,保存交點坐標,循環遍歷直到遍歷完點集合中的所有點。巷道交叉處理后的效果與井下實際環境就較為接近了,交叉處理后外部效果如圖6所示。

圖6 交叉處理后外部效果
(2)紋理貼圖處理。按支護方式(混凝土、錨網、錨噴、U型鋼棚等)對建模的巷道面進行材質加載,以是的生成巷道與實際環境一致,其紋理貼圖處理后內部效果如圖7所示。

圖7 紋理貼圖處理后內部效果
在系統中可以按照井下工作地點搜索定位到巷道的位置及巷道內部情況,在3D場景下定位到巷道內部,其2D效果如圖8所示。通過構建的巷道虛擬場景,還可以渲染井下生產設備及采集設備的實時運行數據的3D效果如圖9所示。

圖8 井下地點查詢定位

圖9 3D場景中加載生產設備數據
本文對井下巷道設計數據結構和算法建模,在3D引擎的基礎上實現巷道三維場景渲染,以虛擬現實的方式進行效果呈現,用戶體驗逼真、數據展示直觀。