王 振 武
(中國(guó)礦業(yè)大學(xué)(北京) 機(jī)電與信息工程學(xué)院, 北京 100083)
計(jì)算機(jī)圖形學(xué)是研究怎樣利用計(jì)算機(jī)表示、生成、處理和顯示圖形的原理、算法、方法和技術(shù)的一門學(xué)科[1],它是計(jì)算機(jī)科學(xué)中發(fā)展最活躍、應(yīng)用最廣泛的分支之一,在計(jì)算機(jī)視覺(jué)[2]、科學(xué)計(jì)算可視化[3]、虛擬/增強(qiáng)現(xiàn)實(shí)[4]等領(lǐng)域有著廣泛的應(yīng)用。傳統(tǒng)的計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)教學(xué)方式是根據(jù)課程教學(xué)大綱的要求,對(duì)計(jì)算機(jī)圖形學(xué)相關(guān)算法進(jìn)行編程實(shí)現(xiàn)與分析驗(yàn)證,缺乏一體化的實(shí)驗(yàn)平臺(tái)作為支撐,更沒(méi)有與學(xué)生的專業(yè)背景和行業(yè)特色進(jìn)行深入融合,這使得學(xué)生對(duì)該課程的學(xué)習(xí)僅停留在對(duì)算法原理的理解層面,導(dǎo)致理論和行業(yè)實(shí)踐嚴(yán)重脫節(jié),這種教學(xué)方式已經(jīng)不能適應(yīng)現(xiàn)代教學(xué)的要求。隨著高等教育內(nèi)涵式發(fā)展的不斷深入,特色化的人才培養(yǎng)模式對(duì)計(jì)算機(jī)圖形學(xué)課程的實(shí)驗(yàn)教學(xué)方法提出了更高的要求。2012年教育部頒布了《教育部關(guān)于全面提高高等教育質(zhì)量的若干意見》[5],明確提出要“促進(jìn)高校辦出特色,加強(qiáng)農(nóng)林、水利、地礦、石油等行業(yè)高校建設(shè),突出學(xué)科專業(yè)特色和行業(yè)特色”,同年,教育部頒布的《教育信息化十年發(fā)展規(guī)劃(2011-2020年)》[6]中進(jìn)一步強(qiáng)調(diào) “要推進(jìn)高等教育精品課程、教學(xué)實(shí)驗(yàn)平臺(tái)等信息化建設(shè)”,2015年國(guó)務(wù)院辦公廳頒布的《關(guān)于深化高等學(xué)校創(chuàng)新創(chuàng)業(yè)教育改革的實(shí)施意見》[7]中指出:要“探索建立跨院系、跨學(xué)科、跨專業(yè)交叉培養(yǎng)創(chuàng)新創(chuàng)業(yè)人才的新機(jī)制,促進(jìn)人才培養(yǎng)由學(xué)科專業(yè)單一型向多學(xué)科融合型轉(zhuǎn)變?!?,2017年中共中央辦公廳和國(guó)務(wù)院辦公廳進(jìn)一步頒布了《關(guān)于深化教育體制機(jī)制改革的意見》[8],意見進(jìn)一步明確:“不同類型的高等學(xué)校要探索適應(yīng)自身特點(diǎn)的培養(yǎng)模式,著重培養(yǎng)適應(yīng)社會(huì)需要的創(chuàng)新型、復(fù)合型、應(yīng)用型人才”。我校是一所礦業(yè)特色鮮明的全國(guó)重點(diǎn)大學(xué),培養(yǎng)的學(xué)生主要面向礦業(yè)主戰(zhàn)場(chǎng),隨著數(shù)字礦山和智能礦山技術(shù)的快速發(fā)展,可視化技術(shù)在礦山中得到了越來(lái)越廣泛的應(yīng)用,作為可視化技術(shù)的基礎(chǔ)課程,如何有針對(duì)性地為礦業(yè)類高校學(xué)生開展計(jì)算機(jī)圖形學(xué)的實(shí)驗(yàn)教學(xué)是值得深入研究的問(wèn)題。
文獻(xiàn)[9-14]中對(duì)計(jì)算機(jī)圖形學(xué)課程的實(shí)驗(yàn)教學(xué)方法進(jìn)行了有益的探索,但不可否認(rèn)的是,計(jì)算機(jī)圖形學(xué)的實(shí)驗(yàn)教學(xué)仍然是該課程教學(xué)中的難點(diǎn)問(wèn)題,這與計(jì)算機(jī)圖形學(xué)的課程特點(diǎn)是緊密相關(guān)的。① 計(jì)算機(jī)圖形學(xué)課程的學(xué)習(xí)門檻高。該課程是多學(xué)科交叉的綜合性課程,要求學(xué)生具備較強(qiáng)的數(shù)學(xué)基礎(chǔ)和編程能力,學(xué)生要提前掌握線性代數(shù)、矩陣?yán)碚?、空間解析幾何、算法與數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言等先修課程。② 計(jì)算機(jī)圖形學(xué)的內(nèi)容抽象枯燥。該課程的主要內(nèi)容包括基本圖元的繪制、二維及三維變換和觀察、以及真實(shí)感圖形繪制技術(shù)等,課堂教學(xué)以講授各部分內(nèi)容的算法為主,部分算法原理較為復(fù)雜。③ 對(duì)學(xué)生的算法設(shè)計(jì)和編程能力要求高。計(jì)算機(jī)圖形學(xué)課程講授的是圖形表示、生成、處理和顯示的基本原理和算法,不但要求學(xué)生對(duì)編程語(yǔ)言熟練掌握,而且要對(duì)數(shù)據(jù)結(jié)構(gòu)知識(shí)進(jìn)行綜合應(yīng)用,計(jì)算機(jī)圖形學(xué)的單個(gè)算法實(shí)現(xiàn)不容易,各部分內(nèi)容融會(huì)貫通更加困難。
與計(jì)算機(jī)圖形學(xué)的特點(diǎn)緊密相關(guān),目前該課程的實(shí)驗(yàn)教學(xué)存在如下主要問(wèn)題。① 實(shí)驗(yàn)教學(xué)內(nèi)容的設(shè)置缺乏實(shí)踐性和創(chuàng)新性。計(jì)算機(jī)圖形學(xué)的驗(yàn)證性實(shí)驗(yàn)項(xiàng)目多側(cè)重于對(duì)算法的簡(jiǎn)單實(shí)現(xiàn),與實(shí)際應(yīng)用問(wèn)題關(guān)聯(lián)不大,而設(shè)計(jì)性和綜合性的實(shí)驗(yàn)項(xiàng)目由于實(shí)現(xiàn)復(fù)雜、難度過(guò)大,學(xué)生容易產(chǎn)生畏難情緒,實(shí)驗(yàn)教學(xué)效果往往不好。② 實(shí)驗(yàn)教學(xué)內(nèi)容缺乏行業(yè)應(yīng)用背景。實(shí)驗(yàn)內(nèi)容的設(shè)計(jì)缺乏針對(duì)性和系統(tǒng)性,沒(méi)有面向某一行業(yè)的具體問(wèn)題進(jìn)行系統(tǒng)性的設(shè)計(jì)和應(yīng)用,很難激發(fā)出學(xué)生的學(xué)習(xí)興趣和主動(dòng)性。由于計(jì)算機(jī)圖形學(xué)的課程特點(diǎn)和上述問(wèn)題,學(xué)生對(duì)計(jì)算機(jī)圖形學(xué)內(nèi)容的理解是“碎片化”的,很難將其基本原理與相關(guān)應(yīng)用領(lǐng)域建立起聯(lián)系,更談不上站在工程應(yīng)用的角度分析和思考計(jì)算機(jī)圖形學(xué)原理與可視化技術(shù)的內(nèi)在關(guān)聯(lián)。
針對(duì)這些問(wèn)題,筆者在長(zhǎng)期的計(jì)算機(jī)圖形學(xué)教學(xué)工作中不斷思考和探索,構(gòu)建了面向礦業(yè)類高校的計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)教學(xué)平臺(tái)。該平臺(tái)提供了計(jì)算機(jī)圖形學(xué)驗(yàn)證性、設(shè)計(jì)性和綜合性實(shí)驗(yàn)項(xiàng)目的開發(fā)框架,學(xué)生可較為方便地在該平臺(tái)上實(shí)現(xiàn)計(jì)算機(jī)圖形學(xué)知識(shí)的綜合應(yīng)用,另外,該平臺(tái)面向礦業(yè)類高校學(xué)生提供了地下病害信息三維可視化和地層數(shù)據(jù)三維可視化兩個(gè)實(shí)驗(yàn)教學(xué)子系統(tǒng),以便學(xué)生深入理解和掌握計(jì)算機(jī)圖形學(xué)基本原理如何與礦業(yè)行業(yè)應(yīng)用相結(jié)合。
由于數(shù)字礦山和智能礦山的快速發(fā)展,我校不僅計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)要必修計(jì)算機(jī)圖形學(xué)課程,測(cè)繪工程等專業(yè)也要求學(xué)習(xí)該課程。為了更有針對(duì)性地開展計(jì)算機(jī)圖形學(xué)的實(shí)驗(yàn)教學(xué)工作,構(gòu)建了面向礦業(yè)高校的計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)教學(xué)平臺(tái)。
本課程采用的教材為作者自編教材[15],該教材除了講解圖形學(xué)基本算法原理外,還采用C語(yǔ)言和OpenGL對(duì)絕大部分算法進(jìn)行了編程實(shí)現(xiàn),這大大降低了學(xué)生的學(xué)習(xí)難度。本課程的實(shí)驗(yàn)內(nèi)容包括:OpenGL編程基礎(chǔ)及實(shí)驗(yàn)環(huán)境的配置、基本圖元繪制、二維圖形填充算法、二維變換和二維裁剪、三維幾何變換和投影變換、真實(shí)感圖形繪制及課程綜合設(shè)計(jì)性實(shí)驗(yàn)等,具體內(nèi)容如表1所示。在這些實(shí)驗(yàn)內(nèi)容中,驗(yàn)證性實(shí)驗(yàn)針對(duì)的是計(jì)算機(jī)圖形學(xué)的單個(gè)算法或操作,相對(duì)較好實(shí)現(xiàn),而綜合性和設(shè)計(jì)性的實(shí)驗(yàn)內(nèi)容十分復(fù)雜,如果沒(méi)有實(shí)驗(yàn)平臺(tái)的支撐僅憑學(xué)生的個(gè)人能力很難短時(shí)間完成,也達(dá)不到對(duì)計(jì)算機(jī)圖形學(xué)基本知識(shí)進(jìn)行融會(huì)貫通、綜合運(yùn)用的目的,這部分內(nèi)容也一直是計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)教學(xué)中的難點(diǎn)問(wèn)題。
表1 計(jì)算機(jī)圖形學(xué)課程實(shí)驗(yàn)項(xiàng)目
計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)教學(xué)平臺(tái)的框架如圖1所示,該平臺(tái)采用MFC和C++語(yǔ)言編程實(shí)現(xiàn),遵循MVC設(shè)計(jì)模式,由表示層、邏輯控制層、服務(wù)訪問(wèn)層和資源層組成。表示層封裝了平臺(tái)常用的各種操作窗口和二維/三維顯示視圖,所有計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)教學(xué)內(nèi)容都可在二維/三維視圖中展示運(yùn)行結(jié)果,平臺(tái)的通用功能及操作被封裝到不同窗口中;邏輯控制層實(shí)現(xiàn)了平臺(tái)的主要業(yè)務(wù)邏輯,與“地下病害信息三維可視化”和“地層數(shù)據(jù)三維可視化”實(shí)驗(yàn)教學(xué)子系統(tǒng)相關(guān)的數(shù)據(jù)處理算法被封裝在算法調(diào)度容器中,如克里金(Kriging)插值算法、不規(guī)則三角網(wǎng)(Irregular Triangulation Network, TIN)算法、粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法等。
圖1 面向礦業(yè)類高校的“計(jì)算機(jī)圖形學(xué)”實(shí)驗(yàn)教學(xué)平臺(tái)框架圖
在整個(gè)實(shí)驗(yàn)平臺(tái)中,計(jì)算機(jī)圖形學(xué)的實(shí)驗(yàn)內(nèi)容被限定在“渲染引擎容器”“自定義工具包容器”“管理容器”和“數(shù)據(jù)類型容器”中實(shí)現(xiàn),如圖1所示的紅色標(biāo)注部分。例如,學(xué)生可通過(guò)實(shí)現(xiàn)“自定義工具包”中的“軌跡球”功能使用鼠標(biāo)交互性地完成圖形的平移、旋轉(zhuǎn)、縮放等變換,可在“數(shù)學(xué)計(jì)算工具包”模塊中實(shí)現(xiàn)常見的數(shù)學(xué)計(jì)算(如矩陣運(yùn)算操作等)功能,在“數(shù)據(jù)類型容器”中可實(shí)現(xiàn)基本圖元的類型定義,在“基本圖元工具包”模塊中實(shí)現(xiàn)基本圖形(點(diǎn)、直線、圓弧、面等)的生成及填充,曲線和曲面以及真實(shí)感圖形繪制技術(shù)等功能可封裝在“渲染引擎容器”中實(shí)現(xiàn)。服務(wù)訪問(wèn)層實(shí)現(xiàn)了“地下病害信息三維可視化”和“地層數(shù)據(jù)三維可視化”實(shí)驗(yàn)教學(xué)子系統(tǒng)中相關(guān)數(shù)據(jù)類型的定義和封裝,及其數(shù)據(jù)的輸入和輸出操作功能,而資源層則實(shí)現(xiàn)了對(duì)探地雷達(dá)(Ground Penetrating Radar, GPR)數(shù)據(jù)(“地下病害信息三維可視化”實(shí)驗(yàn)教學(xué)子系統(tǒng)的基礎(chǔ)數(shù)據(jù))、地層數(shù)據(jù)及處理結(jié)果數(shù)據(jù)的存儲(chǔ)和管理。由于該實(shí)驗(yàn)平臺(tái)實(shí)現(xiàn)了地下病害信息和地層數(shù)據(jù)的“輸入→預(yù)處理→交互性操作→可視化顯示→結(jié)果輸出”的完整流程,使得學(xué)生可以更加深刻地理解計(jì)算機(jī)圖形學(xué)基本原理和行業(yè)可視化應(yīng)用的內(nèi)在關(guān)聯(lián),達(dá)到融會(huì)貫通、學(xué)以致用的目的。另外,由于平臺(tái)將計(jì)算機(jī)圖形學(xué)的實(shí)驗(yàn)內(nèi)容限定在“邏輯控制層”和“服務(wù)訪問(wèn)層”的特定模塊中實(shí)現(xiàn)(其他功能由平臺(tái)提供),大大降低了學(xué)生的實(shí)驗(yàn)難度,同時(shí)也激發(fā)了學(xué)生濃厚的學(xué)習(xí)興趣。
城市道路地下空洞、積水等病害容易引起道路的坍塌,這不但嚴(yán)重影響到人民的生命和財(cái)產(chǎn)安全,而且對(duì)地下基礎(chǔ)設(shè)施(如通信或排水設(shè)施)也造成了嚴(yán)重威脅?;谔降乩走_(dá)探測(cè)數(shù)據(jù),“地下病害信息三維可視化”實(shí)驗(yàn)教學(xué)子系統(tǒng)可完成對(duì)GPR數(shù)據(jù)的讀取、預(yù)處理、病害信息的交互性拾取以及二維/三維可視化展示等功能。如圖2所示,平臺(tái)封裝了對(duì)GPR數(shù)據(jù)的讀取和克里金插值預(yù)處理功能,可以采用普通克里金和基于PSO算法優(yōu)化的克里金等算法對(duì)GPR測(cè)線數(shù)據(jù)進(jìn)行插值處理,在X、Y和Z軸方向的插值點(diǎn)數(shù)量可以靈活定義。
圖2 克里金插值預(yù)處理界面
如圖3所示,預(yù)處理的數(shù)據(jù)在Z軸方向上包含6層,每層為6×6的正方形數(shù)據(jù),該數(shù)據(jù)可以分別在二維視圖和三維視圖中顯示,并利用“軌跡球”實(shí)現(xiàn)交互式的平移、旋轉(zhuǎn)、縮放等幾何變換(對(duì)應(yīng)實(shí)驗(yàn)4和5的內(nèi)容)。學(xué)生可在每層地質(zhì)數(shù)據(jù)上繪制封閉式的圓、橢圓和多邊形,以及開放式的折線段等來(lái)拾取地下病害信息(對(duì)應(yīng)實(shí)驗(yàn)2的內(nèi)容),平臺(tái)支持同時(shí)在每層地質(zhì)數(shù)據(jù)上拾取多種病害信息,如圖4所示。
圖3 預(yù)處理后數(shù)據(jù)的三維可視化
圖4 可視化拾取病害信息
在6層地質(zhì)數(shù)據(jù)上分別繪制拾取線后(見圖5),學(xué)生可選定所有或部分層實(shí)現(xiàn)三維病害體的建模及可視化顯示,如圖6所示。為了更形象地展示病害體信息,學(xué)生可以綜合運(yùn)用光照模型、透明處理技術(shù)、紋理映射和顏色模型等真實(shí)感繪制技術(shù)(對(duì)應(yīng)實(shí)驗(yàn)6的內(nèi)容),也可以實(shí)現(xiàn)對(duì)病害體的交互式平移、旋轉(zhuǎn)、縮放等操作(對(duì)應(yīng)實(shí)驗(yàn)5的內(nèi)容),進(jìn)而從不同角度觀察三維病害信息,如圖7所示。
圖5 所有層的病害信息拾取線顯示
圖6 三維病害信息可視化
圖7 三維病害信息平移、旋轉(zhuǎn)后可視化
為了觀察病害信息的影響范圍,學(xué)生也可以實(shí)現(xiàn)三維病害體向各坐標(biāo)平面的二維投影,并用不同顏色填充顯示(對(duì)應(yīng)實(shí)驗(yàn)3的內(nèi)容),如圖8所示。
“地層數(shù)據(jù)三維可視化”實(shí)驗(yàn)教學(xué)子系統(tǒng)可實(shí)現(xiàn)對(duì)地層數(shù)據(jù)、井位數(shù)據(jù)、測(cè)井?dāng)?shù)據(jù)、井斜數(shù)據(jù)及斷層數(shù)據(jù)的輸入、建模及二維和三維可視化操作。學(xué)生可以實(shí)現(xiàn)不同地層數(shù)據(jù)的全部或部分顯示,可在地層數(shù)據(jù)上繪制邊界(對(duì)應(yīng)實(shí)驗(yàn)2的內(nèi)容),如圖9所示。
圖8 XOY平面二維投影及填充
圖9 地層信息二維顯示及繪制邊界
基于該實(shí)驗(yàn)教學(xué)平臺(tái),學(xué)生可以部分或全部地顯示井位數(shù)據(jù)、測(cè)井?dāng)?shù)據(jù)及斷層數(shù)據(jù)(對(duì)應(yīng)實(shí)驗(yàn)2的內(nèi)容),可為不同類型的數(shù)據(jù)設(shè)置不同顏色進(jìn)行區(qū)分顯示(見圖10),也可以采用真實(shí)感圖形繪制技術(shù)對(duì)層面數(shù)據(jù)及井位、測(cè)井和斷層數(shù)據(jù)進(jìn)行綜合地三維可視化(對(duì)應(yīng)實(shí)驗(yàn)6的內(nèi)容),如圖11所示。
圖10 井位、測(cè)井及斷層信息顯示
學(xué)生也可對(duì)地層數(shù)據(jù)可實(shí)現(xiàn)三維平移、旋轉(zhuǎn)和縮放等操作(對(duì)應(yīng)實(shí)驗(yàn)5的內(nèi)容),也可以全部或部分地顯示地層數(shù)據(jù),如圖12所示。基于開發(fā)的計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)教學(xué)平臺(tái),學(xué)生不但可以單獨(dú)實(shí)現(xiàn)驗(yàn)證性實(shí)驗(yàn)項(xiàng)目,而且通過(guò)“地下病害信息三維可視化”和“地層數(shù)據(jù)三維可視化”兩個(gè)實(shí)驗(yàn)教學(xué)子系統(tǒng),可以深入全面地理解如何將計(jì)算機(jī)圖形學(xué)基本原理應(yīng)用到地下病害信息和地層數(shù)據(jù)的三維可視化工作中,在教學(xué)過(guò)程中受到了學(xué)生的普遍好評(píng),實(shí)踐證明基于開發(fā)的實(shí)驗(yàn)平臺(tái)進(jìn)行“計(jì)算機(jī)圖形學(xué)”的實(shí)驗(yàn)教學(xué)是行之有效的。
圖11 地層信息三維顯示
圖12 對(duì)地層數(shù)據(jù)實(shí)現(xiàn)平移和旋轉(zhuǎn)等操作
一直以來(lái),由于缺乏合適的教學(xué)平臺(tái),計(jì)算機(jī)圖形學(xué)的實(shí)驗(yàn)教學(xué)效果往往差強(qiáng)人意。高等教育的內(nèi)涵式發(fā)展,要求人才培養(yǎng)要由學(xué)科專業(yè)單一型向多學(xué)科融合型轉(zhuǎn)變,高等學(xué)校要探索適應(yīng)自身特點(diǎn)的培養(yǎng)模式。本文面向礦業(yè)類高校構(gòu)建了“計(jì)算機(jī)圖形學(xué)”實(shí)驗(yàn)教學(xué)平臺(tái),將圖形學(xué)的基本原理融入到礦業(yè)行業(yè)相關(guān)應(yīng)用的可視化工作中 ,不但激發(fā)了學(xué)生的學(xué)習(xí)興趣,而且深化了學(xué)生對(duì)計(jì)算機(jī)圖形學(xué)基本原理的理解,教學(xué)實(shí)踐證明了該平臺(tái)的有效性。