楊 斌
(滁州學院 計算機與信息工程學院,安徽 滁州 239012)
OPENGL 在計算機圖形學教學中的應用研究
楊 斌
(滁州學院 計算機與信息工程學院,安徽 滁州 239012)
計算機圖形學是計算機及相關學科的一門重要專業(yè)課,該課程理論性強,學習難度大。針對計算機圖形學教學中存在的問題,把OPENGL可視化編程技術應用到該課程的教學中,使抽象復雜的問題形象化,并設置具有應用背景的實驗項目,借此達到激發(fā)學生的學習興趣和培養(yǎng)學生實踐能力的目的,能夠有效地提高教學質量。
計算機圖形學;OPENGL;教學質量
計算機圖形學是研究如何利用計算機顯示和處理圖形的原理、方法和技術的一門學科,是計算機學科中發(fā)展最活躍、應用最廣泛的分支之一[1],在CAD/CAM、機械設計、計算機動畫、計算機藝術、虛擬現(xiàn)實、地理信息系統(tǒng)和科學計算可視化等領域都有重要的應用[2-4]。
在該課程教學過程中,學生十分容易表現(xiàn)出畏難的情緒,主要原因為:(1)課程內容偏重于抽象的理論,算法復雜且不易理解[5];(2)傳統(tǒng)的程序設計語言實現(xiàn)圖形可視化編程較為繁瑣,缺乏市場需求的支撐,尤其是三維圖形實驗更難以開展[6]。筆者把OPENGL可視化編程技術[7]應用到該課程的理論和實驗教學中,使學生從抽象的理解和復雜的數(shù)學計算中解脫出來,激發(fā)學生學習興趣,提高教學效果。
在教學實踐中,筆者發(fā)現(xiàn)該課程的教學問題主要體現(xiàn)在以下幾個方面:
計算機圖形學理論性強,部分算法抽象且以數(shù)學為依托,教學過程中過分強調課程的數(shù)學基礎,側重于算法原理的推導,而多數(shù)學生數(shù)學功底薄弱,故在學習過程中表現(xiàn)出畏難情緒;同時,其先修課程都是在低年級開設的,容易遺忘,而在計算機圖形學的課堂上又不可能花太多的時間進行先修課程的復習,從而使其成為部分學生難以逾越的障礙。
在設計實驗課程的環(huán)節(jié)中,部分教師對實驗項目的實際應用背景考慮不足。學生在實驗的過程中,只會根據(jù)教師的要求,對一些關鍵算法進行簡單的編程實現(xiàn),卻很難將所掌握的基本理論知識與相關應用領域建立起聯(lián)系,更談不上靈活應用與創(chuàng)新。這一做法使得原本很重要的實踐環(huán)節(jié)變成了理論學習的輔助部分,同時缺乏對算法的可視化顯示,極大地降低了實驗課程對學生的吸引力。
計算機圖形學開設在大三下學期,大部分同學把精力用于就業(yè)市場實際需求的應用技術的學習,傳統(tǒng)的計算機圖形學教學過程中只要求學生掌握一些圖形算法,缺乏對目前市場急需的可視化技術的介紹,如OPENGL技術,因此,大多數(shù)同學認為計算機圖形學不重要,學習的積極性不高,整個學習過程都很被動。
計算機圖形學算法豐富且抽象,而教材上相關的圖例又表達乏力,難以引導學生認知和理解。OPENGL編程技術不需要考慮復雜的數(shù)學計算過程,課堂上的實例演示使教學過程生動富有說服力,且該技術在市場上具有廣泛的應用前景,這樣不僅激發(fā)了學習學習興趣,同時為學生將來從事計算機圖形學相關的軟件開發(fā)奠定了堅實的基礎。以三維投影變換為例,投影變換研究如何在二維屏幕上顯示三維物體,可以分為:正射投影和透視投影[8]。正射投影的最大特點是無論物體距離視點多遠,投影后的物體大小尺寸不變。這種投影通常用在建筑藍圖繪制和計算機輔助設計等方面,這些行業(yè)要求投影后的物體尺寸及相互間的角度不變,以便施工或制造時物體比例大小正確。透視投影符合人們心理習慣,即離視點近的物體大,離視點遠的物體小,遠到極點即為消失,成為滅點。透視投影通常用于動畫、視覺仿真以及其它真實感圖形的繪制領域。實現(xiàn)這兩種投影變換的功能,需經過復雜的數(shù)學計算,要求學生具有較高的數(shù)學基礎,傳統(tǒng)的理論推導大部分學生難以接受,且最終投影的效果難以顯示,利用OPENGL編程技術,不需要學生具有扎實的數(shù)學基礎,且可視化的顯示方式使學生更容易接受,同時提高學生的實踐編程能力。下面為投影變換的OPENGL編程實例,其中圖1演示了投影變換的可視化效果,從圖1(a-b)可以看出,每幅圖上繪制的兩個與視點距離不同的茶壺,正射投影繪制效果為兩個茶壺的大小相同,透視投影繪制效果為距視點近的茶壺較大,距視點遠的茶壺較小。
圖1 投影變換可視化效果
計算機圖形學的實驗教學是計算機圖形學理論教學的必要補充和重要環(huán)節(jié),它可以幫助學生鞏固課堂教學成果,增強動手能力,有利于他們更好地掌握和理解計算機圖形學知識,實現(xiàn)理論與實際相聯(lián)系。傳統(tǒng)的實驗過程采用Visual C++6.0作為開發(fā)環(huán)境,在這種環(huán)境下只能進行一些簡單的圖形算法編程,如二維圖形生成、區(qū)域填充、圖形變換等實驗,無法進行如三維圖形生成、紋理貼圖、光照、視點變換等實驗。這一缺陷極大地限制了具有實際應用背景實驗的開展。目前,我校在計算機圖形學實驗中引入了OpenGL,所有的實驗都要求在安裝了GLUT的Visual C++6.0的環(huán)境下進行,設置了一些具有實際應用背景的實驗項目,提高了學生圖形軟件的實踐開發(fā)能力。以下列舉兩個實驗教學案例:
(1)月球車漫游仿真系統(tǒng)的設計與實現(xiàn)。
要求該漫游系統(tǒng)實現(xiàn)月球車在月球上運動場景的仿真,并且能夠人工控制月球車的運動和一些必要的功能操作,通過方向鍵控制月球車的前進后退與左右旋轉操作,通過功能鍵控制太陽能電池板的伸展,電子眼的方向掃描,以及機械手臂的各種運動等。
(2)教室漫游系統(tǒng)的設計與實現(xiàn)。
圖2 月球車漫游系統(tǒng)的繪制
圖3 教室漫游系統(tǒng)的繪制
要求該漫游系統(tǒng)具有較強的真實感效果,教室內物體布局合理,光線效果良好,并且要求系統(tǒng)能夠實時響應鍵盤的操作,且人機界面友好。圖2和圖3是學生完成以上兩個實驗項目的效果圖,通過設置此類具有實際應用背景的實驗項目,激發(fā)了學生對圖形學的熱愛,使學生具有強烈的求知欲,提高了學生實際圖形軟件的開發(fā)能力,克服了傳統(tǒng)圖形學實驗教學存在的弊端。
本文基于當前計算機圖形學教學的實際情況,立足于本?!皯眯腿瞬排囵B(yǎng)”模式的改革。把OPENGL編程技術應用到該課程的理論和實驗教學中,實踐表明,該方法能很好地激發(fā)學生的學習熱情,迅速培養(yǎng)和提高學生實際的動手操作能力,為學生將來從事圖形軟件的開發(fā)奠定良好的基礎。
[1]孔令德.計算機圖形學基礎教程(Visual C++版)[M].北京:清華大學出版社,2008:4-5.
[2]?ZTIRELI A C,ALEXA M,GROSS M H.Spectral sampling of manifolds[C]//Proceedings of ACM SIGGRAPH A-sia.New York:ACM Press,2010:1-7.
[3]DURANLEAU F,BEAUDOIN P,POULIN P.Multiresolution point-set surfaces[C]//Proceedings of Graphics Interface 2008.Canada:Canadian Information Processing Society,2008:211-218.
[4]SUN W,BRADLEY C,ZHANG,Y F.Cloud data modeling employing a unified,non-redundant triangular mesh[J].Computer-Aided Design,2001,33(2):183-193.
[5]孔令德,劉晉鋼.應用型工科院校計算機圖形學教學模式改革[J].計算機教育,2011(18):20-22.
[6]王艷春,張金政,李紹靜.計算機圖形學課程教學思考[J].計算機教育,2011(14):63-66.
[7]EDWARD A.OpenGL:A Primer[M].New Jersey:Pearson Education,2008:20-25.
[8]陸 楓,何云峰.計算機圖形學基礎[M].北京:電子工業(yè)出版社,2008:115-118.
G642
A
1673-1794(2012)05-0105-03
楊 斌(1981-),男,講師,碩士,研究方向:計算機圖形學。
滁州學院數(shù)學建模教學與競賽團隊建設項目 (2011jxtd01)
2012-03-27