田建榮,王斌儒
(甘肅有色冶金職業技術學院,甘肅 金昌 737100)
金昌市緣礦興企、因企設市,是典型的資源型城市,礦業經濟在全市經濟發展中具有舉足輕重的支撐作用,隨著礦巷的不斷推進,結構越來越錯綜復雜,安全性也存在極大的風險。近年來虛擬現實VR技術高速發展,在各行各業均得到了廣泛的使用。本文將虛擬現實技術與金昌市智能礦山結合起來,對礦井巷道虛擬現實的基礎理論、設計方案和關鍵技術進行深入研究,在選取合適的設備后,開發礦山漫游系統,對企業智能礦山可視化管理和安全規避均有一定的指導作用。
本文通過前期的數據和資料的收集,結合其他較為成熟的專業資料設計本次方案,主要解決的問題集中在巷道的三維建模,生產系統的搭建以及交互式程序的開發。
本文的主要技術路線如圖1所示。具體研究內容如下。

圖1 關鍵技術路線圖
(1)以Maya2019為基礎軟件,深入研究礦山礦井和巷道中的建模方法,尤其是拱形巷道以及巷道交叉部分,同時研究巷道的三維紋理建設的技術,提出最終建模方案。
(2)虛擬現實的交互技術和漫游技術。用戶佩戴眼鏡后,可以通過人體移動、手柄控制,對礦山中的各個巷道進行漫游,對相關的部件設備進行交互,從而更加了解礦山的細節。
Maya是一款十分流行且功能齊全的三維動畫軟件,相對于3DMAX等三維軟件,其自身具有獨特的功能。Maya的操作平臺基于Windows NT這樣的操作更簡便。制作起來Maya相對來說比較穩定,它對計算機的硬件利用率也比較高。Maya不僅有類似于3D Studio MAX等PC三維軟件的普通建模功能,同時也具備了其他軟件少有的NURBS建模功能。
2.1.1 多邊形建模
多邊形組件適用于頂點、邊和面組件層級,或是上述三者中的兩個層級,其中倒角、擠出、合并、變換命令較為常用,如圖2所示。

圖2 多邊形建模示意圖
具體功能有以下幾種。添加分段:該命令常用于面或邊組件層級,根據組件類型,可以按指數或線性方式對選定的組件進行細分或分割操作。倒角:沿當前選定的邊或面創建倒角多邊形,是最為常用的命令之一。橋接:該命令允許用戶在選定的成對邊界邊之間通過構建多邊形的方式將選定邊連接起來,而生成的橋接多邊形網格與原始多邊形網格組合在一起,且它們之間的邊會進行合并。圓形圓角:將當前選定的組件(包括頂點、邊或面)重新組織為完美的幾何圓形,非常適用于直接從現有形狀構建結構。擠出:從選定的頂點、邊或面上拉出新的多邊形,用于變換和重新定形新多邊形。合并:將位于指定閾值距離內的選定邊或頂點合并起來,如將兩個選定邊合并為一個共享邊。
2.1.2 細分曲面建模
該技術是Maya軟件先進的建模技術,主要解決多邊形建模中存在的缺點,具有良好的操作性和可編輯性。
建模材質的好壞決定了一個模型的真實性,如果沒有材質技術,細節將缺失嚴重。常用的材質有5種,分別是blinn(布林材質)、Lambert(蘭伯特)、Phong(馮)、Phong E和Anisotropic。
Unity3D也稱Unity,是由Unity Technologies公司開發的一個讓玩家輕松創建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內容的多平臺的綜合型游戲開發工具。
數據的采集決定了金昌市礦山虛擬現實系統的真實性,其關鍵之處在于獲取對象的三維空間位置,測量長度、走向等信息。本文主要通過收集平面CAD電子圖件確定參數。對于建模所需要的紋理數據,本文主要通過軟件自帶、網上查找和現場拍攝等方式獲得,盡量保證數據的真實性和準確性。
本文中的數據處理主要是在滿足建模要求和細節表現的基礎上按照去繁就簡的原則進行處理,處理內容主要包含空間數據處理,巷道數據處理和紋理數據處理,數據處理包含斷面圖和尺寸等,紋理處理通過PS軟件進行處理,通過對尺寸、色彩、亮度和對比度進行調節,使其盡量負責實際的要求。
根據上述的技術要求,結合處理完成的數據,搭建礦井的整體結構。由于巷道拓普關系復雜,常常出現上下、平面內多個巷道、礦井交錯交叉的情況,這類模型的處理是本文研究的重點。針對這個特點難點,本文將巷道模型簡化為拱形模型,在Maya中生產出規范的模型之后,采用一個基于mel語言的Maya插件,實現了輸入參數就能實現生成相應尺寸巷道的功能,大大簡化了制作流程。其他的模型主要是對其進行拉伸、頂點處理等,結合具體需要的巷道長度參數L制作,使其盡量符合實際情況。對于復雜的巷道交叉情況,先做出交叉拓撲模型,確定巷道交叉點之間的連接節點,再調整參數處理,進行賦值、旋轉等操作,如圖3所示。

圖3 巷道建模技術路線
對于整體生產系統,需要提前確定好巷道的坐標,具體可以在CAD平面圖上進行量取,也可以通過實地定位,也可通過平面和剖面圖的結合來進行,由于考慮到安全性,本文將采用第3種方法確定坐標,在保證時間的同時也可以保證精度。整體生產系統可以在Maya中的面選擇工具制作完成,如圖4所示。

圖4 巷道建模圖
過多和過大的模型會消耗電腦的內存和提升加載的時長,故為了保證其流暢度,可做以下的工作。先進行冗余邊的刪除,進而整合面文件;其次是刪除多余的面;再者就是通過模型調用副本的方式,也可以減少模型的體量。
三維建模技術之后,為了保證其真實感,將對三維模型進行貼圖,貼圖時需要不斷選擇良好材質,注意燈光效果,調節色彩。由于巷道中存在礦體巖石、設備、軌道等不同物件,光線的調節尤為重要。在對整體進行紋理處理時,也要注意貼材質角度的問題,在Maya軟件中,提供了平面、援助、球體、自動、UV等5種映射放射,實際貼圖時根據需求進行選擇,不然會出現紋理差異很大的現象。對于比較規則的巷道,可以用自動映射的方式,先給三維模型進行網格貼圖,查看其平整度,如果UV不規整,選取自動模式,將網格貼圖映射到模型上,打開編輯器,通過拉伸、移動、縮放等方式進行調整。
金昌礦山虛擬現實仿真系統的實現主要是在Maya軟件建模的基礎上,使用Unity3D軟件開發平臺技術進行虛擬現實漫游系統的開發,該軟件可將上述的三維模型進行深度渲染,輔助以人機交互的指令開發。
為了實現用戶能夠漫游礦井巷道,查看礦井的細節,設計以下幾點需求:
(1)在構建了真實的三維模型之后,需要構建一個可以漫游、防碰撞和防穿透的場景,需要漫游角色通過VR眼鏡的手柄和人體移動來進行操作。(2)要具有深度的沉浸感,視點指引和真實世界具有很好的代入感。
將Maya建設好的三維模型導出為FBX格式后,在軟件項目面板中創建Model(存放三維模型)、Scene(場景文件)、Script(腳本語言)3個模塊,將模型導入Unity3D軟件Model之中,自動生成文件夾存放材質,需要注意的是要一并將素材貼圖導入。
在層次面板中建立空對象,將導入的三維模型放到對象紙上,提示導入成功。在Unity3D軟件中對三維模型的位置和常用屬性進行調節和查看,如果模型存在一定的穩定,在Maya文件中重新進行處理,確認無誤后方可在Unity3D中繼續操作。
在制作腳本的時候必須先進行碰撞檢測,其主要的功能是對在場景中的物體發生碰撞時,能夠及時獲得反饋,如果2個模型出現重疊的現象,這是不容許的,需要進行處理,故該檢測對于場景的真實性具有一定的必要性。由于本場景中的模型多具有剛性屬性,故需要為其添加碰撞器組件。
做好上述處理之后,創建C#腳本,生成Start函數與update()函數。Start函數主要用于腳本的中函數和變量的初始化;update()函數用于系統和函數的更新,有相同的就覆蓋,在本文中該函數的作用是根據人物位置更改獲取實時位置,然后根據人物位置信息判斷是否在某個場景范圍內,設置顯示字體。設置好腳本后,對軟件系統進行詳細開發。
Unity3D軟件中提供Game視圖,對本次開發的虛擬現實系統進行測試。先檢查模型在系統中是否結合完好。再者就是檢查拓撲邏輯,查看操作響應的靈敏度和反映的正確性。測試完成后,選擇Windows平臺下發布并生成可執行文件。
(1)本文立足金昌礦山智能建設,結合先進的虛擬現實技術,通過三維建模、需求分析、功能設計和系統實現,深入研究設計了金昌礦山虛擬顯示開發方案。
(2)三維建模主要通過Maya2019軟件完成,主要通過前期數據收集和數據處理后標準建模,在建模的同時,解決了巷道和礦井中復雜拓撲的模型實現問題,也闡述了如何更加真實、高性價比的進行材質的貼圖,為后期虛擬仿真系統提供了更加真實現實的素材,最后通過模型優化技術,提高了模型的顯示效果和加載速度。
(3)深入研究了通過Unity3D軟件進行礦山虛擬現實仿真系統的開發技術。通過對前期三維模型的導入和處理之后,對模型在Unity3D軟件顯示的效果和位置進行了檢查,無誤后通過腳本制作、防碰撞技術和系統建設,實現礦山虛擬現實交互功能和漫游功能,最后在測試無誤后進行了軟件的生成和發布。
(4)通過以上的工作,設計制作完成了金昌礦山虛擬現實仿真系統,該技術較為新穎,對后期其他礦山的虛擬現實漫游系統的建設具有一定的指導作用。