摘要:本文以計(jì)算機(jī)圖形學(xué)教學(xué)實(shí)踐為基礎(chǔ),結(jié)合圖形學(xué)自身特點(diǎn),討論如何在課程教學(xué)中采用合適的教學(xué)方式安排教學(xué)內(nèi)容,做到理論與實(shí)驗(yàn)并重,激發(fā)學(xué)生學(xué)習(xí)興趣,使學(xué)生易于理解和掌握。
關(guān)鍵詞:計(jì)算機(jī)圖形學(xué);實(shí)驗(yàn);教學(xué)研討
中圖分類(lèi)號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:B
計(jì)算機(jī)圖形學(xué)是一門(mén)理論與實(shí)驗(yàn)并重的學(xué)科。從理論方面看,該學(xué)科主要涉及與圖形相關(guān)的概念和算法,和數(shù)
學(xué)、物理等相關(guān)學(xué)科的關(guān)系緊密,學(xué)起來(lái)有一定的難度。而實(shí)驗(yàn)是理論教學(xué)的深化與補(bǔ)充,是抽象轉(zhuǎn)化為具體的方式,是晦澀難懂的公式變?yōu)榛钌?huà)面的過(guò)程。通過(guò)實(shí)驗(yàn),不僅可以培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力,而且對(duì)于建立學(xué)生自信心、培養(yǎng)學(xué)生興趣也起至關(guān)重要的作用。學(xué)生對(duì)該課程是既喜歡又擔(dān)心學(xué)起來(lái)難度太大,如何上好第一次課,改變學(xué)生的態(tài)度,如何安排教學(xué)內(nèi)容和實(shí)驗(yàn)環(huán)節(jié),使學(xué)生既易于接受又能反映計(jì)算機(jī)圖形學(xué)的基礎(chǔ)知識(shí)和最新知識(shí)。本文針對(duì)這些問(wèn)題,結(jié)合教學(xué)中的實(shí)際情況淺談一下自己的看法和體會(huì)。
1課程內(nèi)容介紹
在多數(shù)人的印象中,計(jì)算機(jī)圖形學(xué)和其它專業(yè)課相比較,數(shù)學(xué)公式太多,難以學(xué)習(xí)和理解。但是由于它的諸多應(yīng)用非常具有吸引力,尤其它是大家所感興趣的游戲和動(dòng)畫(huà)的基礎(chǔ),很多學(xué)生又想接觸它。如何加強(qiáng)學(xué)生的這個(gè)念
頭,第一次課非常關(guān)鍵,它在很大程度上決定了學(xué)生是否選學(xué)這門(mén)課。圖形學(xué)的理論雖然抽象,但是所表示的內(nèi)容卻形象,可以以此作為突破口。我們知道被稱為“圖形學(xué)之父”的Sutherland博士論文答辯時(shí),將所研究的內(nèi)容制作一部電影,邊放映邊講解,大獲成功。所以我覺(jué)得可以從一個(gè)動(dòng)畫(huà)短片或游戲片段出發(fā),將所涉及的圖形學(xué)知識(shí)融會(huì)貫通起來(lái)。因?yàn)樵跊](méi)學(xué)習(xí)圖形學(xué)之前,學(xué)生很難建立圖形學(xué)知識(shí)和游戲動(dòng)畫(huà)之間的聯(lián)系。他們只知道圖形學(xué)理論很抽象,游戲動(dòng)畫(huà)很容易吸引學(xué)生眼球,而且也知道它們之間的關(guān)系很緊密,但具體有什么聯(lián)系卻不是很清楚。我們可以從此出發(fā),引出圖形學(xué)的相關(guān)知識(shí),讓學(xué)生在不知不覺(jué)中了解圖形學(xué),接受圖形學(xué)。這樣輕松建立了相關(guān)知識(shí)點(diǎn)與實(shí)際應(yīng)用的聯(lián)系,也解答了學(xué)生學(xué)有何用的疑問(wèn)。
現(xiàn)以動(dòng)畫(huà)短片《棋逢敵手》(Geri's Game)為例來(lái)說(shuō)明如何引出圖形學(xué)內(nèi)容。該短片講述的是Geri老頭在公園跟自己下棋的事,故事情節(jié)生動(dòng),動(dòng)畫(huà)效果惟妙惟肖,很具吸引力。學(xué)生非常感興趣,這是怎么做的,采用什么技術(shù),Geri老頭是怎么得到的等等一系列問(wèn)題。我們便可以問(wèn)題為導(dǎo)向一一解釋給學(xué)生。Geri老頭采用的是一種稱為Catmull-Clark的細(xì)分曲面造型技術(shù),在造型之前需要準(zhǔn)備數(shù)據(jù),所謂巧婦難為無(wú)米之炊,一般這樣的數(shù)據(jù)是先建立一個(gè)實(shí)物的模型,然后通過(guò)三維激光掃描儀獲取的。三維掃描儀掃描實(shí)物的表面數(shù)據(jù),其數(shù)據(jù)量大,而且?guī)в性胍?,所以需要做去噪,?jiǎn)化等處理。簡(jiǎn)化后得到Geri老頭的表面骨架,然后再采用細(xì)分曲面造型技術(shù)獲取光滑逼真的模型。細(xì)分造型是一種逐層加細(xì)技術(shù),如圖1所示,圖1(a)-(c)是不同層次的效果。從中可以看出圖(c)圖形的光滑效果最好,而圖(a)最差。但是圖(c)的數(shù)據(jù)量最大,這就需要根據(jù)不同情況選擇不同的圖形,如圖2所示,當(dāng)圖形距離我們較遠(yuǎn)時(shí)可以選擇精度不高的(a)圖形,而較近時(shí)選擇(c)圖形。在游戲動(dòng)畫(huà)方面,對(duì)速度要求高,而對(duì)圖形逼真性的要求相對(duì)低,這時(shí)可以選擇數(shù)據(jù)量小的圖形。這樣通過(guò)圖形展示給學(xué)生以感性的認(rèn)識(shí),一方面易于接受,易于理解,另一方面也能增加學(xué)習(xí)的興趣。另外,形象逼真的圖形采用真實(shí)感繪制技術(shù),場(chǎng)景遠(yuǎn)近變化利用了圖形變換的知識(shí)等等。一個(gè)短篇,基本上把圖形學(xué)的相關(guān)內(nèi)容都包括了,我們還可以再結(jié)合其它一些具體生動(dòng)的圖形動(dòng)畫(huà)介紹給學(xué)生。實(shí)際上,在圖形學(xué)授課的各個(gè)環(huán)節(jié),為了調(diào)節(jié)枯燥的數(shù)學(xué)公式,都可以演示一些相關(guān)內(nèi)容的圖形,也所謂的多媒體教學(xué),在這方面,圖形學(xué)應(yīng)該更有優(yōu)勢(shì)。
2理論與實(shí)踐并重
對(duì)計(jì)算機(jī)圖形學(xué)這樣的專業(yè)課而言,理論的學(xué)習(xí)離不開(kāi)實(shí)踐,實(shí)驗(yàn)是非常重要的一個(gè)環(huán)節(jié)。抽象的理論,乏味的數(shù)學(xué)公式,如果不和實(shí)驗(yàn)結(jié)合,學(xué)生是體會(huì)不到學(xué)習(xí)樂(lè)趣的。通過(guò)實(shí)驗(yàn),所學(xué)的知識(shí)得以鞏固,枯燥的算法與生動(dòng)的圖形之間建立聯(lián)系。學(xué)生的興趣也是通過(guò)實(shí)驗(yàn)建立起來(lái)的。每次實(shí)驗(yàn)報(bào)告,我都會(huì)要求學(xué)生寫(xiě)下心得體會(huì),從報(bào)告可以看出,多數(shù)學(xué)生能夠在實(shí)驗(yàn)中找到快樂(lè),能夠通過(guò)實(shí)驗(yàn)建立自信心,成就感。他們說(shuō)做實(shí)驗(yàn)很受鍛煉,知識(shí)掌握的也更牢固。當(dāng)然有的學(xué)生也提到,做實(shí)驗(yàn)是一件非常辛苦的事情,特別是沒(méi)有思路或者找不到錯(cuò)誤時(shí),真的很痛苦。但是成功后的滿足,特別是做出來(lái)的那一瞬間,那種心境別人無(wú)法體會(huì)。
由于計(jì)算機(jī)圖形學(xué)是專業(yè)限選課,學(xué)時(shí)不多。我們一般安排32個(gè)上課學(xué)時(shí)和16個(gè)實(shí)驗(yàn)學(xué)時(shí)。為了增加學(xué)生的知識(shí)面,我們的實(shí)驗(yàn)是在Sun工作站Solaris操作系統(tǒng)下采用gcc編譯器進(jìn)行,編程時(shí)調(diào)用OpenGL庫(kù)中的圖形函數(shù)。通常安排4個(gè)學(xué)時(shí)熟悉這些內(nèi)容。這樣根據(jù)剩余學(xué)時(shí)安排五個(gè)小實(shí)驗(yàn):直線生成、裁剪、幾何變換、曲線生成以及真實(shí)感圖形繪制,還有一個(gè)綜合性實(shí)驗(yàn):做一個(gè)簡(jiǎn)單的圖形系統(tǒng)。題目的要求隨著難易程度變化。直線生成算法比較簡(jiǎn)單,學(xué)生編寫(xiě)的程序應(yīng)具有通用性,適用于任何直線。裁剪算法是為了確定顯示區(qū)域內(nèi)的圖形,實(shí)驗(yàn)一般要求實(shí)現(xiàn)線段裁剪算法,算法易于實(shí)現(xiàn),考慮到易操作性,采用交互式的畫(huà)線方式,即以鼠標(biāo)點(diǎn)擊繪圖區(qū)的位置確定線段的起點(diǎn)和終點(diǎn),其中涉及消息映射和屏幕坐標(biāo)到世界坐標(biāo)轉(zhuǎn)化等相關(guān)知識(shí)。幾何變換幾乎在每個(gè)圖形系統(tǒng)或圖形應(yīng)用軟件都有使用,其主要包括旋轉(zhuǎn)、平移、縮放以及復(fù)合變換等內(nèi)容。學(xué)生對(duì)三維圖形更感興趣,尤其是較復(fù)雜的圖形。在做該實(shí)驗(yàn)時(shí),通常先介紹一些三維圖形的相關(guān)知識(shí),包括幾何圖形表示、存儲(chǔ)形式以及讀文件操作等,一般以簡(jiǎn)單的OBJ數(shù)據(jù)文件為例。然后讓學(xué)生實(shí)現(xiàn)三維圖形的幾何變換。另外,考慮到該實(shí)驗(yàn)包括幾個(gè)操作,增加了菜單選擇功能。曲線曲面也是圖形學(xué)的核心內(nèi)容,生成方法有兩種:一種是逐層遞推的方法,另一種是根據(jù)參數(shù)曲線定義。學(xué)生根據(jù)自己的理解選擇不同的方法實(shí)現(xiàn)。在曲線生成的基礎(chǔ)上,增加鼠標(biāo)拖動(dòng)控制點(diǎn)改變曲線曲面形狀的功能。真實(shí)感實(shí)驗(yàn)是為了增加學(xué)生學(xué)習(xí)的興趣,通過(guò)調(diào)用OpenGL的庫(kù)函數(shù)做出一些漂亮的效果,讓學(xué)生感覺(jué)到圖形學(xué)功能很強(qiáng)大,一些看似復(fù)雜的效果實(shí)現(xiàn)起來(lái)也簡(jiǎn)單,只需調(diào)用OpenGL中現(xiàn)成的庫(kù)函數(shù)。綜合性實(shí)驗(yàn)報(bào)告我也鼓勵(lì)學(xué)生做一些自己感興趣的東西,比如有的學(xué)生對(duì)游戲很感興趣,基礎(chǔ)也較好,想做一個(gè)小游戲,我是完全許可的。應(yīng)該來(lái)說(shuō),安排的實(shí)驗(yàn)任務(wù)重,覆蓋內(nèi)容多,在有限學(xué)時(shí)內(nèi)完成這些實(shí)驗(yàn)是不可能的,需要學(xué)生在課外做許多準(zhǔn)備工作。而且,有些知識(shí)點(diǎn)較難,學(xué)生難以消化。針對(duì)這種情況,實(shí)驗(yàn)部分也分了解和掌握兩種情況,這樣做的一個(gè)目的就是想增加學(xué)生的知識(shí)面。
3教學(xué)內(nèi)容安排
計(jì)算機(jī)圖形學(xué)知識(shí)更新快,內(nèi)容深而廣,如何在有限的學(xué)時(shí)內(nèi)安排教學(xué)內(nèi)容,使講解的知識(shí)難度適中,既兼顧基礎(chǔ)知識(shí)又可以反映計(jì)算機(jī)圖形學(xué)的最新成果和技術(shù),同時(shí),既兼顧理論又兼顧實(shí)驗(yàn)。另外,在學(xué)生可以接受的情況下盡可能介紹三維知識(shí)。
我們的教學(xué)內(nèi)容主要分這幾部分內(nèi)容:光柵圖形學(xué),圖形變換,幾何造型,真實(shí)感圖形繪制。而且,各部分內(nèi)容貫穿OpenGL的相關(guān)知識(shí)。前兩部分比較基礎(chǔ),內(nèi)容相對(duì)簡(jiǎn)單,課時(shí)盡可能安排緊湊,理論講的相對(duì)深入。但是對(duì)于幾何造型,尤其是曲線曲面造型部分,內(nèi)容的深淺需要根據(jù)學(xué)生情況來(lái)把握。曲面難度較大,一般只介紹大致的思路及做一些演示。對(duì)于曲線,如果講得比較深入,對(duì)于基礎(chǔ)不好的學(xué)生來(lái)說(shuō)也難以接受。我曾嘗試采用分段多項(xiàng)式的形式推導(dǎo)B樣條基函數(shù),不少同學(xué)聽(tīng)得很費(fèi)力,甚至影響后面知識(shí)的學(xué)習(xí)?,F(xiàn)在講這部分內(nèi)容時(shí),我只是介紹基函數(shù)的由來(lái),告訴學(xué)生基函數(shù)是根據(jù)曲線的性質(zhì)和定義推導(dǎo)出來(lái)的,不是隨隨便便指定的,這樣學(xué)生比較容易接受。實(shí)際上,無(wú)論Bezier曲線或B樣條曲線,都是曲線造型技術(shù)中的經(jīng)典算法,但也存在缺點(diǎn)。目前比較流行的曲線造型技術(shù)是細(xì)分算法,它有很多很好的性質(zhì),如多分辨率,應(yīng)用簡(jiǎn)單等。由于其比較新,很多教科書(shū)中尚未介紹。一般我從應(yīng)用層的角度將三次B樣條細(xì)分和四點(diǎn)插值細(xì)分等典型算法介紹給學(xué)生,介紹他們的特點(diǎn)以及實(shí)現(xiàn)技術(shù)。真實(shí)感圖形繪制部分,涉及數(shù)學(xué)、物理、心理學(xué)等方面的知識(shí),理論較深,不太適合本科生學(xué)習(xí)。但由于其做出來(lái)的圖形太漂亮,很具吸引力。而且,用OpenGL的庫(kù)函數(shù)實(shí)現(xiàn)并不難,所以這部分內(nèi)容我一般是介紹一些基本概念,然后做一些程序演示。一方面增加學(xué)習(xí)的興趣,另一方面讓他們意識(shí)到,有些知識(shí)盡管理論比較深,但由于有現(xiàn)成的類(lèi)似OpenGL庫(kù)函數(shù)這樣的技術(shù)支撐,也容易實(shí)現(xiàn)。很多東西并不是想象的那么神秘,那么可怕。
4結(jié)語(yǔ)
計(jì)算機(jī)圖形學(xué)是一門(mén)理論內(nèi)容深,應(yīng)用范圍廣的課程。本文就如何組織教學(xué)內(nèi)容談了自己的見(jiàn)解和體會(huì),目的在于提高學(xué)生學(xué)習(xí)興趣,讓學(xué)生在易于接受的情況下學(xué)到更多有用的知識(shí)。實(shí)踐表明方法具有一定的可行性,普遍學(xué)生反映,通過(guò)課程的學(xué)習(xí)體會(huì)到了圖形學(xué)的博大精深,增加了圖形學(xué)的學(xué)習(xí)興趣。但也有部分同學(xué)感覺(jué)有些內(nèi)容講解不夠深入,難以理解。所以,如何在有限的學(xué)時(shí)內(nèi)更好地組織教學(xué),還有待進(jìn)一步探討。相信通過(guò)學(xué)習(xí)、思考和實(shí)踐可以做得更好。
參考文獻(xiàn):
[1] 唐榮錫,汪嘉業(yè),彭群生. 計(jì)算機(jī)圖形學(xué)教程(修訂版)[M]. 北京:科學(xué)出版社,2000.
[2] 周開(kāi)進(jìn),王志剛. 計(jì)算機(jī)學(xué)科與數(shù)學(xué)的強(qiáng)相關(guān)性及其對(duì)專業(yè)教育的影響[J]. 中山大學(xué)學(xué)報(bào)論叢,2002,(6).
[3] 羅笑南,王若梅. 計(jì)算機(jī)圖形學(xué)(第三版)[M]. 廣州:中山大學(xué)出版社,2004.
[4] 孫家廣,胡事民. 計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程[M]. 北京:清華大學(xué)出版社,2005.