田建榮,王斌儒
(甘肅有色冶金職業(yè)技術(shù)學(xué)院,甘肅 金昌 737100)
金昌市緣礦興企、因企設(shè)市,是典型的資源型城市,礦業(yè)經(jīng)濟(jì)在全市經(jīng)濟(jì)發(fā)展中具有舉足輕重的支撐作用,隨著礦巷的不斷推進(jìn),結(jié)構(gòu)越來越錯(cuò)綜復(fù)雜,安全性也存在極大的風(fēng)險(xiǎn)。近年來虛擬現(xiàn)實(shí)VR技術(shù)高速發(fā)展,在各行各業(yè)均得到了廣泛的使用。本文將虛擬現(xiàn)實(shí)技術(shù)與金昌市智能礦山結(jié)合起來,對礦井巷道虛擬現(xiàn)實(shí)的基礎(chǔ)理論、設(shè)計(jì)方案和關(guān)鍵技術(shù)進(jìn)行深入研究,在選取合適的設(shè)備后,開發(fā)礦山漫游系統(tǒng),對企業(yè)智能礦山可視化管理和安全規(guī)避均有一定的指導(dǎo)作用。
本文通過前期的數(shù)據(jù)和資料的收集,結(jié)合其他較為成熟的專業(yè)資料設(shè)計(jì)本次方案,主要解決的問題集中在巷道的三維建模,生產(chǎn)系統(tǒng)的搭建以及交互式程序的開發(fā)。
本文的主要技術(shù)路線如圖1所示。具體研究內(nèi)容如下。
圖1 關(guān)鍵技術(shù)路線圖
(1)以Maya2019為基礎(chǔ)軟件,深入研究礦山礦井和巷道中的建模方法,尤其是拱形巷道以及巷道交叉部分,同時(shí)研究巷道的三維紋理建設(shè)的技術(shù),提出最終建模方案。
(2)虛擬現(xiàn)實(shí)的交互技術(shù)和漫游技術(shù)。用戶佩戴眼鏡后,可以通過人體移動、手柄控制,對礦山中的各個(gè)巷道進(jìn)行漫游,對相關(guān)的部件設(shè)備進(jìn)行交互,從而更加了解礦山的細(xì)節(jié)。
Maya是一款十分流行且功能齊全的三維動畫軟件,相對于3DMAX等三維軟件,其自身具有獨(dú)特的功能。Maya的操作平臺基于Windows NT這樣的操作更簡便。制作起來Maya相對來說比較穩(wěn)定,它對計(jì)算機(jī)的硬件利用率也比較高。Maya不僅有類似于3D Studio MAX等PC三維軟件的普通建模功能,同時(shí)也具備了其他軟件少有的NURBS建模功能。
2.1.1 多邊形建模
多邊形組件適用于頂點(diǎn)、邊和面組件層級,或是上述三者中的兩個(gè)層級,其中倒角、擠出、合并、變換命令較為常用,如圖2所示。
圖2 多邊形建模示意圖
具體功能有以下幾種。添加分段:該命令常用于面或邊組件層級,根據(jù)組件類型,可以按指數(shù)或線性方式對選定的組件進(jìn)行細(xì)分或分割操作。倒角:沿當(dāng)前選定的邊或面創(chuàng)建倒角多邊形,是最為常用的命令之一。橋接:該命令允許用戶在選定的成對邊界邊之間通過構(gòu)建多邊形的方式將選定邊連接起來,而生成的橋接多邊形網(wǎng)格與原始多邊形網(wǎng)格組合在一起,且它們之間的邊會進(jìn)行合并。圓形圓角:將當(dāng)前選定的組件(包括頂點(diǎn)、邊或面)重新組織為完美的幾何圓形,非常適用于直接從現(xiàn)有形狀構(gòu)建結(jié)構(gòu)。擠出:從選定的頂點(diǎn)、邊或面上拉出新的多邊形,用于變換和重新定形新多邊形。合并:將位于指定閾值距離內(nèi)的選定邊或頂點(diǎn)合并起來,如將兩個(gè)選定邊合并為一個(gè)共享邊。
2.1.2 細(xì)分曲面建模
該技術(shù)是Maya軟件先進(jìn)的建模技術(shù),主要解決多邊形建模中存在的缺點(diǎn),具有良好的操作性和可編輯性。
建模材質(zhì)的好壞決定了一個(gè)模型的真實(shí)性,如果沒有材質(zhì)技術(shù),細(xì)節(jié)將缺失嚴(yán)重。常用的材質(zhì)有5種,分別是blinn(布林材質(zhì))、Lambert(蘭伯特)、Phong(馮)、Phong E和Anisotropic。
Unity3D也稱Unity,是由Unity Technologies公司開發(fā)的一個(gè)讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時(shí)三維動畫等類型互動內(nèi)容的多平臺的綜合型游戲開發(fā)工具。
數(shù)據(jù)的采集決定了金昌市礦山虛擬現(xiàn)實(shí)系統(tǒng)的真實(shí)性,其關(guān)鍵之處在于獲取對象的三維空間位置,測量長度、走向等信息。本文主要通過收集平面CAD電子圖件確定參數(shù)。對于建模所需要的紋理數(shù)據(jù),本文主要通過軟件自帶、網(wǎng)上查找和現(xiàn)場拍攝等方式獲得,盡量保證數(shù)據(jù)的真實(shí)性和準(zhǔn)確性。
本文中的數(shù)據(jù)處理主要是在滿足建模要求和細(xì)節(jié)表現(xiàn)的基礎(chǔ)上按照去繁就簡的原則進(jìn)行處理,處理內(nèi)容主要包含空間數(shù)據(jù)處理,巷道數(shù)據(jù)處理和紋理數(shù)據(jù)處理,數(shù)據(jù)處理包含斷面圖和尺寸等,紋理處理通過PS軟件進(jìn)行處理,通過對尺寸、色彩、亮度和對比度進(jìn)行調(diào)節(jié),使其盡量負(fù)責(zé)實(shí)際的要求。
根據(jù)上述的技術(shù)要求,結(jié)合處理完成的數(shù)據(jù),搭建礦井的整體結(jié)構(gòu)。由于巷道拓普關(guān)系復(fù)雜,常常出現(xiàn)上下、平面內(nèi)多個(gè)巷道、礦井交錯(cuò)交叉的情況,這類模型的處理是本文研究的重點(diǎn)。針對這個(gè)特點(diǎn)難點(diǎn),本文將巷道模型簡化為拱形模型,在Maya中生產(chǎn)出規(guī)范的模型之后,采用一個(gè)基于mel語言的Maya插件,實(shí)現(xiàn)了輸入?yún)?shù)就能實(shí)現(xiàn)生成相應(yīng)尺寸巷道的功能,大大簡化了制作流程。其他的模型主要是對其進(jìn)行拉伸、頂點(diǎn)處理等,結(jié)合具體需要的巷道長度參數(shù)L制作,使其盡量符合實(shí)際情況。對于復(fù)雜的巷道交叉情況,先做出交叉拓?fù)淠P停_定巷道交叉點(diǎn)之間的連接節(jié)點(diǎn),再調(diào)整參數(shù)處理,進(jìn)行賦值、旋轉(zhuǎn)等操作,如圖3所示。
圖3 巷道建模技術(shù)路線
對于整體生產(chǎn)系統(tǒng),需要提前確定好巷道的坐標(biāo),具體可以在CAD平面圖上進(jìn)行量取,也可以通過實(shí)地定位,也可通過平面和剖面圖的結(jié)合來進(jìn)行,由于考慮到安全性,本文將采用第3種方法確定坐標(biāo),在保證時(shí)間的同時(shí)也可以保證精度。整體生產(chǎn)系統(tǒng)可以在Maya中的面選擇工具制作完成,如圖4所示。
圖4 巷道建模圖
過多和過大的模型會消耗電腦的內(nèi)存和提升加載的時(shí)長,故為了保證其流暢度,可做以下的工作。先進(jìn)行冗余邊的刪除,進(jìn)而整合面文件;其次是刪除多余的面;再者就是通過模型調(diào)用副本的方式,也可以減少模型的體量。
三維建模技術(shù)之后,為了保證其真實(shí)感,將對三維模型進(jìn)行貼圖,貼圖時(shí)需要不斷選擇良好材質(zhì),注意燈光效果,調(diào)節(jié)色彩。由于巷道中存在礦體巖石、設(shè)備、軌道等不同物件,光線的調(diào)節(jié)尤為重要。在對整體進(jìn)行紋理處理時(shí),也要注意貼材質(zhì)角度的問題,在Maya軟件中,提供了平面、援助、球體、自動、UV等5種映射放射,實(shí)際貼圖時(shí)根據(jù)需求進(jìn)行選擇,不然會出現(xiàn)紋理差異很大的現(xiàn)象。對于比較規(guī)則的巷道,可以用自動映射的方式,先給三維模型進(jìn)行網(wǎng)格貼圖,查看其平整度,如果UV不規(guī)整,選取自動模式,將網(wǎng)格貼圖映射到模型上,打開編輯器,通過拉伸、移動、縮放等方式進(jìn)行調(diào)整。
金昌礦山虛擬現(xiàn)實(shí)仿真系統(tǒng)的實(shí)現(xiàn)主要是在Maya軟件建模的基礎(chǔ)上,使用Unity3D軟件開發(fā)平臺技術(shù)進(jìn)行虛擬現(xiàn)實(shí)漫游系統(tǒng)的開發(fā),該軟件可將上述的三維模型進(jìn)行深度渲染,輔助以人機(jī)交互的指令開發(fā)。
為了實(shí)現(xiàn)用戶能夠漫游礦井巷道,查看礦井的細(xì)節(jié),設(shè)計(jì)以下幾點(diǎn)需求:
(1)在構(gòu)建了真實(shí)的三維模型之后,需要構(gòu)建一個(gè)可以漫游、防碰撞和防穿透的場景,需要漫游角色通過VR眼鏡的手柄和人體移動來進(jìn)行操作。(2)要具有深度的沉浸感,視點(diǎn)指引和真實(shí)世界具有很好的代入感。
將Maya建設(shè)好的三維模型導(dǎo)出為FBX格式后,在軟件項(xiàng)目面板中創(chuàng)建Model(存放三維模型)、Scene(場景文件)、Script(腳本語言)3個(gè)模塊,將模型導(dǎo)入U(xiǎn)nity3D軟件Model之中,自動生成文件夾存放材質(zhì),需要注意的是要一并將素材貼圖導(dǎo)入。
在層次面板中建立空對象,將導(dǎo)入的三維模型放到對象紙上,提示導(dǎo)入成功。在Unity3D軟件中對三維模型的位置和常用屬性進(jìn)行調(diào)節(jié)和查看,如果模型存在一定的穩(wěn)定,在Maya文件中重新進(jìn)行處理,確認(rèn)無誤后方可在Unity3D中繼續(xù)操作。
在制作腳本的時(shí)候必須先進(jìn)行碰撞檢測,其主要的功能是對在場景中的物體發(fā)生碰撞時(shí),能夠及時(shí)獲得反饋,如果2個(gè)模型出現(xiàn)重疊的現(xiàn)象,這是不容許的,需要進(jìn)行處理,故該檢測對于場景的真實(shí)性具有一定的必要性。由于本場景中的模型多具有剛性屬性,故需要為其添加碰撞器組件。
做好上述處理之后,創(chuàng)建C#腳本,生成Start函數(shù)與update()函數(shù)。Start函數(shù)主要用于腳本的中函數(shù)和變量的初始化;update()函數(shù)用于系統(tǒng)和函數(shù)的更新,有相同的就覆蓋,在本文中該函數(shù)的作用是根據(jù)人物位置更改獲取實(shí)時(shí)位置,然后根據(jù)人物位置信息判斷是否在某個(gè)場景范圍內(nèi),設(shè)置顯示字體。設(shè)置好腳本后,對軟件系統(tǒng)進(jìn)行詳細(xì)開發(fā)。
Unity3D軟件中提供Game視圖,對本次開發(fā)的虛擬現(xiàn)實(shí)系統(tǒng)進(jìn)行測試。先檢查模型在系統(tǒng)中是否結(jié)合完好。再者就是檢查拓?fù)溥壿?,查看操作響?yīng)的靈敏度和反映的正確性。測試完成后,選擇Windows平臺下發(fā)布并生成可執(zhí)行文件。
(1)本文立足金昌礦山智能建設(shè),結(jié)合先進(jìn)的虛擬現(xiàn)實(shí)技術(shù),通過三維建模、需求分析、功能設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn),深入研究設(shè)計(jì)了金昌礦山虛擬顯示開發(fā)方案。
(2)三維建模主要通過Maya2019軟件完成,主要通過前期數(shù)據(jù)收集和數(shù)據(jù)處理后標(biāo)準(zhǔn)建模,在建模的同時(shí),解決了巷道和礦井中復(fù)雜拓?fù)涞哪P蛯?shí)現(xiàn)問題,也闡述了如何更加真實(shí)、高性價(jià)比的進(jìn)行材質(zhì)的貼圖,為后期虛擬仿真系統(tǒng)提供了更加真實(shí)現(xiàn)實(shí)的素材,最后通過模型優(yōu)化技術(shù),提高了模型的顯示效果和加載速度。
(3)深入研究了通過Unity3D軟件進(jìn)行礦山虛擬現(xiàn)實(shí)仿真系統(tǒng)的開發(fā)技術(shù)。通過對前期三維模型的導(dǎo)入和處理之后,對模型在Unity3D軟件顯示的效果和位置進(jìn)行了檢查,無誤后通過腳本制作、防碰撞技術(shù)和系統(tǒng)建設(shè),實(shí)現(xiàn)礦山虛擬現(xiàn)實(shí)交互功能和漫游功能,最后在測試無誤后進(jìn)行了軟件的生成和發(fā)布。
(4)通過以上的工作,設(shè)計(jì)制作完成了金昌礦山虛擬現(xiàn)實(shí)仿真系統(tǒng),該技術(shù)較為新穎,對后期其他礦山的虛擬現(xiàn)實(shí)漫游系統(tǒng)的建設(shè)具有一定的指導(dǎo)作用。