鐘若武 王惠平
摘要:計算機動畫是計算機圖形學的熱門話題之一。三維圖形是計算機動畫的核心技術。OpenGL作為各種計算機環境的三維應用程序接口,可以更好地實現三維動畫編程。就我校結合OpenGL的《三維動畫編程》課程的建設探索情況做了介紹,主要包括教學目標、教學內容、教學模式、實驗項目等各個方面。
關鍵詞:OpenGL;動畫;編程;計算機圖形學;教學
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2018)28-0117-02
Exploration and Construction of 3D Animation Programming Combined with OpenGL
ZHONG Ruo-wu, WANG Hui-ping
(School of Information Science and Engineering, Shaoguan University, Shaoguan 512005, China)
Abstract: Computer animation is one of the hot topics of computer graphics. 3D graphics is the core technology of computer animation. OpenGL can realize 3D animation programming well as it is 3D API suitable for every kinds of computer environments. This article introduced the exploration and construction of 3D Animation Programming combined with OpenGL. It covered the teaching goal, teaching content, teaching modern, lab content, etc.
Key words: OpenGL; animation; programming; computer graphics; teaching
1 引言
計算機圖形學是計算機科學領域發展最活躍、應用最廣泛的分支之一[1]。科學計算可視化、計算機動畫、虛擬現實是近年來計算機圖形學的三大熱門話題,而三維圖形是這三大熱門話題的核心技術[2]。當前三維圖形在醫學、軍事、航空、航天、地質勘探、藝術造型和文化娛樂等方面有著十分廣泛的應用。
1992年,OpenGL正式成為各種計算機環境下的三維應用程序接口。它具有使用簡便、高效率、穩定可靠、性能高、可擴展移植、適應性強等特點,是唯一真正開放、獨立于供應商、跨平臺的圖形開發行業標準,是圖形開發工作者必須掌握的開發工具[3]。而OpenGL圖形系統是指一個豐富的三維圖形函數庫,是圖形系統中的一個軟件接口,允許程序開發者創建一個交互性的程序,從而能夠產生三維移動的物體的彩色圖像。它除了具有基本的OpenGL 函數以外,還能夠支持OpenGL實用庫、OpenGL輔助庫、Windows專用庫函數、Win32 API 函數等其他四類函數。它還可以有雙緩存的功能,主要應用于制作動畫[4]。
我校結合時代發展開設了《三維動畫編程》這門課。本文介紹了我校結合OpenGL的《三維動畫編程》課程的建設探索情況。
2 當前課程現狀
我校計算機專業在大三上學期開設《三維動畫編程》。該門課程是專業選修課,共計54學時,其中理論課40學時,實驗課14學時。該門課程的內容涉及計算機圖形學和編程知識,對學生前期的知識儲備和編程技能要求較高。由于課程屬于動畫方面,學生普遍對該門課程具有濃厚的興趣。
3 結合OpenGL的三維動畫編程課程建設思路
3.1 明確教學目標
對于本門課程的建設,首先要明確教學目標。經過筆者深入思考與調研,確定本門課的教學目標如下:
(1)知道《三維動畫編程》這門課程的性質、地位和價值。了解OpenGL的研究范圍、基本框架、研究方法和未來發展方向。
(2)學會用C語言調用OpenGL函數庫實現三維動畫的生成。
(3)掌握使用OpenGL繪制基本圖形、三維坐標轉換、顏色光照材質、紋理映射、動畫生成。
(4)了解OpenGL的使用圖形技巧,例如曲線的生成,特殊效果混合、霧化、抗鋸齒,片段測試。
(5)通過本課程的學習,應達到用編程方法去實現三維動畫的效果。
3.2 設計教學內容
理論教學內容分為以下8講:
第1講為3D圖形學基本原理,主要介紹計算機圖形學的基本原理、OpenGL的發展歷史,OpenGL的特點功能,OpenGL的操作步驟,課時為2學時。
第2講為OpenGL的空間繪制幾何物體,主要介紹繪制幾何點、繪制3D直線、繪制3D三角形、繪制其他多邊形、創建實心物體、法線向量,課時為6學時。
第3講為OpenGL坐標變換,主要介紹視點變換、模型變換、投影變換、視口變換、裁剪變換、矩陣堆棧操作、顯示列表,課時為8學時。
第4講為OpenGL光照材質的使用,主要介紹顏色的使用、光照的使用、材質的使用,課時為8學時。
第5講為紋理貼圖,主要介紹位圖和圖像、紋理映射,課時為6學時。
第6講為特殊效果,主要介紹混合、霧化、抗鋸齒,課時為4學時。
第7講為曲線和曲面的繪制,主要介紹二維曲線的繪制、三維曲線的繪制、二維曲面的繪制、三維曲面的繪制、NURBS曲線和曲面的繪制、二次幾何體的繪制,課時為4學時。
第8講為片段測試,主要介紹裁剪測試、Alpha測試、模板測試、深度檢測,課時為2學時。
本門課程注重理論和實際相結合,在每一章的講解過程中精選案例,進行案例教學。在每一章講完理論后,緊接著介紹如何采用OpenGL 進行具體編程,使學生可以利用所學知識做出自己的圖形,提高學生的學習興趣與編程能力。
3.3 確定教學模式
在教學模式選擇上,結合學生的實際情況,筆者采用控制臺應用程序結合OpenGL模式。這種模式較為簡單。教師教學準備方便,學生在掌握基本C語言編程知識和OpenGL實用程序工具包GLUT的窗口管理方法基礎上,可集中精力學習OpenGL的圖形繪制技術。學生學習理解容易、上手快,數學效果明顯。
VC++里采用控制臺應用程序結合OpenGL的圖形編程模式實際上是一種用C語言調用OpenGL函數的面向過程的編程框架,其程序的基本結構是定義窗口、清理窗口、繪制物體和結束運行。
其基本步驟如下:
(1)定義窗口。
(2)清理窗口。
(3)繪制物體。
(4)結束運行。
3.4 設置實驗項目
《三維動畫編程》是一門實踐性很強的課程。為了使學生能學以致用,真正掌握目前應用廣泛的三維動畫技術,做到與時俱進,除了理論教學外,必須輔以足夠的實驗教學,著重培養學生的編程實現能力,使得學生學習該課程后能夠利用OpenGL進行具體的三維圖形編程。筆者結合教學目標和教學內容,對本門課做了實驗設置。表1 所示的實驗項目設置方案,不僅要求學生掌握基本算法,更注重學生能力的培養,包括學習應用新技術的能力、綜合編程能力、分析問題的能力、解決問題的能力以及創新能力。在實驗過程中注意控制實例的難易程度,讓學生直觀、輕松地理解每種模型的思路、效果,進而領會對應的編程算法[5]。
4 結論
本文介紹了我校結合OpenGL的《三維動畫編程》課程的建設探索情況。本課程的教學目標是既要講透基本原理,又能適當融合當前三維計算機圖形技術的最新發展,并結合具體實踐開展案例教學。本著這一目標,我們設計了課程的教學內容和實驗內容,確定了教學模式,希望學生學習完課程后能夠學到最新的三維動畫技術,并能進行具體的動畫編程。
參考文獻:
[1]廖寧.泛在學習下獨立學院《計算機圖形學》混合式教學構建源[J].高教學刊,2018(14):127-128.
[2]張小紅,梁志瓊. 計算機圖形學與圖形圖像處理技術及應用分析[J].信息與電腦,2018(11):169-170.
[3]陳永強.結合OpenGL的圖形編程教學模式研究[J].軟件導刊,2013(6):148-149.
[4]張燦.基于OpenGL實驗平臺的計算機圖形學教學改革研究[J].電腦知識與技術,2012(8):7826-7827.
[5]劉宇,王瑜蕾.計算機圖形學選修課實驗教學改革探討[J].計算機時代,2018(6):91-93.
【通聯編輯:王力】