石宏斌,王 軒,韓 杰,李長坡,王星琦
(許昌學(xué)院 城市與環(huán)境學(xué)院,河南 許昌 461000)
實踐教學(xué)是測量學(xué)教學(xué)的重要環(huán)節(jié),但是目前測量學(xué)實踐教學(xué)仍存在較大的局限性:
1)測量儀器價格昂貴,更新?lián)Q代較快,許多高校無力購買足夠數(shù)量的測量儀器,以致于學(xué)生在分組實踐練習(xí)過程中難以獲得有效的鍛煉和學(xué)習(xí);
2)實踐場地固定、場景單一,學(xué)生難以體驗不同場景下,測量學(xué)實踐操作的不同;
3)受其他特殊因素限制,測量學(xué)實踐教學(xué)難以開展。例如:新冠疫情使得測量學(xué)只能線上開展理論教學(xué),實踐教學(xué)難以開展。
虛擬仿真技術(shù)能夠模擬各種測量儀器和測量場景,讓學(xué)生足不出戶,在手機(jī)上或電腦上即可進(jìn)行相關(guān)的儀器操作和場景體驗,獲得一種身臨其境和近乎真實的體驗效果,從而克服測繪教學(xué)設(shè)備昂貴、實踐場景復(fù)雜等客觀條件的限制,讓學(xué)生隨時隨地即可進(jìn)行相關(guān)儀器的學(xué)習(xí)和實踐,達(dá)到掌握測量學(xué)相關(guān)知識和技能的目的,從而獲得較好的測量學(xué)實踐教學(xué)效果。
利用虛擬仿真技術(shù)進(jìn)行測繪相關(guān)實踐教學(xué)仿真,業(yè)內(nèi)已有許多學(xué)者開展了相關(guān)的工作。例如:周敏等利用Unity3D等工具平臺構(gòu)建了測量學(xué)虛擬學(xué)習(xí)環(huán)境[1];陳時雨等利用Unity3D技術(shù)構(gòu)建了基于web的“攝影測量學(xué)”虛擬仿真實踐教學(xué)平臺[2];馮正茂等利用虛擬仿真技術(shù)探索模擬井下水準(zhǔn)測量[3];袁德寶等利用3ds max平臺等構(gòu)建GNSS的虛擬仿真教學(xué)系統(tǒng)[4];田鵬等設(shè)計了全站儀虛擬仿真教學(xué)系統(tǒng)[5]。上述文獻(xiàn)均討論了虛擬仿真在實踐教學(xué)的思路和模式,對于如何進(jìn)行相關(guān)的技術(shù)實現(xiàn)涉及相對較少。本文結(jié)合當(dāng)前虛擬仿真的實際情況,詳細(xì)介紹了基于Unity3D構(gòu)建測量學(xué)虛擬仿真實踐教學(xué)平臺的思路和方法。
構(gòu)建測量學(xué)實踐教學(xué)虛擬仿真平臺,就是要利用計算機(jī)三維仿真技術(shù),模擬測量學(xué)中的基本儀器操作、數(shù)據(jù)采集、數(shù)據(jù)處理和地形圖測繪等實踐操作環(huán)節(jié),讓學(xué)生足不出戶,即可在計算機(jī)上完成測量學(xué)實踐教學(xué)相關(guān)知識和技能的學(xué)習(xí)。
根據(jù)上述總體設(shè)計,測量學(xué)實踐教學(xué)虛擬仿真平臺的功能設(shè)計[6]如下:
1)教學(xué)管理模塊。旨在完成學(xué)生基本信息管理與系統(tǒng)登錄、學(xué)習(xí)任務(wù)發(fā)布、學(xué)習(xí)效果打分與統(tǒng)計,師生互動交互等功能。
2)儀器基本操作模塊。包括水準(zhǔn)儀、經(jīng)緯儀、全站儀的基本組成部分,儀器的基本操作和基本讀數(shù)方法的仿真模擬功能。
3)外業(yè)數(shù)據(jù)采集模塊。包括高程控制測量、導(dǎo)線控制測量、碎部測量的外業(yè)數(shù)據(jù)采集仿真功能。
4)測量數(shù)據(jù)處理模塊。包括高程控制測量數(shù)據(jù)處理、導(dǎo)線控制測量數(shù)據(jù)處理、地形圖成圖內(nèi)業(yè)數(shù)據(jù)處理的仿真模擬功能。
系統(tǒng)總體功能設(shè)計如圖1所示。
圖1 測量學(xué)實踐教學(xué)平臺的總體功能設(shè)計Fig.1 General function design of surveying practice teaching platform
根據(jù)上述功能設(shè)計,構(gòu)建了基于Unity3D的測量學(xué)實踐教學(xué)虛擬仿真平臺的技術(shù)路線,具體如圖2所示。
對目標(biāo)測量儀器拍照,獲得儀器不同視角的照片,導(dǎo)入3ds max中,利用3ds max的基本幾何對象構(gòu)建儀器的基本部件。以DSZ水準(zhǔn)儀為例,模型構(gòu)建的過程如下:利用切角圓柱體構(gòu)建水準(zhǔn)儀的照準(zhǔn)部(如圖3(a)),圓環(huán)和圓柱體制作物鏡(如圖3(b)),利用幾何體和圖形畫出圓水準(zhǔn)氣泡(如圖3(c)),圓柱體和三角體制作粗瞄準(zhǔn)器(如圖3(d)),星型對象構(gòu)建儀器的調(diào)焦螺旋(如圖3(e))。并根據(jù)儀器的真實顏色對儀器部件賦色。
圖3 DSZ水準(zhǔn)儀模型構(gòu)建Fig.3 Model construction for DSZ level instrument
在本系統(tǒng)中,界面分為登錄界面和場景界面兩種,界面的設(shè)計和實現(xiàn)均由Unity3D中的UGUI庫制作完成。在hierarchy樹中創(chuàng)建panel結(jié)點以組織場景界面。在panel結(jié)點下,創(chuàng)建button結(jié)點以表示各個菜單,并設(shè)置其相關(guān)顏色和聲效特征。界面中的圖片和動畫可利用image對象和video對象表達(dá)。最后,利用layout組件布局菜單,設(shè)置菜單排列和滑動特性。系統(tǒng)的部分場景設(shè)計界面,如圖4所示。
圖4 測量學(xué)虛擬仿真平臺部分場景界面Fig.4 Interfaces in some scenes of surveying practice teaching virtual simulation platform
利用C#語言實現(xiàn)菜單命令功能,具體步驟如下:
1)命令腳本創(chuàng)建。創(chuàng)建空的gameobject對象,并為該對象添加script組件,在其C#腳本中添加相應(yīng)命令的響應(yīng)函數(shù)。
2)命令掛接。為button對象或擁有button屬性的image對象添加OnClick功能,并在其相關(guān)選項中指定gameobject對象及其響應(yīng)函數(shù),從而實現(xiàn)命令功能。
以圖5中“水準(zhǔn)測量”按鈕為例,具體介紹命令菜單的實現(xiàn)過程為:
1)創(chuàng)建名為“l(fā)oadScene.cs”的C#腳本(見圖5中的“1”);
2)在hierarchy中創(chuàng)建空的gameobject對象,并改名為loadLevelSurvey(見圖5中“2”),并將腳本loadScene.cs掛接到loadLevelSurvey上;
3)為按鈕“水準(zhǔn)測量”添加OnClick操作(見圖5中的“3”),并設(shè)置相應(yīng)的響應(yīng)對象和操作函數(shù)(見圖5中的“4”),從而實現(xiàn)按鈕點擊功能。
圖5 菜單命令實現(xiàn)步驟Fig.5 Steps of menu command construction
上述“l(fā)oadScene.cs”腳本中,可以添加三維場景交互、主題場景切換、三維模型載入載出及預(yù)設(shè)操作動畫播放等功能,從而實現(xiàn)各種仿真功能。
以全站儀照準(zhǔn)棱鏡仿真操作為例,介紹功能實現(xiàn)的過程。總體思想是,將構(gòu)建好的全站儀、棱鏡等基本模型,在3ds max中制作仿真動畫,并將動畫導(dǎo)出到Unity3D中,在Unity3D中通過相應(yīng)的按鈕播放仿真動畫,從而實現(xiàn)操作的仿真。
1)動畫制作。在3ds max中,點擊標(biāo)準(zhǔn)幾何體里面的平面、長方體和圓柱,創(chuàng)建一個平面,一個圓柱體,4個長方體,修改大小、顏色和位置,利用布爾運算等操作制作望遠(yuǎn)鏡里面的觀測界面,將時間幀拖至50處設(shè)置一個關(guān)鍵幀,利用移動等按鈕對觀測界面進(jìn)行動畫制作,使十字絲中心對準(zhǔn)棱鏡中心(見圖6)。
圖6 全站儀操作中的照準(zhǔn)仿真Fig.6 Aiming simulation in total station operation
2)動畫導(dǎo)出與導(dǎo)入。將3ds max中制作的動畫導(dǎo)出為fbx格式,放置在unity項目中的assets目錄下,并拖拽至hierarchy目錄下,從而實現(xiàn)全站儀照準(zhǔn)動畫的unity導(dǎo)入。
3)動畫播放。在Unity3D中添加仿真動畫播放的按鈕,按照2.3中的方法實現(xiàn)按鈕的命令掛接,并播放步驟2中導(dǎo)入的動畫,從而實現(xiàn)仿真功能。
利用Unity3D中的build Settings菜單,可實現(xiàn)虛擬仿真功能的程序輸出。在該菜單中,可將創(chuàng)建的虛擬仿真模塊,輸出為個人電腦可執(zhí)行程序、webgl、安卓app、ios app等形式,可實現(xiàn)一個平臺組織編輯,多個平臺運行。將仿真程序發(fā)送給每位同學(xué),即可實現(xiàn)足不出戶,進(jìn)行測量儀器的學(xué)習(xí)和模擬操作。
本文基于Unity3D,設(shè)計并實現(xiàn)了測量學(xué)中常規(guī)測量儀器虛擬展示、虛擬操作,達(dá)到預(yù)期開發(fā)設(shè)計目標(biāo),滿足測量學(xué)實踐教學(xué)需求,是測量學(xué)理論教學(xué)、實踐教學(xué)的重要輔助性手段。目前,該系統(tǒng)已在許昌學(xué)院測繪工程、地理信息科學(xué)等專業(yè)實踐教學(xué)中投入使用,并獲得了良好的效果。后續(xù),可在此平臺的基礎(chǔ)上,構(gòu)建工程測量學(xué)、大地測量學(xué)等虛擬仿真實驗平臺,該平臺也可為社會培訓(xùn)提供相應(yīng)的支持。