摘 要:通過對《計算機圖形學》課程教學及實踐中存在問題進行深刻思考,提出以構建圖形系統(tǒng)為路線貫穿課程的理論和實驗課教學的方法。在教學過程中,結合圖形學算法原理介紹了Visual C++和OpenGL構建圖形系統(tǒng)的相關技術,包括變換、光照和材質等,讓學生進行基礎算法(如DDA、正負法等)的實驗,通過解讀政策背景和成功案例提升學生學習興趣,并結合OpenGL自帶命令進行對比提升學生的應用水平,在教學過程中逐步完善學生各自的圖形系統(tǒng)。通過在教學過程中采用該方法,學生學習興趣增強、動手能力普遍提高,理論水平也得到提升,教學效果的提升明顯。
關鍵詞:計算機圖形學 OpenGL 教學改革
中圖分類號:G64 文獻標識碼:A 文章編號:1673-9795(2013)08(a)-0163-02
Computer Graphics Teaching Reform Based on Computer
Graphics System Construction
Fang Xiaoyong,Luo Qingyun,Huang Ying
(School of Computer and Information Science,Hunan Institute of Technology,Hengyang Hunan,China 421002)
Abstract: Through the thinking of the problems in theoretical and experimental teaching of the course: Computer Graphics, we proposed a new computer graphics course teaching scheme based on a main route of graphics system construction. In teaching process, OpenGL and Visual C++ were used to construct the system by the accompany of introduction of basic algorithms, including transformation, lighting and material and so on, let the student to experiment on the basic algorithm (such as DDA, positive and negative method, etc.) in the system, to improve students’study interest through the interpretation of the policy background and successful cases, compared with OpenGL own functions to improve students’ application level, gradually perfect the students’ graphics system in the teaching process.By using this new method in the teaching process, the learning interest was enhanced, the students’ programming ability enhancement was rised generally, the theory level also get promoted, and the ascension of teaching effect was obvious.
Key Words:Computer Graphics;OpenGL;Teaching Reform
計算機圖形學[1](Computer Graphics, CG)是用計算機構建三維物體或場景的數(shù)字模型,將其顯示在計算機顯示在顯示設備或者打印到紙張或膠片上。從研究角度而言,計算機圖形學研究包括:圖形描述和構建、圖形變換和相關處理、圖形渲染以及人機交互界面幾個部分。計算機圖形學不同于單純用幾何方法研究圖形的各種幾何學,也不同于用一般數(shù)學證明和計算機研究各種圖形的純數(shù)學方法,而是用計算機便于處理的數(shù)學方法來研究各種圖形的表示和處理等,并把處理結果輸出到顯示設備進行顯示[2]。要使得顯示設備顯示的物體更接近于真實或者研究人員預期的效果,具體涉及到技術領域包括物體幾何表示、紋理、材質、光照效果、霧效、幾何變換、投影變換等。目前計算機圖形學研究領域都有相關的算法可以提供研究,但在教學中單純的理論教學具有一定的不足,難以直觀地展現(xiàn)算法的作用。在這種背景下,考慮到OpenGL(Open Graphics Library,開放式圖形函數(shù)庫)對這些算法都有著良好的封裝而且非常容易構建三維環(huán)境,結合Open
GL,我們考慮在教學過程中構建三維圖形系統(tǒng)并融合相關算法進行教學,使得學生在理論學習的過程中實踐,加強教學效果。
1 OpenGL與計算機圖形學教學
1.1 OpenGL與計算機圖形學
OpenGL是由美國SGI公司開發(fā)的三維圖形設計軟件,實際上是一種圖形與硬件的接口,被認為是高性能圖形和交互式視景處理標準。OpenGL是一個功能強大的圖形函數(shù)庫,可以支持比如:繪制三維物體、對三維物體進行光照、明暗處理、材質和紋理設置、霧效、裁剪、消隱、幾何和投影變換等。因此,在仿真三維立體建模、虛擬現(xiàn)實技術、3D游戲開發(fā)等領域,OpenGL起著重要的作用。OpenGL不僅可以運行在各種不同的操作系統(tǒng)上,還能被不同語言(C、C++等)編寫的程序調用,在Java、Fortran 90、Perl、Pike、Python、Ada和Visual Basic也可以對OpenGL進行綁定[3],因此,其應用范圍非常廣,是目前最流行的圖形開發(fā)工具。當前,Microsoft公司開發(fā)的面向對象的可視化軟件開發(fā)工具Visual C++6.0中已經(jīng)集成OpenGL在三維圖形教學、設計和研究領域得到廣泛應用。
1.2 計算機圖形學教學特點
計算機圖形學是一門比較有趣的課程,主要體現(xiàn)在:首先,圖形學應用廣泛,尤其是在影視及游戲方面,能夠抓住學生的吸引力;其次,圖形學理論主干比較直觀,如圖形學研究領域注重圖形的建模、變換或變形、渲染及顯示對于學生理解沒有繁重的認知負荷;再次,計算機圖形學應用廣泛,是一門實用的學科,對于學生的理論和技能提升有幫助,也有助于就業(yè)。
傳統(tǒng)計算機圖形學教學模式側重理論教學,近年來逐步提升了實踐教學的地位,積極調動學生積極性。雖然多數(shù)學生反映計算機圖形學是一門有趣的課程,但是在教學過程中,學生普遍反映比較難。主要因為:首先,圖形學教學本身涉及的學科領域較多,包括計算機程序設計、數(shù)學、幾何學、物理等等,學科交叉繁雜且發(fā)展日新月異;其次,計算機圖形學涉及到大量的算法,且大多較為復雜,如果學生想更直觀的了解算法效果,實現(xiàn)起來大多很難;再次,圖形學課程大多要求理論和實踐相結合,然而,一方面實踐課程占據(jù)比例有限,學生在實踐課上不能得到充足的實踐反饋;另一方面,實驗課程安排必須考慮到學生的編程能力,因此,實踐課的開展也具備一定的限制。
2 基于圖形系統(tǒng)構建為路線的教改方法
目前計算機圖形學教學面臨的現(xiàn)狀是如何主動提升學生的學習自主積極性,讓學生在理論和實踐齊頭并進,本文提出了基于圖形系統(tǒng)構建為路線的教學方法。
2.1 理論教學穿插圖形系統(tǒng)平臺講解
計算機圖形學是一門注重實踐的學科,要求學生具備動手編寫、調試和實現(xiàn)算法的能力,掌握圖形系統(tǒng)的特性,具備理論指導實踐開發(fā)的基礎。然而,傳統(tǒng)的計算機圖形學教學完全側重于理論教學,雖然隨著近年教學改革的發(fā)展,越來越多的高校增加了上機課,但是上機課程的比例不足。不僅如此,計算機圖形學課程的上機課程涉及的程序語言較多,如程序編譯平臺如Turbo C、Visual C++、Borland C++等,程序語言有C語言、C++語言等,還需要了解OpenGL庫及其函數(shù)調用方法,這對學生的動手能力有更高要求。因此,為了讓學生更深入地進行圖形算法實踐,作者在教學過程中試圖讓學生自己構建一個圖形系統(tǒng),需要有一定的人機界面,并且在學期結束時作為平時成績的重要部分。
Visual C++和OpenGL有著良好的接口,因此,作者在教學過程中,使用Visual C++和OpenGL作為圖形系統(tǒng)開發(fā)的工具。在教學過程中,讓學生了解Visual C++,需要讓學生了解Visual C++平臺,熟悉MFC和面向對象的概念,因為實驗課程需要構建MFC單文檔應用程序,調用OpenGL函數(shù)構建圖形編程環(huán)境。講解圖形系統(tǒng)的架構,包括數(shù)據(jù)結構部分、算法部分、人機界面部分、MFC類部分及各部分之間的邏輯關聯(lián),如消息響應、程序和數(shù)值調用等等。
數(shù)據(jù)結構包括二維點、三維點、線、平面等;算法部分包含了圖形學涉及的方方面面的算法,如幾何變換及組合變換算法、投影變換算法、光柵圖形算法、裁剪及消隱算法等等;人機界面部分要考慮模型構建(如添加幾何物體)、變換的參數(shù)等設置的菜單響應和對話框調用;MFC類部分的介紹需要讓學生了解MFC各個類的設計意圖。將這些技術或理論的要點在理論教學的時候,結合適當?shù)睦碚摻裹c進行穿插講解。
這樣一來,一方面能提升學生的學習興趣,激發(fā)學生自發(fā)學習相關編程技術;另一方面也能更大程度地提升上機課的效率,讓學生不再感到盲目和無所適從。
2.2 實踐教學過程逐步完善圖形系統(tǒng),提升學習積極性
課程安排為理論課36學時,實踐課程12個學時,學生總共有6次上機機會。在實踐課程中,我們設計了6個實驗,都是為提升學生的動手能力,逐步掌握圖形學理論及系統(tǒng)開發(fā)的技巧。6個實驗依次如下:(1)基于Visual C++和OpenGL的三維圖形環(huán)境構建和熟悉;(2)光柵圖形算法的實驗;(3)幾何模型構建和變換(二維);(4)幾何模型構建和變換(三維);(5)裁剪和消隱算法實驗;(6)光照和材質設置實驗。通過這六個實驗,讓學生掌握了圖形學基礎算法的構造和實現(xiàn),并且在這個過程,讓學生了解MFC、面向對象編程等原理。這六個實驗過程也是圖形系統(tǒng)的完善過程,在課程開始之初就告訴同學們需要構建一個自己的系統(tǒng),通過逐步完善,大大提高了學生的學習積極性。
2.3 以學科實用性激發(fā)學習動力
圖形學是一門交叉學科,應用面非常廣泛。在理論教學的過程中,通過一些特定案例激發(fā)學生興趣,讓學生感覺這對于自身的知識、技能、就業(yè)以及發(fā)展有一定幫助,從而從自發(fā)到自主學習,進一步發(fā)揮學生學習的主觀能動性。在教學過程中,一方面通過政策解讀和社會背景分析讓學生感覺學習圖形學具有較大的發(fā)展前景,如在政策方面“十二五”規(guī)劃在加快文化產(chǎn)業(yè)發(fā)展中,將推動文化產(chǎn)業(yè)成為國民經(jīng)濟支柱性產(chǎn)業(yè),增強文化產(chǎn)業(yè)的整體實力和競爭力。文化產(chǎn)業(yè)和圖形學有著密不可分的關聯(lián),這就意味著圖形學知識的掌握將具有廣闊的施展空間。相關的政策還有《文化部“十二五”時期文化產(chǎn)業(yè)倍增計劃》等等。作者通過分析一些廣為人知、特別是學生所熟知的案例,讓學生堅定學習計算機圖形學的決心。讓學生熟知文化產(chǎn)業(yè)鏈概念,包括廣告、影視、圖書、音像、動漫、玩具、文體用品等等。通過例如成功電影《泰坦尼克》《阿凡達》等、熱門游戲《魔獸世界》《穿越火線》等的介紹,讓學生感受到圖形學不但是他們生活之中,具有魅力也具有深厚的學習價值。
在理論教學過程中,不但介紹一些游戲和電影以及圖形學在其他方面的成功應用,還可以結合理論教學更深層次的剖析幕后制作技術。作者在教學的過程中,通過剪輯《阿凡達》的幕后制作視頻,讓學生了解動漫電影的最新制作技術,結合理論進行教學,收到了良好的反饋。
2.4 比較對應OpenGL函數(shù),面向應用
傳統(tǒng)的計算機圖形學的教學目的是讓學生了解圖形從構建到顯示中涉及到的一些算法和原理。隨著計算機技術的發(fā)展和普及,計算機圖形學教學對學生提出了更高的要求,最終目的是為提升學生面向社會的競爭力。因此,計算機圖形學教學在注重理論教學的同時,還要面向應用。
在課堂教學中穿插對系統(tǒng)研發(fā)技術的探討,解析程序開發(fā)平臺的使用,講授圖形學算法。在實踐上機課程中,結合Visual C++和OpenGL構建的圖形環(huán)境,需要實現(xiàn)基礎的圖形學算法,如光柵圖形算法、模型構建和變換、裁剪和消隱等等。相比之下,OpenGL本身具備對應的算法接口,并且調用方便。考慮到目前圖形系統(tǒng)開發(fā)普遍采用OpenGL的情況,作者認為在應用層面,使用OpenGL自帶的函數(shù)接口將更加有助于圖形系統(tǒng)開發(fā)。因此,在上機實踐過程中,作者首先要求學生完成基礎圖形學算法的編寫和調試,在此基礎上,介紹對應的OpenGL函數(shù)及其調用方法,讓學生了解應用層面的圖形系統(tǒng)開發(fā)的技術。
舉例說明,對于光柵圖形算法DDA算法而言,我們需要編寫對應的函數(shù):
void DDA(int x0, int y0, int x1, int y1){……}
而對于OpenGL而言,需要四個語句:
glBegin(GL_LINES);
glVertex2d(x0,y0);
glVertex2d(x1,y1);
glEnd();
在介紹完glBegin和glEnd繪制圖形的規(guī)則后,作者延伸講解三維線段的繪制等命令,讓學生對OpenGL繪圖指令有更進一步理解。
3 結語
隨著計算機科學理論及技術的發(fā)展,當前計算機圖形學教學面臨著新的問題,同時也有機遇和挑戰(zhàn)。高等教育的目標是培養(yǎng)能夠適應社會的人才,因此,人才培養(yǎng)一定要注意理論教學和實踐教學兩手抓,從更深層次提高學生學習的自主和自覺能動性,提升學生面對社會挑戰(zhàn)的能力。通過基于圖形系統(tǒng)構建的計算機圖形學教學改革,學生學習興趣增強、動手能力普遍提高,理論水平也得到提升,教學效果的提升明顯。
今后隨著計算機圖形學應用越來越廣泛,發(fā)展越來越迅猛,計算機圖形學教學實踐中還需要進一步改進教學模式,不斷提高教學質量,培養(yǎng)學生的綜合應用能力和創(chuàng)新能力[4~5]。
參考文獻:
[1]Foley JD, Dam Av,F(xiàn)einer SK,Hughes JF,phillips RL:Introduction to Computer Graphics[M].Addison-Wesley Publishing Co,1994.
[2]張彩明,楊興強,李學慶.計算機圖形學[M].2版.北京:科學出版社,2008.
[3]OpenGL官方網(wǎng)站:www.OpenGL.org[EB/OL].
[4]魯敏,于慧穎,鄭平剛.信息工程專業(yè)計算機圖形學教學模式思考[J].高等教育研究學報,2006(9):31-33.
[5]王玉琨,王永茂.“計算機圖形學”課程改革與創(chuàng)新探索[J].高等理科教育,2008(1):134-136.