倪波 鄧丹君 姚莉
摘要:目前,越來越多的高校在本科階段開設游戲開發(fā)方向的相關課程。針對“計算機圖形學”課程具有數(shù)學理論多和算法復雜等特點,如何將圖形學理論和游戲開發(fā)有機地結合起來,在講授“計算機圖形學”課程的同時,兼顧游戲開發(fā)方向的人才培養(yǎng)目標,使得學生從游戲開發(fā)的視角理解圖形學相關理論并從圖形學的角度去思考游戲開發(fā)中的相關技術是一個值得深入探討的問題。為此,從“計算機圖形學”課程的特點分析開始,結合當前教學過程中存在的問題,提出面向游戲開發(fā)導向的“計算機圖形學”課程建設的思路。
關鍵詞:計算機圖形學;游戲開發(fā);課程建設
中圖分類號:G4
文獻標識碼:A
doi:10.19311/j.cnki.16723198.2017.01.082
0引言
隨著市場對游戲開發(fā)人才的需求越來越大。許多高校在本科階段設置了有關游戲開發(fā)方向的課程?!坝嬎銠C圖形學”作為一門計算機科學方向的專業(yè)基礎課,主要講授包括:模型繪制、模型渲染、紋理和光照等內容。這些內容是構成游戲開發(fā)的主要理論基礎。然而,在實際教學過程中學生普遍反映“計算機圖形學”難學,主要體現(xiàn)在圖形學涉及的數(shù)學知識較多、相關算法晦澀難懂。如果沒有大量的實踐,學生會感到空洞與乏味。如何在講授“計算機圖形學”基本理論的同時,結合游戲開發(fā)的實踐,使得學生將枯燥的理論和算法與游戲開發(fā)的能力實現(xiàn)有機的對接,是一個值得深入探討的問題。本文在分析了目前“計算機圖形學”授課內容的基礎上,結合其內容與游戲開發(fā)之間的內在聯(lián)系,對面向游戲開發(fā)的“計算機圖形學”課程建設思路進行了探討。
1當前“計算機圖形學”授課現(xiàn)狀
目前大多數(shù)高校的本科“計算機圖形學”授課時間控制在50學時左右。以筆者所在的學校為例,理論與實驗學時分別是36和14學時。如圖1所示,理論授課內容主要分為二維、三維模型繪制、幾何變換和渲染,相關數(shù)學基礎和圖形引擎庫OpenGL等。傳統(tǒng)的課堂教學中,二維圖形學的內容占據(jù)相當大的比例。然而,在實際游戲開發(fā)實踐中,二維圖形涉及的較少,主要以包括:三維建模、幾何變換、視圖變換、材質、紋理貼圖、圖形渲染、模型動畫等三維圖形學的內容為主。如表1所示,實驗內容主要以模型的繪制、剪裁、渲染為主,實驗類型主要以驗證型為主,實現(xiàn)方法主要采用C++語言和OpenGL圖形庫。學生在學習這一部分內容的時候,普遍感到算法較為枯燥,而且無法和實際應用聯(lián)系起來,容易產(chǎn)生厭學的情緒。而且,OpenGL作為一款以C++為基礎的開源三維圖形引擎,優(yōu)點是獨立于窗口系統(tǒng)和操作系統(tǒng),以它為基礎開發(fā)的應用程序可以十分方便地在各種平臺間移植,弊端是封裝性不夠,要實現(xiàn)復雜的游戲動畫效果需要學生對底層的動畫原理和數(shù)學知識有較強的理解和熟練掌握C++編程技能。
在授課環(huán)節(jié)上,老師一般采用是先講授圖形學理論課,然后進行實驗課,目的是在實驗環(huán)節(jié)讓學生應用所學的理論知識,鍛煉實踐能力。但該方式也存在一些弊端:理論課和實驗課相對割裂,學生在學習圖形學算法和理論時對枯燥的內容感到較難,缺少實踐,而在實驗環(huán)節(jié),在有限的時間內很難真正掌握開發(fā)工具并作出具有一定深度的作品。
2面向游戲開發(fā)能力的計算機圖形學課程建設思路
基于上述問題,筆者結合游戲開發(fā)所需要的能力特點,從以下幾個方面入手,對“計算機圖形學”課程的改革進行了論述。
2.1課程內容
由于本門課程的學時限制,我們對目前授課內容的基礎上進行了相應的取舍,即講授重點放在三維圖形學的內容。另外,將一些游戲開發(fā)過程中較為關鍵的圖形學相關內容補充到授課內容中,例如以下兩方面的內容:
場景組織與模型渲染:場景組織是三維游戲中核心內容之一。在一個三維游戲中,需要將許多的模型用某種數(shù)據(jù)結構的方式將其組織起來,然后在繪制每一幀的時候將其渲染處理。如何合理有效地管理三維場景中物體之間的相關、從屬、互相影響的關系會對三維場景的生成效率產(chǎn)生重要影響。場景組織需要牽涉到數(shù)據(jù)結構中的排序算法,如:N叉樹排序、堆排序算法?,F(xiàn)有的大多數(shù)圖形學教材并沒有將上述內容列入主要章節(jié),而場景組織的相關算法是實現(xiàn)游戲開發(fā)的核心算法之一,對這一部分的內容應補充進授課內容。
模型交互與動畫算法:在游戲開發(fā)過程中,三維模型的交互是利用鼠標和鍵盤對模型的運動進行控制。三維模型的動畫包括:模型運動、碰撞檢測、人體骨骼動畫、漫游等。掌握這部分內容對于學生深入理解游戲開發(fā)來說也是極有必要的。根據(jù)筆者所知,目前的《計算機圖形學》教材中,大多數(shù)沒有涉及這部分內容,但也有一些《計算機圖形學》課本增加了三維模型動畫及動力學的內容,如潘云鶴等所著的《計算機圖形學:原理、方法及應用》一書中,就計算機動畫的應用作為專門的一章內容進行介紹。
2.2內容組織
針對圖形學中大多數(shù)的理論比較抽象,實驗也大多為算法的驗證型實驗。大多數(shù)學生在學習本門課之前并沒有相關計算機圖形學方面的知識儲備,因此造成學生普遍反映沒能將所學知識應用到實際應用中,從而降低學習本門課程的興趣。教師在具體講授過程中,可以按照構造游戲的流程,從角色建模講起,用游戲設計這一根主線找出各部分內容之間的聯(lián)系,使得學生對課程的內容和游戲開發(fā)之間的關系有一個全貌性的認識。本文對圖形學中相關算法與游戲開發(fā)的具體應用之間進行必要的對接。例如,在講解物體建模內容方面,可以先采用三維建模軟件(3DMAX或MAYA)實現(xiàn)基本物體的建模過程,并通過不同的視圖展示模型的線框或三角面片視圖。這樣可以讓學生直觀的感受圖形學中三維模型是如何構造的,從而讓其理解在OpenGL中所調函數(shù)的意義。三維模型的顯示方面,通過在三維建模軟件中設置攝像機成像原理,經(jīng)過三維空間中實體的世界變換、視角變換等過程了解模型剪裁、幾何變換、投影變換的作用,從而更好的輔助學生了解相關算法的理解。真實感圖形學主要包括光照模型、紋理貼圖等,是圖形學中較為復雜和難理解的內容。老師利用三維建模軟件中的燈光、材質、質感、紋理貼圖的實現(xiàn)過程,讓學生直觀的了解圖形學中實現(xiàn)真實感的途徑與方法。欲使課堂講授的內容生動起來,必須有實際的案例支撐,因此建設面向游戲方向的圖形學案例庫,使得學生能夠快速理解和掌握相關理論和技術,對于提高圖形學課程的授課質量至關重要。
2.3圖形庫的使用
目前大多數(shù)圖形學課本都是采用OpenGL作為實驗的圖形生成庫。該圖形庫對于學生理解簡單模型的生成具有良好的作用。但是OpenGL對場景組織、模型渲染、真實感、動畫等功能的封裝不夠,從而造成需要學生對一些渲染、光照等數(shù)學模型有著較為深刻的理解,并將其用C++語言和OpenGL實現(xiàn)。為了讓學生掌握游戲開發(fā)中有關場景組織、模型渲染和動畫等相關功能,本文建議使用當前主流的3D圖形API,如:DirectX或者OSG(Open Screen Graph)等。DirectX是微軟開發(fā)的多媒體引擎主要用于Windows操作系統(tǒng)開發(fā)。Open Scene Graph是一個著名的開源三維圖形庫,被廣泛的應用在可視化仿真、游戲、虛擬現(xiàn)實、科學計算、三維重建。這兩個圖形庫對涉及場景組織、渲染、光照、模型交互動畫等高級算法具有良好的封裝,使得學生在使用只需要調用相關的API函數(shù)即可生成生動的游戲渲染和動畫效果。
3結論
結合圖形學教學的實際以及游戲開發(fā)專業(yè)方向的培養(yǎng)目標,從教學內容、內容組織、圖形庫選擇三個方面對于面向游戲開發(fā)導向的“計算機圖形學”課程教學改革進行了一些探討,希望能對游戲開發(fā)專業(yè)的教學和課程建設有所促進。
參考文獻
[1]孫家廣,胡事民.計算機圖形學基礎教程[M].北京:清華大學出版社,2005.
[2]向世明.OpenGL編程與實例[M].北京:電子工業(yè)出版社,1999.
[3]潘云鶴.計算機圖形學:原理、方法及應用[M].北京:高等教育出版社,2002.
[4]Luna F D.Introduction to 3D Game Programming with DirectX 10[J].Mathematical Statistics,5th Edition,Eaglewood Cliffs,NJ:Prentice-Hall,2008.
[5]王銳,錢學雷.OpenSceneGraph三維渲染引擎設計與實踐[M].北京:清華大學出版社,2009.