前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的計算機圖形學課程主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞:計算機圖形學;教學方法;上機實踐
計算機圖形學是伴隨著計算機及其他設備的發展而產生的,是一門研究怎樣利用計算機表示、生成、處理和顯示圖形的原理、算法、方法和技術的學科[1-2]。目前,計算機圖形學已經成為計算機學科中發展最活躍、應用最廣泛的分支之一,成為許多計算機從業人員的必備素質之一,也是計算機及相關專業本科生的一門專業選修課。該課程在我校已經開設了多年,其教學任務是本著理論與實踐相結合的原則,以基本概念、算法原理和實踐技術為主線,使學生掌握計算機圖形生成與處理技術的基礎知識、基本原理和方法,培養學生的實際動手能力。然而,歷年的教學工作中發現,由于該課程學科內容豐富、理論難度大、實踐性強,且作為專業限選課學時又有限,導致了學生對所學內容不易掌握,疲于應付,甚至產生學生厭學、教學低效等現象。
因此,如何提高學生的學習興趣,增加課堂信息量,解決課時少與內容多的矛盾、理論與實踐的矛盾,是計算機圖形學教學工作中一個非常值得思考的問題。本文面向計算機科學與技術專業,在分析計算機圖形學教學中存在問題的基礎上,針對該課程的學科特點和學生的特點,根據筆者近年來在教學實踐中的親身體會,探討一種新的教學思路和方法。
1計算機圖形學的學科特點
計算機圖形學是一門理論和實踐兼顧、綜合性很強的交叉學科,涉及內容和應用領域都很廣泛。它涵蓋了計算機科學、數學、物理學等其他相關學科的知識,學科交叉繁雜,且整個學科的發展日新月異。同時,該課程對高等數學、線性代數等基礎數學有較高的要求,以數據結構、計算機高級語言、圖形基本原理等為先導課程。因此,要將這樣一門課的內容保質保量地傳授給學生,不是一件容易的事,需要積極探討新的教學方法和教學思路。
2教學中存在的問題
在教學實踐中,筆者發現該課程的教學問題主要體現在以下幾個方面:
1) 理論基礎要求高,教學效果差。計算機圖形學理論性強,部分算法抽象且以數學為依托,教學過程中過分強調課程的數學基礎,側重于算法原理的推導,而多數學生數學功底薄弱,故在學習過程中表現出畏難情緒;同時,其先修課程都是在低年級開設的,容易遺忘,而在計算機圖形學的課堂上又不可能花太多的時間進行先修課程的復習,從而使其成為部分學生難以逾越的障礙。
2) 教學內容多,知識點分散。計算機圖形學涉及的方法原理很多,教學內容易面面俱到,導致學生只掌握了分散的知識點,沒有形成一條完整的知識鏈,學生對所學知識無所適從,失去學習的目標,極大影響了學生的學習熱情;同時,教學內容只局限于經典的算法原理,面向學科前沿動態的內容涉及較少,不利于開闊學生視野,激發他們自主學習的意識和興趣。
3) 實驗課比例較小且實踐環節滯后。計算機圖形學也是一門實踐性很強的學科[3-4],上機實踐是培養學生動手能力的主要手段,也是學好這門課的必要手段。但是,由于總課時的壓縮,實驗課時很少,僅提供8學時,使原本很重要的實踐活動變成了搭配;上機實習平臺采用的是目前已不作為主要開發工具的Turbo C,致使學生不能在實驗中獲得將來就業環境下需要掌握的編程知識,上機興趣不高,同時大部分學生本身的編程能力也不強,最終導致學生喪失編程的興趣和能力。
4) 學生積極性不高。計算機圖形學開設在大三上學期,大部分同學把精力用在考研和考公務員等方面,而這門課不是考研的必考課,學分也不高,因此,大多數同學認為圖形學不重要,學習的積極性不高,整個學習過程都很被動。
3教學思路探討
計算機圖形學的教學目標之一,就是通過本課程的學習,使學生對計算機圖形學有一個全面、感性的認識,理解并掌握部分經典算法,了解當前的研究熱點。根據這一實際要求,提出了計算機圖形學課程的總體教學思路。在教學中,以基本理論和算法原理為主線,以Turbo C、OpenGL等軟件為載體,對圖形學內容進行整體優化,加以創新處理,采用多種教學方式,加強理論與實踐的結合,通過正確引導,激發學生的興趣,挖掘學生的潛能,最終培養學生的邏輯思維能力和實際動手能力。以下筆者將根據自身的教學實踐來闡述該課程教學過程中的認識和做法。
3.1上好緒論課,激發學生的學習興趣
教學過程中調查發現,大多數學生對計算機圖形學采取的是一種敬而遠之的態度。首先,他們通過計算機圖形學在娛樂、廣告等領域的廣泛應用充分感受到該課程的生動有趣及實用性,對該課程飽含熱情;而與此同時,在他們的印象中,計算機圖形學涉及學科很多,尤其數學公式很多,很多內容難以理解和掌握,故他們又對學好這門課充滿懷疑。也正是這種期望與現實的失衡成為打擊學生學習熱情的“元兇”。因此,我們應該重視緒論課,并以此作為突破口,通過查閱大量資料,結合目前圖形學的發展動向,根據所講授內容,充分利用多種教學手段,將圖形學知識融匯貫通起來,讓學生在不知不覺中了解并接受計算機圖形學,解除他們的疑惑,鼓舞他們的熱情。如在介紹圖形學在虛擬現實的應用時,可以插入一段視頻,模擬人在虛擬場景中漫步,不但可以講明具體應用,而且學生易于接受,印象深刻。
3.2教學內容
計算機圖形學內容深而廣,知識更新快,教學工作者需要在有限的學時內,即兼顧基礎知識又能反映計算機圖形學的研究進展,因此,教學過程中,在教學內容上要注意以下幾點:
1) 根據學生的接受程度,精選核心內容,壓縮或屏蔽部分知識,使學生專注于必要知識的學習,從而提高教學效率和教學質量。我們的教學內容主要包括:圖形變換、光柵圖形學、幾何造型、圖形裁剪及真實感圖形繪制。其中,前兩部分相比較而言,是基礎,內容較簡單,講解要深入一些,保證該部分理論具有“點”的深度,如幾何變換,包括;平移、旋轉、縮放等變換,以及幾何變換的矩陣表示形式和復合變換的多矩陣組合形式,此外還要說明齊次坐標引入的必要性;幾何造型中,尤其是曲線曲面造型部分,要根據學生的實際情況來決定內容的深淺。對于曲面,難度較大,理解起來比較困難,不適合本科生的學習,故其生成算法完全被屏蔽;而曲線的生成算法雖較曲面易理解,但也不能過于深入,這里只重點介紹B樣條曲線和貝塞爾曲線的生成技術和特點,并且講解過程中,結合現實生活的例子,引入具體應用,如在汽車、飛機外形設計中的應用;裁減計算,也是計算機圖形學的核心,這里重點講解直線段的裁剪算法和多邊形裁剪算法;對于真實感圖形繪制部分,由于涉及的知識面廣,理論深,同樣不適合本科生的學習,故這一部分內容只介紹一些基本概念。總之,上述的內容涉及許多概念和算法,要求學生把重點放在基本概念和算法的思想上,不強調學生去掌握和實現算法的具體細節,但要求掌握幾個經典的算法。
2) 注重基礎,強調基本原理和基本概念的理解,同時還要突出重點、重視應用。對一些要求學生掌握的經典算法,如Bresenhan算法,掃描線填充算法等,要重點講授,仔細分析,強調其基本原理和基本思想,并在學生理解掌握的基礎上,結合具體實例的剖析,告訴學生理論和實際應用的切入點,給予學生理論結合實際的基點,激發學生興趣,逐步培養他們的科研能力。
3) 制定教學內容時還應跟上時代步伐,介紹一些最新的學科前沿和研究進展,一方面增加理論教學的趣味性,另一方面使學生對學科前沿有一個概念性的直觀理解,增加學習興趣,拓寬他們的知識面,從而為學生從事該領域的應用開發或研究工作打下良好基礎。
3.3理論教學
計算機圖形學的教學應采取課堂講授為主、上機實驗為輔、以學生為主體、教師為主導的教學模式。為達到教學效果,理論教學應從以下幾方面加強:
1) 加強可視化教學。
計算機圖形學的很多算法理論性很強,數學模型也比較抽象,單純采用文字敘述附以靜態圖片的PPT形式的教學手段,教學效果并不理想,尤其是對于一些經典或復雜的算法,效果更差。因此,應充分利用目前流行的課件制作工具,如Flash、OpenGL等,制作經典算法的仿真演示,使晦澀難懂的原理公式變成栩栩如生的畫面。筆者在講授經典算法時,將其原理用Flash做成動畫插入到PPT中,使學生可以直觀感受到算法的效果,提高了課堂氣氛,增加了學生的學習興趣。
2) 注重啟發式教學。
平鋪直敘、滿堂灌的教學方法只會讓學生感到枯燥、乏味,從而影響他們的學習積極性和主動性。尤其在講授以數學知識為支撐的算法時,切忌繁瑣復雜的公式推導和連篇累牘的算法分析,避免學生的煩躁情緒,而應采用啟發式教學方法,通過“提出問題同學解答問題分析問題解決問題分析解決方法的優缺點”的思路,引導學生思考,層層深入、逐步展開,充分調動學生的學習積極性。例如在講解多邊形裁剪時,首先啟發學生多邊形是由線段組成的,是否可以將線段裁剪方法用于多邊形裁剪?學生點點頭,然后接著問,那么是否適用呢?學生進入了思考的狀態,這時借助課件給出采用線段裁剪算法對多邊形進行裁剪得到的裁剪結果,并給出一個否定的答案,繼續提問為什么會不適用?引導學生進一步思考,然后進行分析,給出不適用的原因,在線段裁剪算法中,是把一條線段的兩個端點孤立地加以考慮,而多邊形是由一些有序的線段組成,要求裁剪后的多邊形仍保持原多邊形各邊的連接順序。既然這個算法不適用,就應該尋找一種有效的裁剪算法,接著引入多邊形的逐邊裁剪算法。介紹完逐邊裁剪算法后,繼續啟發學生思考,這種算法是否適用于所有的多邊形?學生會給出肯定的回答,這時進一步啟發,如果是凹多邊形,逐邊裁減算法是否適用,如果不適用,如何改進?這可能是學生沒有預料到的,他們會對接下來的內容表現出濃厚的學習興趣,進一步分析,當多邊形為凹多邊形,且裁剪后的多邊形有兩個或多個分離部分的時候,由于只有一個輸出頂點表,表中最后一個頂點總是連著第一個頂點,會出現多余連線的現象,這就是下一步需要改進的地方,而邊界裁剪算法則可以避免這一問題。再如,在講解直線段的繪制時,首先讓學生自己設計一個算法,這時幾乎全部的學生都會給出直線段生成的普通算法,即根據直線方程,通過設置x取值范圍,求出屏幕的一系列點,然后提問學生,從算法效率角度來看,普通算法存在怎樣的問題,引導學生思考,最后引入直線段的繪制算法。因此,啟發式教學方法可以給學生主動思維和積極思維的空間,將學生一步步帶入算法設計中,有效提高教學質量。
3) 做好課前回顧。
以目前課程開設時間和學生的實際情況,要求學生課后復習課前預習似乎是強人所難。為了加強知識的連貫性,鞏固所學知識,應該在課前拿出較短時間對上堂課的學習內容進行簡單回顧,然后過渡到新的教學內容。
3.4實踐教學
實踐教學是理論教學的深化和補充,是學好計算機圖形學的重要保證,也是培養學生動手能力的有力武器。因此,教學過程中要加強實踐教學,將理論教學和實踐教學密切結合起來。
1) 實驗題目層次化。
根據大綱要求,結合學生的實際情況,將實踐教學由淺到深分層次進行。我們共有8個學時的實驗,按照由淺到深的原則安排了4個小實驗:直線生成、圖形變換、裁剪計算、曲線生成,以及1個綜合性實驗。對于驗證型實驗,即那些有代表性的算法,如直線生成、裁剪計算等,要求每個學生根據教材的子程序親自動手實現,加強對課堂所學基本算法的理解,培養他們的成就感,并且,題目的要求也隨著難易程度發生變化,如直線生成算法比較簡單,要求學生實現的算法必須具有通用性,同時,為增加學生的學習興趣,可以巧妙設計實驗內容,如在實現直線生成算法時,可以讓學生畫線生成漢字;圖形變換主要讓學生實現二維圖形的變換,包括平移、旋轉、縮放及復合變換等內容,由于這一實驗包含多個操作,要求學生增加菜單選擇功能;裁剪計算要求實現線段裁剪算法,從易操作的角度出發,要求算法采用交互式的畫線方法;曲線生成算法要求學生采用根據參數曲線定義的方法來實現,對于編程能力強的同學,在曲線生成的基礎上,增加鼠標拖動控制點改變曲線形狀的要求。對于綜合型實驗項目,學生可根據自身學習能力和實踐能力選擇獨立完成或合作完成,通過綜合型實踐訓練,不但培養了學生的動手能力和創新意識,而且還培養了他們的團隊協作精神。
2) 開發環境多元化。
完善教學內容,擴展學生的知識面,實踐教學采用開發環境的聯合。對于驗證性實驗,學生可在Turbo C環境中實現,而對于綜合性實驗,鼓勵學生基于OpenGL進行編程。讓學生提前介入到使用OpenGL編寫“應用軟件”,不但可以滿足學生的興趣,還可以提高學生的實際動手能力。
4結語
計算機圖形學是一門不斷發展的交叉學科,其教學方法需要在實踐中不斷探索。我們教學工作者在研究高效率的教學手段和教學方法的同時,還應積極參與教學內容相關的科研工作,從而更加明確教學重點和難點,做到在教學過程中有的放矢,激發學生學習和思考的積極性和主動性。
參考文獻:
[1] 何援軍. 計算機圖形學[M]. 2版. 北京:機械工業出版社,2009:2.
[2] 吳元斌.“計算機圖形學”教學的幾點體會[J]. 安康師專學報,2004(4):119-121.
[3] 魯敏,于慧穎,鄭平剛. 信息工程專業計算機圖形學教學模式思考[J]. 高等教育研究學報,2006,29(3):31-33.
[4] 潘革生,何援軍,趙峻穎. 計算機圖形學教學理念的研究與實踐[R]. 煙臺:第一屆中國圖學大會,2007:476-479.
The Thinking of Teaching on Computer Graphics
WANG Yanchun, ZHANG Jinzheng, LI Shaojing
(Science and Information College, Qingdao Agricultural University, Qingdao 266109, China)
關鍵詞 計算機圖形學 第三方演示 課程群 分組實踐
Abstract At present, computer graphics has become an important part of undergraduate computer education, and it is also plays an important role to cultivate innovative talents to adapt to the information age. Based on the teaching of computer graphics course by the author as an example, analyzes the existing problems in the teaching of computer graphics, and put forward improvement ideas from three aspects: according to the different needs of students utilizing the third party demonstration teaching and cross curriculum interpretation, introducing course group to replace single course, employing group practice examination instead of individual, and other forms to improve the quality of teaching.
Keywords computer graphics; third party demonstration; course group; group practic
計算機圖形學是一門介紹顯示、生成和處理計算機圖形的原理和方法的課程。它在計算機總體教學體系中屬內容綜合性較強且發展迅速的方向之一。該課程既有具體的圖形軟硬件實現,又有抽象的理論和算法,旨在為學生從事相關工作打下堅實基礎。學生須以高等數學和線性代數的基本理論和較熟練的程序設計能力作為本課程學習的基礎。課程的難點在于計算機圖形學研究范圍廣,與其他學科交叉性強,且知識不斷更新變化。在教學實施過程中,難點是理解和掌握相應的基礎理論和算法,以及利用計算機圖形學相關工具進行圖形學實際問題的解決。
本課程對學生的培養學生圍繞以下三個方面展開: (1)建立對計算機圖形學的基本認識,理解圖形的表示與數據結構、曲線曲面的基本概念。(2)理解并掌握基本圖形的生成算法,并能對現有的算法進行改進,理解圖形的變換和裁減算法。 (3)面向算機圖形的程序設計能力,以底層圖形生成算法為核心構建應用程序。相應的考查方式由理論授課、上機實習和課外作業三個單元構成。從近年的授課實踐和考試情況分析,該教學內容難度設置合理,深入淺出且相互承接成為體系,學生總體反饋良好。但也存在一些矛盾和問題。以下將對幾個問題進行重點闡述與思考,并提出課程改革思路。
1 計算機圖形學與計算機輔助設計銜接問題
筆者所在院校是具有航空航天背景的工科院校,“CAD計算機輔助設計”是飛行器設計、機械設計與制造等多學科的重要課程。相關學科學生期望通過對計算機圖形學知識的深入理解,促進CAD設計工具諸如Catia、Solidwork和Rhino等先進工具的運用能力。然而,目前的計算機圖形學課程的教學和考察環節倚重低層算法講解與基于OPENGL等的程序設計,除綜述外并未具體引入CAD相關內容。產生的問題是,一方面,飛行器設計及機械設計與制造等專業的學生由于程序設計能力不足,難以駕馭較復雜的程序設計任務,在學習過程中心理壓力較大;另一方面,由于授課均為教師為計算機相關專業背景,該課程的講授并未銜接CAD相關技術,學生難以構建二者之間的聯系。
解決方案:
本質上,該問題是由于選課學生的學習動機和基礎不同造成的。以單一的教學和考查方式難以兼顧這類面向具體應用的學習需求。在教學方法上,采用第三方案例教學法和交叉講解法相結合以解決此問題。具體的,將CAD等應用場合以具體案例形式講解,授課教師邀請飛行器、機械設計相關教研組研究生以4~6學時的講臺演示的形式呈現CAD工具完整設計過程。授課教師則以交叉講解方式為學生講解運用到的計算機圖形學知識點,同時與學生交互式的問答和探討。在考查形式上,考慮到不同的學習動機和基礎,采用多樣化實踐環節考查。計算機專業學生以OPENGL程序設計為考點,而外專業學生以CAD等面向應用的實踐工具為考點,以兼顧各專業的學習需求。
2 計算機圖形學與計算機視覺相結合的問題
當前,虛擬現實技術(VR)和人工智能技術(AI)兩個最重要最熱門的研究領域。虛擬現實的基礎理論支撐是計算機圖形學,例如三維場景的生成與顯示。而人工智能的一個重要應用場景是計算機視覺,例如基于圖像智能識別的自動駕駛技術和場景理解技術。很多學生對以計算機視覺為代表的人工智能技術懷有濃厚興趣,同時,學生又難以區分計算機圖形學和計算機視覺的關系。同時,二者在近年來的研究中呈現相互融合的趨勢。如基于三維立體視覺的機器人與場景實時定位與重建。如何在計算機圖形學課程中,很好地體現兩門課程的不同,避免學生的混淆,拓展學生的知識面,都是具有現實意義的課題。
解決方案:
實際上,計算機圖形學和計算機視覺可不失一般性的概括為互逆的關系:計算機圖形學是由概念設計到模型生成,最終繪制圖形圖像的過程;而計算機視覺則是從原始圖像中再加工并分析理解、以產生新圖像(如二維到三維)或輸出語義信息(如圖像自動標注與理解、目標檢測與識別)。將計算機圖形學納入“視覺處理課程群”框架,使學生首先掌握課程群中各課程的側重點,著重理解圖形學在課程群中的作用。精心選取2~3個計算機視覺和圖形學交叉的當前主流研究方向,展開概念層面的演示講解,不深究具體算法,著重闡述兩種技術的相互依賴關系并對比二者的區別。相關領域的演示還包括增強現實、人機交互、計算機輔助診斷等等。鼓勵學生自主學習,最終使學生在做中學、用中學,提高獨立分析新問題和綜合運用知識解決問題的能力。
3 如何平衡算法講解和程序應用技能
計算機圖形學涉及的算法多,核心算法是該課程的必講內容,在算法細節的講解過程中學生容易產生畏難厭學情緒,注意教學方法以調動學生的興趣尤為重要。另一方面,對學生的考察方式最終是通過編程實踐完成。學生在編程實踐中常常遇到大量調試問題,同時要閱讀大量文檔以了解OPENGL接口函數的調用方法,這個過程占用了很大工作量。
解決方案:
在理論教學部分,著重講清計算機圖形學原理和概念、全面解析經典算法思想。課程強調對理論核心思想的闡述,用通俗易懂的語言,條例清晰的邏輯,進行簡明透徹的闡述,附以直觀、形象的動態演示系統,力圖使學生在較短的時間內、有效地掌握基本理論。分析圖形學各種經典算法的原理、可行性及幾何復雜性,盡可能多地比較算法之間的思想差異,分別指出它們的優缺點和應用場合,并促進學生思考如何在保證算法的準確性、可靠性的前提下,提高算法的效率。同時注重接近國際前沿的研究內容,注重講授經典知識和最新進展相結合,以激發學生的學習興趣,提高課堂效率和活躍度,力爭以較少的課時闡述計算機圖形學的基本原理、基本方法,加大實踐環節比重。通過往年學生完成的優秀課程作業作品的展示,激發學生的創造熱情。改革實踐環節的考查方式,以項目小組形式取代對個體的考查。原則上每組3~5人,自由組合。在課程結束前,采用小組現場演示講解的方式,展示小組成員通過編程實踐環節完成的一個項目。學生在項目小M中鍛煉了團隊協作能力,降低了個人工作強度,同時互相學習和督促的氛圍使課程作業的質量得以大幅提高。以基礎實驗――目標性重建實驗――自主性訓練的層次化實踐框架模式,逐步培養學生自主研究,獨立解決問題、分析問題,確定解決方案的能力,樹立正確的科學研究習慣,培養學生的科學研究能力。
總之,合理設計實踐教學案例,進一步實現課程體系和實踐內容的統一,建立一個多層次、立體化的實踐教學體系,注重學生的參與性與實踐性,引導和鼓勵學生進行創新實踐和課外研學。改革考核方式和考試形式,加大實踐環節在成績中的比重,強化實踐能力培養,寓教于樂的同時引導學生追求卓越。此外,計算機圖形學技術是發展非常快的一個研究及應用領域,且對編程要求較高,應注重實驗室機房投入更新必要硬件,并保障軟件編程環境的正常運行。
L鼙疚氖苤泄┦亢蠡YBA15035,江蘇省教改項目JGLX13_008資助
參考文獻
[1] 孫家廣,胡事民.計算機圖形學基礎教程.北京:清華大學出版社,2005.2.
[2] 唐榮錫,汪嘉業,彭群生等.計算機圖形學教程(修訂版).北京:科學出版社,2000.
[3] LIU Hailan.On development and application of computer graphics[J].Computer Knowledge and Technology,2010(3):9551-9552.
[4] 婁鳳偉.創造性思維與計算機基礎教學[J].教育探索,2002.
[關鍵詞] 計算機圖形學;思維導圖;圖形學理論教學;圖形學實踐教學
[中圖分類號] G642 [文獻標志碼] A [文章編號] 1008-2549(2016) 07-0106-02
一 計算機圖形學課程教學中存在的問題
本科的計算機圖形學教學對數學理論有一定要求,往往體現為公式推導、演化等形式,同時也涉及算法設計及其代碼實現。而傳統計算機圖形學教學重點一般側重于考核學生對知識點的掌握,課程實踐所占比例較低。因此傳統的教學模式不適用于計算機圖形學課程,若仍沿用傳統教學模式,則不僅不利于維持學生的學習興趣,更不利于學生發現問題、解決問題以及創新能力的培養。
1 計算機圖形學教學內容與學生的學習興趣
傳統的計算機圖形學內容主要有:計算機圖形系統概述;二維圖形生成和變換技術;三維圖形生成和變換技術;真實感圖形生成技術;計算機動畫技術與實踐。該課程入門階段需要的數學知識主要涉及代數、三角學和線性代數,數學原理與圖形的結合在理論教學中占據了一定比重。
傳統的計算機圖形學教學目標是側重于培養學生對計算機圖形學理論知識的了解與掌握,在教學內容的設置上主要強調圖形學知識、概念的系統性與整體性,重點是概念解釋與原理講解,體現為大量的公式推導。
未進入圖形學教學前,學生們對該課程的理解大致分為兩類:一類認為該課程主要講述游戲開發。另一類認為是藝術設計。實際上,在本科階段開設的計算機圖形學課程,通常立足于計算機圖形學科的入門,教學內容主要是理解與掌握基本的圖形繪制原理及其實現算法,能進行基本圖形的程序設計。由此,學習內容的枯燥、教學內容與現實應用的巨大落差會導致部分學生的學習興趣隨課程的深入而有所下降。
2 計算機圖形學課程實驗的設置
計算機圖形學的實驗內容主要集中于基本圖形算法的實現,需要學生運用高級程序語言進行編程,然而作為專業基礎課程學習的此類高級程序設計課程,往往以基本知識、程序設計、數據組織三方面為主要內容,一般不涉及圖形庫編程接口(API)。這導致在本課程的實驗教學時,需要針對授課學生原先所學的高級程序語言,補充對應的圖形庫編程知識,這使得實際的有效實驗學時被縮減,而且增大了學生實現算法的難度,以至于進一步加劇了理論與實踐脫節的現象。
二 理論教學與實踐教學的改革方法與目標
我們在大學本科的第7個學期開設計算機圖形學課程,并將其分為理論課與實驗課兩門課程,兩門課程單獨核算成績。其中理論課為32學時,2.0學分;實驗課為16學時,0.5學分。在理論課程完成后開始實驗課程,計算機圖形學的實驗不再是傳統教學中對理論課知識點的簡單重復與驗證,而是對所學知識的綜合運用與深化。由此,需要合理選擇理論課教學內容,以完成與實驗課程的銜接。同時,設計合適的實驗項目使學生掌握課程基礎知識,提高學生的動手能力,以提升計算機圖形學的教學質量。
1 理論課教學內容的設計
計算機圖形學技術在快速的發展著,與之相適應,圖形學課程的教學也發生著變化。現階段,在計算機圖形學教學中主要有3種教學體系,大致分為:理論為主、編程為主、問題為主。其中,理論為主是傳統的教學體系,強調對計算機圖形學理論的理解與掌握,以公式推導為主要呈現方式,國內外此類教材有Floey的《計算機圖形學原理及實踐――C語言描述(原書第2版)》,孫家廣的《計算機圖形學》等。編程為主的教學體系側重于培養學生初步掌握一種典型的圖形學API,以圖形學使用者的角度講授計算機圖形學所需的理論與概念,去除非必需的數學原理與公式推導。國內外此類教材有Donald的《計算機圖形學(第四版)》,徐文鵬的《計算機圖形學基礎(OpenGL版)》等。問題為主教學體系的教學目標著重于培養利用計算機圖形學知識建立與用戶交流的能力,從而實現問題的圖形化建模并解決問題。相應的教學內容既涵蓋了圖形學中的基本概念和技術,也涉及了實現這些概念和技術的圖形學工具,然而重點在于介紹如何使用計算機圖形學知識來解決實際問題以及如何有效地進行結果展示,Steve Cunningham的《計算機圖形學》是此類教學體系的典型教材。此類問題為主的教學體系近年來在美國興起。
在我們的本科教學中,考慮到學生前期課程的設置與掌握情況,采用了結合OpenGL實現算法的編程為主的教學體系。在實際教學中,既要保證計算機圖形學基本概念、理論的完整講述,也為后續的實踐課程做鋪墊,有針對性地介紹圖形支撐軟件,使學生在掌握圖形學基本知識的同時,能夠在一定程度上自主實踐,保持與激發學生的學習興趣。
2 以思維導圖優化圖形學教學的實踐應用
思維導圖(又稱心智圖),是英國教育學家東尼?博贊在20世紀60年代創造的,它作為模擬放射性思維的圖形工具,能激發大腦的潛力。在人獲得信息后,進入大腦的信息以新的思想中心與其他信息建立關聯,形成向外發散的網狀結構。此后,每一個發散出的節點,又將作為新的中心,再次發散形成新連接。
3 實驗課教學內容的設計
計算機圖形學傳統教學中的實踐一般使用C++來實現相關算法,實現難度過大,導致學生沒有時間和興趣去完成。實踐教學的本意是對理論教學的鞏固、完善與提高,為實現理論與實踐教學的平穩銜接,我們在實踐教學環節中,采用OpenGL作為圖形算法接口,讓學生有針對性地完成若干實驗項目。
關鍵詞:計算機圖形學 教材 OpenGL
中圖分類號:G642 文獻標識碼:A 文章編號:1672-3791(2014)10(c)-0178-02
從學科角度來看,計算機圖形學是一門理論和實踐都很強的綜合性學科;從技術層面來看,計算機圖形學是計算機應用領域的一個重要分支,其應用已經滲透到社會的各個方面,例如計算機游戲產業和影視動畫,人們使用手機和計算機時操作的圖形用戶接口,這些應用與人們的生活密不可分。計算機輔助設計與制造、科學數據可視化、虛擬現實等等,計算機圖形學在科學研究、生產實踐和人們的日常生活中均占有重要地位。因此,學生在學習計算機圖形學課程之前對該課程具有一定的好奇和期待,但是如果按照當前市場上流行的教材組織教學會使學生很失望,從而失去學習該課程的熱情。
1 計算機圖形學教材存在的問題
計算機圖形學是研究用計算機生成、處理和顯示圖形的一門學科,本科段的主要教學內容由以下幾個部分組成:光柵圖形學、圖形變換、圖形裁剪、可見面判斷、曲線和曲面、簡單的真實感圖形生成。基于這些內容,國內教材基本上以計算機基本圖形的生成原理及其相應的經典算法為核心,注重算法的推導過程,也就是數學演算過程,使得教材內容理論性很強,對學生的數學基礎要求較高。這樣的教材適合培養學術研究型的學生,所學知識為他們進一步學習、從事計算機圖形學的研究打下堅實的基礎。但是應用型本科院校計算機專業的絕大多數學生畢業后走向職場,即使考上研究生進一步深造的學生,選擇計算機圖形學作為研究方向的可以說是鳳毛麟角。更加重要的是,應用型本科院校計算機專業的學生普遍數學基礎比較差,沒有數學基礎來學習這種數學演算式的算法推導過程。由于計算機軟硬件技術的飛速發展,當前在軟件開發領域也用不到教材中這樣底層的經典圖形算法,一般的圖形軟件開發都是基于某種圖形軟件標準,例如實際的業界標準OpenGL(Application Programming Interface),微軟公司的DirectX。基于軟件標準,學生可以學到開發圖形學軟件的一些實用技術,掌握繪制真實感圖形的完整流程。因此,當前急需解決應用型本科院校計算機圖形學的教材問題,以及由此帶來的該課程在應用型本科院校的定位問題。
2 計算機圖形學教學改革探索
應用型本科院校的學生普遍數學基礎比較差,優點是動手能力比較強,其中不乏玩游戲的高手。絕大多數認真學習的學生都對程序開發比較感興趣,并且學得快。但是由于數學基礎和抽象思維能力比較差,對理論性強的教學內容不感興趣,學起來吃力。針對計算機圖形學教材的現狀和應用型本科院校學生的特點,對計算機圖形學課程的教學目標、教學內容和教學方法進行了一定的研究探索。將教學目標定位為使學生通過該課程的學習,對計算機圖形學有一個概括性的全面了解,理解計算機基本圖形的生成原理及其相應的經典算法的基本思路,掌握其中的重要技術;學習一種圖形軟件標準,加大實際動手能力的培養力度,使學生通過該課程的學習,能夠設計簡單的圖形場景,掌握繪制真實感圖形的基本流程。對于教學內容,采用一本教材為主,多本參考書為輔,在吃透這些教材的基礎上重新整合教學內容,力求使學生能夠學到實際有用的知識和技術,掌握必要的計算機圖形學的理論基礎和開發圖形應用軟件的初步能力。OpenGL是一種跨平臺的應用程序接口,已經成為實際的業界標準,而微軟公司的DirectX僅適用于Windows操作系統。另外,OpenGLES是OpenGL的子集,應用于多種嵌入式系統,如控制臺、移動電話、手持設備、家電設備和汽車等。把JavaScript和OpenGL ES 2.0結合在一起構成了WebGL,為HTML5 Canvas提供硬件3D加速渲染,Web開發人員可以用WebGL構建具有豐富圖形的網站頁面和設計網頁游戲等。所以教學中選用了OpenGL作為實驗平臺。
教學內容整合以教材為依據,對應每個教學模塊增加相應的OpenGL內容,例如光柵圖形學模塊增加OpenGL的基本圖元繪制、圖形變換模塊增加OpenGL實現圖形變換的內容、曲線和曲面模塊增加利用OpenGL繪制Beizer曲線曲面和B樣條曲線曲面的方法、真實感圖形生成模塊增加OpenGL的光照(包括光源的位置、光的類型)和材質內容,等等。整合后的教學內容體現了理論與實踐并重、理論與實踐相結合的教育思想,每一次課的教學內容由兩部分組成:一是理論部分,講授計算機圖形學基本原理和概念、經典算法的設計;二是實踐部分,講授與理論教學內容相關的OpenGL繪圖程序設計。對于理論教學內容突出重點,精選有代表性的算法講解透徹,使學生掌握算法思想的精髓、主要技術手段,對類似算法能夠舉一反三,自行學習。實踐教學部分強化培養學生的創新思維和實際動手能力,針對教學內容演示基于OpenGL繪制的圖形或者場景,引導學生分析設計過程以及實現各個功能的OpenGL函數,以便學生通過學習能夠獨立自主地設計出具有真實感的圖形或者簡單場景。由于教學內容由理論和實踐兩個主題構成,所以教學過程中要特別注意將這兩個部分有機地融合在一起,具體做法是講清楚OpenGL函數在計算機系統內的實現機制,下面以圖形的幾何變換為例說明。圖形的幾何變換以齊次坐標為基礎,用矩陣表示變換,將變換矩陣乘以點的原始坐標,運算結果即為變換后的點的坐標;OpenGL的變換函數是以程序員給定的參數、按照函數功能先構造相應的變換矩陣,然后將變換矩陣與點坐標相乘得到變換后的點坐標。通過這種剖析將理論知識與實踐技術有機地結合起來,使學生知其然,也知其所以然,極大地激發了學生學習理論基礎知識的熱情。
教學過程以建構主義教學理念為指導,以任務驅動教學法為主結合多種教學方法以提高課堂教學質量。建構主義教育思想認為學習的本質是知識的建構過程,教學的目的在于幫助學生實現知識建構,而不是單向的給學生傳授知識,教師的作用是引導學生對原有知識進行改造和重組,實現新知識建構。任務驅動教學法的核心是以任務驅動教學過程,教師根據教學目標和教學內容設計合適的任務,通過分析這個任務引導學生建構知識。例如,講授真實感圖形生成時,首先演示一個編程繪制的具有真實感的圖形,在光照的作用下圖形逼真、美觀,極大地激發了學生的學習興趣。通過分析這個圖形的生成原理和技術,引出光照模型和顏色理論的基礎知識,通過設問、啟發等多種教學方法引導學生建構相關的理論知識;通過分析OpenGL實現光照、材質的技術,完成利用計算機繪制真實感圖形的教學任務。
最近幾年,市場上出現了一些面向應用型本科院校的計算機圖形學教材,其中計算機圖形學基礎理論的深度和難度都比傳統教材降低了,闡述也比較通俗易懂,但是沒有配套的上機實踐教材。因此,編寫了基于OpenGL的電子版實驗指導書,實驗內容由以下模塊組成:熟悉編程環境、基本圖元生成、二維圖形變換、三維圖形變換、光照和材質、曲線和曲面。實驗類型分為驗證型,設計型和綜合型。每次上機實驗課的內容分為兩個部分:一是運行課堂教學中講授的OpenGL程序、分析運行結果,然后修改這個程序生成新的圖形,從而加深對所學知識的理解;二是利用所學知識設計一個物體或者簡單的場景。課外作業是根據所學知識自由創造一個具有真實感的場景,從第一次上機實驗開始,從簡單到復雜構造一個場景,每次上機后增加本次實驗所學知識的內容,上機實驗課結束時上交,作為該課程的實驗考試成績。這樣,學生不僅學習了利用計算機生成真實感圖形的完整流程,而且親自實踐了這個完整流程。
4 結語
通過教學內容的整合,使學生能夠學到利用計算機生成真實感圖形的完整流程,有效地培養了學生的軟件開發能力,如果不進行上述教學改革是不可能達到這個目的的。當前國內教材太注重經典算法的剖析,學生即使努力學習,也是只見樹木不見森林,非常不適合應用型本科院校的學生使用。由于OpenGL的強大功能,教學中可以演示利用OpenGL編程繪制的逼真圖形,學生通過學習也可以自行設計、編程繪制這樣具有真實感的圖形,極大地激發了學生的求知欲,使得學生想學計算機圖形學課程,有效地提高了該課程的教學質量。
參考文獻
[1] 王艷春,張金政,李紹靜.計算機圖形學課程教學思考[J].計算機教育,2011(14):63-66
[2] 孔令德,劉晉鋼.應用型工科院校計算機圖形學教學模式改革[J].計算機教育,2011(18):20-22
[3] Francis S Hill,Jr,Sstephen mkelly,著.計算機圖形學(OpenGL版)[M].3版,胡事民,劉利剛,劉永進,等,譯.北京:清華大學出版社,2009.
【關鍵詞】計算機圖形學 實踐教學 應用型教育 數字媒體技術專業
【基金項目】基于CDIO的數字媒體技術專業卓越型人才培養模式的構建與實踐(2012jyxm358)。
【中圖分類號】G642 【文獻標識碼】A 【文章編號】2095-3089(2013)08-0152-02
1.引言
計算機圖形學是數字媒體技術專業一門重要的核心專業課,它在虛擬現實、計算機輔助設計與制造(CAD/CAE)、科學計算可視化、計算機動畫、地理信息系統(GIS)、計算機游戲、、影視廣告計算機仿真等領域均有廣泛應用,該課程也是新一輪專業教學改革中計算機科學方向的16門主干核心課程之一。該課程一方面內容十分豐富,涵蓋了計算機圖形學表示、生成、顯示和處理圖形的基本原理與方法,另一方面理論性強、難度大,以計算機程序設計技術為基礎,與數學、物理學等學科結合緊密,對數學、物理學的要求較高,如何教好、學好這門課程無論對教師還是學生都是一個挑戰[1]。
數字媒體技術專業是一個以計算機程序設計技術為主,藝術設計為輔,技術與藝術相結合,涉及多種學科交叉的新興專業。我校數字媒體技術專業依托文學院、美術學院,以游戲開發為主線,設置技術與藝術相結合的人才培養課程體系,探索培養復合型(面向應用的理論型)數字媒體技術人才的新模式。為了培養社會急需的高素質數字媒體技術人才,我國高等院校紛紛開設了數字媒體技術專業,竭力在人文藝術素質提高的同時,加強學生面向網絡、新型數字媒體技術的研究與開發能力[2]。
在高校計算機教學改革的推動下,在我校大學生的培養模式下,數字媒體技術專業的課程是本著厚基礎、重實踐、求創新的總體原則設置的。計算機圖形學作為一門專業基礎課,是該專業課程體系中占有重要位置的一門課。因此,如何結合當前教學改革的要求,圍繞該課程的教學目標,上好這門課是值得深入思考和研究的,本文圍繞我校數字媒體技術專業計算機圖形學的教學目標,探討了幾點計算機圖形學的具體教學措施,應用于我校該專業的計算機圖形學教學實踐中,取得較好效果。
2.專業特點與課程教學目標
數字媒體技術專業是旨在培養具有良好科學素養和創新精神,具備信息傳播理論、數字媒體和設計管理能力的復合型高級應用型專門人才。本專業的畢業生能從事數字媒體開發、音視頻數字化、網頁設計與網站維護、多媒體設計制作、數字媒體管理等工作。主干課程有:數字媒體技術概論、計算機科學與技術、藝術學、通信工程、C++語言程序設計、JAVA語言程序設計、計算機圖形學、數據結構、數據庫原理及應用、 數字圖像處理、網頁設計與制作、流媒體技術、OpenGL編程與應用、游戲開發等。該專業以基礎教育為根本,創新應用為提高,主要通過開設全面的專業基礎課和應用提高型選修課來實現這一專業特點。
計算機圖形學設在數字媒體技術專業大二下學期講授,將重點介紹計算機圖形學的基本概念、方法與算法,主要由五部分組成:第一部分是計算機圖形學的歷史、應用、發展和前沿;第二部分是二維圖形處理技術,包括基本圖元的生成、填充、裁剪、觀察與變換以及反走樣;第三部分是三維圖形處理技術,包括三維圖形的投影、表示、消隱和真實感顯示;第四部分是曲線曲面,掌握經典的Bezier曲線/曲面、B樣條曲線/曲面、NURBS曲線/曲面的概念及生成算法;第五部分是與人機交互相結合,介紹常規交互的基礎上,了解最新的自然人機交互知識。本課程的教學目標是使學生掌握計算機圖形學的基本原理和基本方法,了解其發展方向及前沿成果,為今后從事計算機輔助設計和制造、計算機圖形處理,如虛擬現實、動漫設計、游戲開發等方面的工作打下良好的基礎。
3.具體教學措施
在計算機圖形學的課程教學中,對枯燥難懂的理論,教師應力求講解清楚,圖文并茂,著重加強對學生上機實踐的計劃安排與現場指導,以達到良好的教學效果。主要采用以下教學措施,來激勵和促進學生對計算機圖形學的學習。
(1)“問題驅動式”教學
現代教育思想強調以培養學生發現、分析、解決問題的能力為主要目的,首先發現問題,這是認識和解決問題的起點,所以“問題驅動式”教學是許多現代教育家所提倡、推崇的教學方法,“問題驅動式”教學法的正確使用對于提高學生的素質,強化學生學習興趣,調動學生主觀能動性,培養學生創新能力有積極作用,在教學過程中,我們自始至終都圍繞問題而展開教學活動,激勵學生自覺思考、主動探索,引導學生不斷發現問題、提出問題、分析問題并最終解決問題,培養了學生的創造性思維。在專業教學中遵循這一自然規律,通過不斷的提出與教學內容相關的問題,引導學生的課程學習,再通過課程實際算法的講授,解決每個教學內容之初提出的問題,不僅有利于同學對基礎知識的掌握,而且培養了學生針對實際問題的計算思維。
例如,在三維圖形處理技術部分內容的講授之初,提出“真實感茶杯的繪制”問題,該問題以前面所學的二維圖形處理技術為基礎,涉及茶杯三維模型的建立、投影變換、消隱技術以及真實感顯示等內容,圍繞該簡單易實現的實例來講解該部分內容,將打消學生的畏難情緒,提起學習興趣,學生實現后又能增強自信心。
圖1 學生實現的茶杯效果圖
(2)真實題目的實踐教學
充分利用計算機與信息學院的實驗資源,采用課間實驗和集中實驗相結合的方式進行實驗安排,其中課間實驗和相應課程同步進行,集中實驗一般在相應課程結束后集中進行,以綜合性、設計型為主,旨在鍛煉綜合運用知識,解決實際問題的能力。在學院的帶領下,不斷加強數字媒體技術實驗室的建設,培養學生動手操作能力。提出切合學生知識水平的實際題目,結合課程知識進行實踐教學。
另外,通過校內、校外實踐環節相結合的方式培養和發展學生創新和實踐動手能力。在實踐教學中,加強工程實踐、課程設計、畢業設計等環節中的工程訓練,帶領學生到相關企業、研究所和高校參觀學習,使學生初步接觸實際工程,從宏觀上理解數字媒體技術專業的架構和發展方向。積極鼓勵和指導學生參加校級、省級、國家級各類學科競賽,如數學建模、電子設計、工業設計、挑戰杯和信息技術技能等大賽,鼓勵學有余力的學生根據學校合作企業的需求參加業余科研活動。
例如,結合校企合作項目,在課程實踐上設置三維游戲場景、角色設計、游戲綜合創作等圍繞游戲開發的綜合性實踐。應用圖形學的基本圖元生成算法、掃描線填充算法、種子填充算法、坐標變換等創建模型,并利用程序設計語言設計小型動畫作品,如蝴蝶花間飛舞、茶葉沉降動畫等。
圖2 學生設計作品抓圖
(3)培養興趣的前沿技術介紹
興趣是學習的原動力,因此應充分利用該專業豐富多彩的多媒體作品激發學生的學習和創作興趣,鼓勵學生動手實踐。運用啟發式、討論式等先進的教學方法提高學生獨立思考和綜合分析問題的能力,給學生方法論、發散思維、多維思想等啟迪,給學生開設本學科前沿知識講座,開闊學生的視野,培養學生的科學素養,培養學生的學習興趣,并注重學生應用技能的培養和提高,在應用中反思基本的原理和知識。
例如,最新的數字電影和視頻展示、新穎的平面廣告設計、先進的工業品造型設計、環境藝術設計及建筑表現,Kinect在虛擬現實中的應用,交互感知技術發展,AR增強現實技術等。
4.結語
總之,計算機圖形學作為一門基本的理論算法類課程,在教學中不能過多地強調理論問題,而應結合其在數字媒體技術中的應用來講,明確計算機圖形學的教學目的是與后面的游戲引擎相結合,在內容的取舍上側重OpenGL的應用,結合實際問題,在實際應用中激發學生學習興趣,以“問題驅動式”教學方法,促進學生的基礎知識學習,面向項目的案例教學模式,開展綜合性實踐教學,為優秀學生提供發展平臺。在教學過程中,不斷收集整理學生作品,作為課程實例進行展示和講解,提高學生的自我認同感和自信心;以學生作品或課程素材形式放在課程網站上,為打造有專業特色的計算機圖形學課程服務,在原有教學基礎上針對性地提高。
參考文獻:
[1]杭后俊. 計算機專業計算機圖形學教學實踐探討[J]. 計算機教育,2012(17):76―79.
[2]葉福軍,潘瑞芳,張帆. 復合型數字媒體技術專業人才培養探討[J]. 新聞界,2009(4):126―127轉125.
關鍵詞:計算機圖形學;可視化教學系統
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2013)34-7750-03
計算機圖形學主要研究用計算機進行圖形生成、處理、輸出與顯示的基本原理和算法的學科;是計算機應用中的重要分支之一。此教學系統設計使學習者掌握了解計算機圖形學中圖形的基本算法及其實現,提高學習者算法設計能力和編程實踐能力。
1 系統設計
由于圖形學算法具有一定的抽象性、難于理解并且枯燥,學習者難于從通過執行的靜態代碼來想象圖形數據結構的動態變化,從而喪失了學習該課程的主動性和積極性。為了讓學習者對圖形學算法原理有清晰的認識和直觀的印象,提高學習興趣,目前出現了一大批借助多媒體技術手段的圖形學教學輔助軟件,但這些軟件普遍都存在以下這些問題:1)教學軟件只是課本的電子版本,課本上的文字和圖片被一層不變的搬到教學軟件上,基本算法的講解部分,也只是把算法原理和算法實現以字符的形式表現出來。2)算法采用FLASH動畫演示,但只是按預先設定好的某種情況來描述算法,學習者不能輸入不同條件來改變輸出結果,也無法控制動畫演示的速度,缺乏交互性和智能型,無法滿足學習者個性化學習。3)采用可視化編輯工具C++或JAVA實現部分算法的動態演示,存在一定的交互性,滿足自主探究學習,但這些軟件沒有涵蓋所有基本算法的動態演示過程,缺乏在線協作學習等功能。
針對以上一些不足,本系統建立虛擬柵格和以可見點模擬人眼不可見的像素點,利用可視化技術以動畫形式模擬該課程基本算法的實現過程、難理解的知識點和抽象概念,注重運用交互控制技術,學習者可以針對不同的算法進行參數修改和演示速度的調整,開發了題目實時更新的課后練習系統,還利用SOCKET技術開發了群聊工具,滿足學習者自主學習、探究式學習、協作學習。該系統建立了授課、測試以及師生互動等體系,為教學建立一個完善的有好的教學平臺。
1)技術路線
可視化編程工具C++ Buidler6.0將課程涉及到一些算法可視化實現,包括直線、曲線生成、圓、橢圓生成、直線段裁剪、多邊形填充、分形模擬的動態演示。滿足個性化學習,提高教學效率和教學效果。提高教學質量教學演示和模擬,對一些抽象概念、理論等實現模擬對計算機圖形點、線、面的生成的原理介紹,多種直線、橢圓、圓、曲線、曲面的生成算法介紹以及生動的算法演示,以幫助學生在課后復習鞏固課堂學習重點、理解圖形在計算機中的生成原理、掌握計算機中的圖形生成的算法。可視化教學軟件可以展示出算法執行的過程,可以幫助學習者更好地理解算法內容,掌握其實質。模擬人眼看不見的屏幕像素,并且以動畫的形式完成個性算法動畫演示過程。
GDI圖形處理技術,采用C++面向對象語言來完成課件的制作,達到優秀的運行效率。在系統中,制作了圖象放大演示可以讓學習者了解到在計算機中圖形的真實一面;學生可以在二維圖形的幾何變換中自己畫圖,自由變換,使學生從最基本的圖形變換了解計算機中的動畫原理;在三維立方體的空間運動演示中和貝塞爾曲面的透視演示,學生可以感受到三維的震撼效果并且理解在計算機中3D建模的原理。
2)設計理論依據
計算機程序、數據結構向學習者傳受時存在著說明表現、演示過程等方面的不足,設計此系統將程序執行過程以及數據演變過程形象地在計算機屏幕上以動態圖形方式表現出來。比如,當運行一個可視化的算法程序時,數據結構和程序功能就可以將程序中不易理解的算法特征用圖形方式動態地顯示在屏幕上,因此加深了用戶對程序行為的理解和認識,也準確地讓學習者了解和分析程序執行過程所反映的邏輯含義和功能。
算法可視化教學能展現運動過程,能彌補課本中只能以插圖和文字說明的局限性,同時培養學生的觀察力、想象力和邏輯思維能力。算法過程可視化強調提供解決實際問題的原型,它必須滿足兩個要求:①提供真實性任務,這樣能充分了解自己所要解決的問題,②目標具有復雜性,能引起學生進行深層次考慮,激發學生的內部動機。比如在實現圖形學課程中圓的掃描轉換算法時,在標記出生成哪些像素的同時,給出相應程序的執行過程中變量的實時變化,它讓學生在短時間內充分認識并體會掃描轉換過程的每一狀態及變化。這類可視化目標的設計也強調交互式控制,用戶可以懸著不同算法,對半徑進行修改,調整演示速度等,這樣教學者便可以依據講解內容和學生的反應來隨時調整教學過程。
該程序具有動態交互的優勢,通過改變參數,學習者很容易能發現圖形隨參數的變化而改變的規律,從而從真正意義上實現交互性。除此之外,界面友好、顯示清晰、邏輯性強、使用方便、科學性強都是它的優秀之處。
3)完善的輔助教學平臺
利用SOCKET技術開發了群聊工具,建立起完成的授課、測試以及實驗教學、信息、師生互動等體系,為計算機圖形學教學實驗建立以個完善的教學輔助平臺。整合留言系統、電子白板等多種交互系統,為教師與學生提供了方便、適合的交流工具,達到教室、實驗室在網絡上的延伸,突破了空間的概念,并且把教師和學生緊密聯結在一起。
本系統中包含一些使用計算機圖形學知識完成的優秀作品。這些作品穿插在知識體系中使學生感受到學好這門課的重要性。同時提供豐富的課后習題供學生訓練。如果覺得做的題目都是以前做過的,還可以通過SOCKET技術完成的在線討論區以及留言板功能老師提出更新的題庫的請求。若是碰到難題還可登錄該討論區,與同學、與老師一起討論。在這里老師和學生無身份區別,完全可以自由討論。而老師可以在合適的時候為原先的題庫添加一些新的題目供學生訓練。
計算機圖形學是研究計算機生成、處理、顯示和輸出圖形的學科。而圖形學的教學關鍵是如何將圖形的生成以更加生動和直觀的方法展示給學習者,使學習者更能深入的理解計算機圖形學的理論和算法原理。
2 結論與展望
計算機圖形學是計算機學科的一個重要發展方向,學習計算機圖形學課程之后,有利于讀者向科學計算、計算機輔助設計、計算機仿真、信息數據的可視化、虛擬顯示、動畫與游戲、數字娛樂、數字設計等計算機應用行業方向發展。人們會對計算機圖形學的研究對象、研究方法、編程實現、等問題認識不足而產生局限性,向學習計算機知識的者普及計算機圖形學的教學,可以為解決計算機基礎教育不能直接解決用戶面臨的實際應用問題的尷尬、彌補現教學中計算機仿真等環節的缺失、使計算機應用程序設計從“經驗教學培養模式”到“科學理念式教學培養模式”轉變,以及計算機類教學中起來一個良好的示范作用。
參考文獻:
[1] Peter Shirley.計算機圖形學[M].高春曉,譯.北京:人民郵電出版社,2007.
[2] 魏俊鵬,于秋生.C++ Builder 6實用編程100例[M].北京:中國鐵道出版社,2004.
[3] Erich Gamma.設計模式[M].李英軍,等,譯.北京:機械工業出版社,2007.
90年代初登陸上海的TI圖形計算器結合相應的傳感器,能幫助學生獲得真實而相近的第一手資料,同時還能自動而迅速地分析數據以供學生參考,在研究型課程中有著廣泛的用途。
我們知道,在中學開展化學研究型課程有相當難度。
首先是條件上。在上海中學化學實驗室里,儀器設備雖談不上陳舊簡陋,但要利用現有儀器解決實際問題卻有些難度。
其次是教師。在風起云涌的課改浪潮中, 有一些教師運用開公開課的機會進行主題式教學,言必談“研究”,可實際上是老師在研究,學生跟著看而已。教師的理念仍需改進。
再有就是多媒體的誤導。時下,教師精心制作多媒體課件,或由學生做課件,課堂上以匯報形式告訴另一些學生,已成為時尚的公開課模式。仍然缺乏交互性的多媒體教育手段不能讓學生主動參與課堂上動態的認知過程。這種現代教育方式只能成為教師的演示工具,學生從黑板的仰望者變成屏幕的觀看者,難以成為學生自主學習、進行探索和發現有認知工具。
而TI圖形計算器則不同。機器雖小但內涵豐富,載入不同的程序,輔以不同的傳感器,可以完成多種任務。人手一機的操作形式使學生擁有了更多的主動權。同樣一個問題,不同的學生可以有不同的處理方式,但目標只是一個。而且,課題小組合作討論的學習方式為每位小組成員創設了均等發表見解的機會,學生將不僅從教師處獲得知識和方法,還可以從小組成員身上得到啟示。
比如有這樣一個問題:
等pH的HAc和HCl溶液,分別稀釋m、n倍,若稀釋后pH值依然相等,求m與n的關系。
在傳統實驗室找不到等pH值的HAc和HCl溶液,TI圖形計算器能做到。TI圖形計算器上連接兩個pH傳感器,并將傳感器分別置于相近濃度的HAc和HCl溶液中,調節兩溶液中加入水的量至顯示pH相等。
后面的操作很簡單,只要向剛剛獲得的等pH的HAc和HCl溶液中分別加水至第二次pH值相等,比較加水量多少就可以了。
學生初始方案:各取50ml等pH值的HAc和HCl溶液于燒杯中,然后分別加水,觀察pH變化。
結果:儀器沒有多大動靜。
疑問:是傳感器不靈敏嗎?
查閱儀器說明書:瞬時感應,誤差0.01%。
教師提示:50ml pH=1的HCl稀釋到多少ml才能使pH變為2?
學生頓悟:強酸pH變化1個單位,需要稀釋10倍。剛剛稀釋的程度太小了。
學生修改方案:各取5ml等pH值的HAc和HCl溶液于500ml燒杯中,然后分別加水,觀察pH變化。
結果:500ml燒杯中的5ml溶液根本沒法浸沒傳感器感應部位。
學生大失所望,一籌莫展。這時有個學生不經意中畫了一張pH-V水圖(圖1),小組另一個成員得到了啟示,畫了另一張圖:pH-V酸圖(圖2)。
經過認真討論,學生一致認可以下方案:兩個100ml燒杯中各加入50ml水,分別逐滴滴加pH相等的HAc和HCl,觀察pH變化快慢程度。
結果:加HAc的溶液pH變化要慢一些。
結論:酸1為HCl,酸2為HAc。從圖象上可看出,要使同等pH的兩種酸稀釋后pH依然相等,HAc所需的水更多一些。所以本題答案m>n。
三維動畫作為一種新興的動畫形式,近幾年發展非常迅速,逐漸成為了主流的動畫形式。中國開展動畫專業的高校現在也都基本開設了針對三維動畫的課程。三維動畫不同于傳統的二維手繪動畫,是和計算機技術結合非常緊密的一門交叉學科,基本所有的制作過程都要借助于計算機硬件和軟件,這使得三維動畫的教育方式和方法需要同傳統的二維動畫教育區分開來,不論從教學方法還是教學內容都需要進行很大調整。國內三維動畫教育目前還處于起步和摸索階段,相比較來說,歐美發達國家三維動畫教育起步較早,發展也相對完善。如果可以吸收和借鑒其中成功的經驗,并加以利用,一定能對中國的三維動畫教育幫助良多,解決目前存在的一些問題,并能推進國內整個三維動畫產業的發展。在所有的歐洲三維動畫教育中,英國的教育模式是比較富有代表性的也是發展較為成功的。英國高校的三維動畫教育一般采取三位一體的教學模式。其中包括計算機圖形學技術的學習,藝術知識的學習和計算機應用軟件的學習。這三方面互為補充,構成了一個比較完善的教學體系。
一、計算機圖形學技術的學習
目前中國國內的三維動畫產業發展較慢,也較為混亂,是和缺乏足夠的計算機技術相關的。而計算機圖形學技術的學習也是目前中國三維動畫教育中比較欠缺,急需改進的重點。因為三維動畫里面的各種效果都是產生于與之相對應的各種計算機技術。例如海浪,火焰,毛發,還有模擬各種真實的動作等。沒有相應的計算機技術,也無從談起三維動畫。也正是各種各樣日新月異的計算機技術推動了三維動畫在世界領域的快速發展。所以,軟件開發技術不論從任何方面都是三維動畫領域里面的重中之重。英國三維動畫教育很重視這方面技術的教學和實踐,也針對這些技術也開設了一系列課程。例如面向現在比較熱門的Mo-tionCapture(動作捕捉)技術,英國的Bristol大學的CharacterAn-imation(人物動畫)專業就開設立了MotionCaptureRetargeting方向的研究工作,主要面向解決MotionCapture后人物動作變形的問題,并在這一領域取得了一定成功。而類似Bristol大學的例子還有很多。Bournemouth大學甚至開設了計算機動畫(ComputerAnima-tion)的博士生項目,并和中國的高校建立了合作關系。由此我們可以看出,英國的三維動畫教育很重視計算機圖形學,特別是三維圖形學的教育工作。而且強調三維圖形學和三維動畫有機的整合在一起,使學生能真正理解三維動畫的原理,有能力去開發和拓展三維動畫領域。相比較來說,中國的三維動畫教育一直忽視計算機圖形學技術的教學和科研,導致學生嚴重缺乏必要的計算機技術,這也大大桎梏了三維動畫在中國的發展。
二、藝術知識的學習
眾所周知,三維動畫的的魅力是由動畫藝術本身獨特的特點所體現出來的,對于動畫藝術知識的學習自然是學好三維動畫學科的基礎。除了和中國基本相同的美術設計知識學習之外,英國的動畫專業教育很重視電影學知識的學習,也針對性的開設了一系列課程。例如Bristol大學的CharacterAnimation(人物動畫)專業就跟戲劇專業(DramaDepartmen)t合作開設了FromBodytoAvatar,ProjectDesignandStoryboarding等課程。專門講授塑造人物性格,編排劇情,制作故事板,剪輯電影,添加音效等方面的內容。這些課程對于設計,制作和最后完成三維動畫都很有必要。目前中國高校的三維動畫教育對于美術知識的教育還是比較重視的,可是針對電影學方面的課程安排較少。如果能夠參照英國的教學模式,適當增加電影學的教學環節,對于學生對于動畫知識的全面了解和制作動畫都會帶來很多益處。
三、計算機應用軟件的學習
毫無疑問計算機應用軟件的學習也是三維動畫教育中必不可少的一環,只知道原理卻不會操作各種應用軟件將會寸步難行。這些軟件包括Maya,Premiere,AE,Photoshop,Audition等等。大型軟件的應用在未來的三維動畫發展中也會越來越重要。在英國的三維動畫教育中,不論是本科還是研究生教育都有很大一部分比例的學分專門為這些課程安排的。這其中Maya作為權威的三維動畫制作工具,是最難,最花時間,也是最重要的。學生通過課堂上的學習只是了解其基本操作,真要做到熟悉操縱Maya還要通過長時間的上機和實踐。在國外的三維動畫教育中,老師一般只花很少時間教學生操作,更多是給學生布置一些作業,在完成作業的過程中進行實踐。針對中國的三維動畫教育,應當適當延長計算機軟件課程的教授時間,因為只讓學生自己摸索,對于Maya這樣復雜的軟件實在勉為其難。何況Maya是全英文軟件,對于中國學生是很有必要詳細解釋各種操作的。
關鍵詞:圖形編程;計算機圖形學;教學模式;OpenGL
中圖分類號:TP434文獻標識碼:A文章編號:1672-7800(2013)006-0148-02
基金項目:武漢紡織大學教研項目(2010020)
作者簡介:陳永強(1967-),男,博士,武漢紡織大學數學與計算機學院教授,研究方向為計算機圖形圖像處理。
1國內教學現狀
為有助于學生學習和理解計算機圖形學的基本概念、原理與算法,需要結合形象化的圖形編程實例和實驗來補充說明和練習。國內教材和教學中計算機圖形學案例和實驗圖形編程選用的編程語言有C、C++和Java。Java主要面向嵌入式設備和網絡使用,目前PC機上軟件編程教學通常采用C和C++編程語言,選擇的圖形開發環境是在VC++里使用控制臺應用程序、MFC可執行程序、OpenGL開放圖形庫、Direct3D圖形庫等幾種方式。
在課時有限的前提下,由于沒有結合使用圖形庫的圖形編程案例,加上實驗難度較大,導致學生學習興趣降低而很難完成理論學習和實驗項目。Direct3D是微軟公司在Microsoft Windows操作系統上所開發的一套3D圖形編程接口,是DirectX的一部分,僅能在Windows平臺使用,平臺移植性差。OpenGL是一個專業的圖形編程接口和功能強大的開放圖形庫,提供了基本的函數庫,涵蓋了開發二、三維圖形程序所需的各個方面。OpenGL獨立于窗口系統和操作系統,開發的應用程序可以十分方便地在各種平臺間移植,且與VC++接口緊密。因此,在VC++里結合OpenGL圖形庫開展計算機圖形學課程的輔助教學是最佳選擇。
2結合OpenGL的教學模式
開放圖形庫OpenGL是一個性能卓越的開放圖形編程接口(API),適用于廣泛的計算機環境,具有使用簡便、高效率、穩定可靠、性能高、可擴展移植、適應性強等特點,是唯一真正開放、獨立于供應商、跨平臺的圖形開發行業標準,是圖形開發工作者必須掌握的開發工具。OpenGL具有模型繪制、模型觀察、顏色模式、光照材質、圖像效果增強、位圖和圖象處理、紋理映射、雙緩存動畫、交互等功能。OpenGL主要由OpenGL核心庫(GL)、OpenGL實用程序庫(GLU)、OpenGL編程輔助庫(AUX)、OpenGL實用程序工具包(GLUT)、Windows專用庫(WGL)等函數庫組成。OpenGL圖形函數定義為獨立于任何程序設計語言的一組規范,在各種編程語言中,如C、C++、FORTRAN、Ada和Java等,都可以調用OpenGL的庫函數。
計算機圖形學課程的圖形編程實例和實驗教學中,采用VC++結合OpenGL圖形庫,可以選擇控制臺應用程序+OpenGL和MFC可執行程序+OpenGL兩種模式之一。
2.1控制臺應用程序+OpenGL模式
VC++里采用控制臺應用程序+OpenGL的圖形編程模式實際上是一種用C語言調用OpenGL函數的面向過程的編程框架,其程序的基本結構是定義窗口、清理窗口、繪制物體和結束運行。
(1)頭文件包含。利用OpenGL實現圖形繪制,先要引入OpenGL核心庫GL及其它需要使用的GLU庫的頭文件,并要通過頭文件引入窗口系統。若使用GLUT庫函數進行窗口管理,可只需要用GLUT代替GL和GLU的頭文件包含。
(2)使用GLUT庫實現窗口管理。首先用glutInit函數對GLUT初始化,處理所有命令行參數,然后使用glutInitDisplayMode函數設定窗口顯示模式,包括緩存和顏色模型等;再使用默認值設定顯示窗口的大小和位置,或使用glutInitWindowSize指定顯示窗口的大小和glutInitWindowPosition函數指定窗口左上角的屏幕位置;最后用glutCreateWindow函數創建一個帶有OpenGL渲染環境的窗口,參數是一個保存了窗口標題名稱的字符串。
(3)利用OpenGL繪制圖形。繪制圖形前,要進行窗口清屏,即先用glClearColor函數指定窗口的背景色,之后用glClear函數中指定的值設定顏色緩沖區值,即將窗口中每個像素的顏色設定為背景顏色。接著可使用glColor函數設置繪制圖形的顏色。
在繪制圖形時,先使用glMatrixMode和gluOrtho2D函數設定投影參數,即把要繪制的三維圖形投影到顯示窗口。
然后調用一些OpenGL函數實現圖形的繪制,用glFlush函數通知圖形系統執行繪制。此時,通常把重繪場景所需要的函數命令放入一個不帶任何參數的顯示回調函數里,通過glutDisplayFunc函數作為注冊函數將顯示回調函數注冊指定為當前窗口的顯示內容函數。類似地,可以用GLUT提供的其它注冊函數注冊相應事件的回調函數,處理用戶輸入或系統狀態改變等事件。
最后用gluMainLoop函數啟動主GLUT事件處理循環,運行程序顯示繪制窗口。
2.2MFC可執行程序+OpenGL模式
微軟基礎類庫MFC是用來編寫Windows應用程序的C++類集,以層次結構組成,封裝了大部分Windows API函數和控件。利用MFC和向導來編寫Windows應用程序,是VC++的一種面向對象編程方法,其基本步驟先是使用應用程序向導生成Windows應用程序的基本框架,然后用類向導來進行應用程序的類的建立、消息處理、數據處理函數或定義控件的屬性、事件和方法,最后把應用程序所要求的功能添加到類中。
在VC++里編寫一個通用基礎框架的空OpenGL應用程序,在此基礎上通過添加其它代碼就可完成案例程序和實驗程序。
(1)創建VC程序。運用VC++應用程序向導,選擇MFC可執行程序,建立一個新的單文檔應用程序工程,工程包含Doc、View、App、MainFrame和ChildFrame 5個類。通用基礎框架的空OpenGL應用程序主要涉及View類程序修改。
(2)設置OpenGL基礎庫。在View類頭文件和Project Settings對話框里的General頁面里包含OpenGL頭文件和函數庫文件。
(3)設置像素格式與創建渲染描述表。OpenGL不使用Windows設備描述表,是使用渲染描述表完成圖形圖像的映射,描述表的映射核心是像素格式的設置。在工程的View類文件里,通過初始化PIXELFORMATDESCRIPTOR結構、設置和測像素格式來完成對像素屬性的設置,包括緩存設置、顏色模式、顏色位數、深度緩沖位數等。在響應工程View類的Windows消息WM_CREATE的消息響應函數OnCreate里創建并當前化一個渲染描述表,在響應Windows消息WM_DESTROY的消息響應函數OnDestroy里使渲染描述表非當前化并刪除,消息響應函數里調用創建wglCreateContext、當前化wglMakeCurrent、刪除wglDeleteContext等管理渲染描述表的OpenGL函數。
(4)設置OpenGL風格。只有OpenGL的客戶區才能接受OpenGL的繪制,要在View類的PreCreateWindow函數里用WS_CLIPCHILDREN和WS_CLIPSIBLINGS設置OpenGL風格。
(5)設置OpenGL視點。在當前化渲染描述表之后,獲取客戶區的大小、清除深度緩存、啟動深度測試和OpenGL模型變換,然后在響應Windows消息WM_SIZE的消息響應函數OnSize里建立視點,啟動透視變換,建立透視體。
完成上述步驟后,即建立了一個通用基礎框架的空OpenGL應用程序。在通用基礎框架的空OpenGL應用程序基礎上,在工程View類的消息響應函數OnDraw里可用OpenGL函數繪制圖形。
2.3兩種模式比較
相比較而言,控制臺應用程序+OpenGL模式較簡單。教師教學準備方便,學生在掌握基本C語言編程知識和OpenGL實用程序工具包GLUT的窗口管理方法基礎上,可集中精力學習OpenGL的圖形繪制技術。學生學習理解容易、上手快,數學效果明顯。但這個模式與實際的主流圖形軟件開發方式有一定距離,實用性差,適用范圍窄。
MFC可執行程序+OpenGL模式則要復雜一些。學生需學習《C++語言程序設計》和《可視化程序設計》前修課程,能較好地理解MFC可視化編程機制和框架,了解MFC文檔視結構、Windows消息響應、Windows標準控件等知識。在了解OpenGL的Windows專用庫函數設置像素格式與創建渲染描述表的方法后,再開始學習OpenGL的圖形繪制技術。這個模式里的MFC編程框架與OpenGL圖形繪制關系復雜,要求掌握的預備知識較多,學習時間較長,學生需有一定的編程能力。但它符合面向對象的軟件開發方式,學生一旦掌握熟練,對今后從事軟件開發工作大有益處。
參考文獻:
[1]杜利峰,李竹林.基于OpenGL的計算機圖形學教學改革探索[J].電子設計工程,2012(13) .
[2]陸楓,何云峰.計算機圖形學基礎[M].北京:電子工業出版社,2008.