?

新工科背景下“計算機圖形學”教學改革

2021-08-24 08:48呂澤華
電氣電子教學學報 2021年4期
關鍵詞:計算機圖形學工業界圖形學

萬 琳, 呂澤華

(華中科技大學 軟件學院,湖北 武漢 430074)

0 引言

2017年,教育部提出進行“新工科”建設,對我國高等工程教育的內涵、建設與發展的路徑進行了探討與規劃[1~3]。作為一門面向應用的交叉學科,計算機圖形學應用在計算機輔助設計與制造、科學計算可視化、虛擬現實/增強現實、游戲與電影特效等領域,對學生的數學基礎、計算思維、計算機系統結構理解和程序設計能力都有一定的要求[4~6]。在新工科的背景下,“計算機圖形學”課程的教學只有做到理論和實踐密切聯系、經典理論和創新思維有效融合才能培養出工業界需要的具備實踐能力和創新精神的高素質復合型新工科人才。

1 “計算機圖形學”課程教學現狀

計算機圖形學經歷了五十多年的發展,在理論方面,從光柵化圖形學到真實感圖形學[7],形成了十分豐富、完整的理論體系,學生學習周期長;在工業界的應用方面,一般會采用先進的編程體系、基于圖形引擎和GPU芯片來實現。和國外相比,國內圖形學的教學比較傳統,主要存在以下幾個問題:

1)教學內容的構建不完全滿足工業界的需求

從理論教學上看,“計算機圖形學”的教學內容包括光柵圖形學和真實感圖形學兩個主要部分。光柵圖形學主要包括基本圖元的生成和屬性處理算法、二維/三維的變換與觀察計算等;真實感圖形學則包括光照、紋理、陰影的計算。要想達到工業界影片、游戲的效果,這兩個部分密不可分。但是,目前的理論教學中容易出現將兩者割裂的問題,缺少基于圖形繪制本質的融合。

從實驗教學看,“計算機圖形學”的實驗教學中,部分教師開始訓練學生基于工業界認可的圖形標準如OpenGL和DirectX等。但是,部分實驗教學缺少對著色器和可編程渲染管線的引入。而且,在實驗中一般通過調用GPU支持的圖形API(如OpenGL和DirectX的圖形API)完成圖形繪制,把GPU當作一個“黑盒子”并不對其內部結構進行探究。

2)教學過程的組織不完全符合學生的認知規律

在圖形學應用飛速發展的今天,學生對圖形學的認知起點并非在課堂上,而是在生活中。手機上應用的圖形用戶界面、電影、游戲、虛擬現實都讓學生領略到圖形學的魅力[8]。但是走進課堂,學生們卻發現自己只能繪制直線、立方體等簡單圖形。其實,光柵化和真實感圖形學的經典理論知識、軟光柵編程的方法都是圖形學這座大廈的基石。但是,目前的教學過程不符合由外而內、由抽象到具體的認知規律。通過搭建先進的編程框架、實現與工業界相通的圖形應用讓學生了解圖形學,激發學生的學習興趣,進而引導學生揭開圖形學的神秘面紗,探尋背后的奧秘——這一過程將更符合學生的認知規律。

2 “計算機圖形學”教學內容構建

在新工科的背景下,為培養學生掌握“計算機圖形學”的理論知識和實踐能力,不僅需要面向工業界的實際應用需求,也需要回歸圖形學的本質?;趫D形渲染流水線,參照工業界實際編程框架,我們對“計算機圖形學”的教學內容進行了構建。

2.1 基于渲染流水線的理論教學

根據電氣與電子工程師協會IEEE(Institute of Electrical and Electronics Engineers)的定義,計算機圖形學是研究怎樣利用計算機來顯示、生成和處理圖形的原理、方法和技術的一門學科。圖形學的輸入是對圖形的數學描述,而輸出則是顯示設備上的像素點陣,本質是一個渲染的過程。在圖形標準、流水線的概念、鉤函數機制、GPU計算引入之后,這一渲染的過程表現為一個可編程渲染流水線。

對于給定的三維物體,顯示、生成和處理圖形的過程轉換為在設置虛擬相機、光源、照明模式以及紋理等諸多條件下生成像素點陣的過程。這個過程包括了應用階段、幾何階段和光柵化階段三個概念階段,體現了圖形編程的最新發展,也回歸了圖形“從數學定義到像素點陣”的本質。這三個階段有機地融合了光柵化圖形學和真實感圖形學的理論知識:在應用階段,頂點信息來源于幾何造型、圖元生成算法;在幾何階段,整個變換的過程都離不開以齊次坐標為基礎的二維/三維變換和觀察計算、裁剪算法;在光柵化階段,光照、紋理、陰影、深度測試、顏色混合等理論知識十分重要。因此,按照可編程渲染流水線的三個概念階段組織理論教學內容可以將經典理論和圖形最新發展有機地融合在符合現代圖形編程的框架之中。

2.2 面向工業界應用的實驗教學

面向工業界實際的應用,我們對實驗教學進行了改革:

(1)采用可編程渲染流水線:在圖形編程的發展歷程上,圖形標準的成熟、流水線概念的形成以及鉤函數機制的出現都是里程碑——圖形標準使得圖形編程與硬件無關,固定流水線進一步解放了程序員,鉤函數則突破了固定流水線的限制。目前工業界的圖形編程普遍采用可編程渲染流水線,為了培養能勝任工業界圖形開發工作的圖形編程人才,我們的實驗教學將以可編程渲染流水線為基礎。

(2)結合CPU和GPU的計算能力:早期的圖形編程全部由CPU完成,然而隨著GPU的出現和飛速發展,圖形編程應該充分利用CPU和GPU的計算能力。由于結構上的區別,CPU和GPU的計算能力有很大差異,CPU可以方便地實現數據之間存在相關性的算法,而GPU則可以對彼此間無關的大量密集型數據進行并行計算。比如,以圖形計算為例,CPU可以方便地實現射線與不規則物體的求交運算,而GPU則擅長用矩陣運算實現幾何階段圖元大量頂點的坐標系變換。訓練學生針對不同的圖形應用結合CPU和GPU的計算能力設計算法,不僅可以提高學生的圖形編程能力,還可以培養學生的計算思維和對計算機系統結構的理解力。

(3)基于著色器Shader編程:作為工業界主要的圖形標準之一,OpenGL得到了所有GPU硬件廠商的支持。OpenGL提供了大量的圖形應用程序接口API(Application Programming Interface),而其著色器語言GLSL(OpenGL Shading Language)則是一種類C的編程語言,方便程序員編寫進行矩陣運算、紋理映射等圖形處理的著色器。學生可以通過寫Shader,讓GPU執行渲染命令,實現基于GPU硬件的各種各樣靈活的圖形計算。學習Shader可以幫助學生更好地了解圖形學的算法和GPU的工作邏輯。在實驗教學中,可以設計循序漸進的練習。以“片元著色器”為例,可以先給出示例代碼,通過讓同學們修改其中參數觀察結果的變化,之后則可以通過程序填空、程序段擴展等逐步增加圖形編程難度,對學生進行進階訓練。 基于以上考慮,在實驗教學中我們采用可編程渲染流水線,結合CPU和GPU的計算能力,基于OpenGL圖形標準搭建了先進實用的編程框架。如圖1所示,這一框架和工業界主流圖形編程框架完全一致。應用層包括圖形應用和圖形引擎,將渲染命令發給支撐層;支撐層包括圖形標準和顯卡驅動,將渲染命令翻譯成硬件可以理解的指令發給硬件層;硬件層則由CPU和GPU配合完成圖形計算。

其中,“教學實驗”的設置在應用層,不僅可以基于圖形引擎開發面向用戶的圖形應用,也可以開發面向開發人員的圖形引擎。這樣的定位可以幫助我們培養具備實踐能力和創新精神的高素質人才。

在實驗內容上,針對流水線的三個階段規劃了不同的實驗內容,如圖2所示。

圖1 圖形編程框架

圖2 三個階段的實驗內容規劃

應用階段的環境搭建實驗主要是讓學生做好實驗準備;應用程序階段針對圖元生成設置了三角形繪制,針對造型技術的規則造型部分設置了球的繪制、模型導入實驗,非規則造型部分設置了粒子系統實驗;

幾何階段,設置了著色器實驗幫助學生學習著色器編程,攝像機和天空盒則可以讓學生們學習到如何實現觀察變換、模型變換、投影變換、屏幕映射以及裁剪;

光柵化階段則需要讓學生對光照、紋理(顏色紋理屬于平面紋理,法線貼圖可以實現視覺效果凹凸不平的幾何紋理)、陰影等真實感圖形學知識進行實踐,而透明物體這一實驗可以讓學生深入學習深度測試、顏色混合等重要內容。在學習了三個階段之后,通過“實驗14:延遲渲染”可以讓學生對正向渲染和幾種不同方式的延遲渲染進行對比,體會到可編程渲染流水線的靈活性,學習到如何優化渲染過程以提高性能。

3 “計算機圖形學”教學過程組織

以2節構建的理論和實驗教學內容為基礎,我們需要對教學過程進行合理的組織,引導學生由外而內、由淺入深、從抽象到具體地進行學習。具體包括以下組織方法:

1)以渲染流水線為主線分層、分塊組織教學內容

在學習的過程中,我們的主線仍然是渲染流水線的三個階段,但是每個階段又可以分層和分塊,分層對應到不同的深度,分塊則對應到不同的知識點。具體的問題和實驗則可能在不同的層次上對應到不同的知識點,如圖3所示。分層的方式可以實現知識體系的縱向深化,使學生循序漸進掌握計算機圖形學一般應用問題的解決方法,并鞏固所學習的基礎理論知識;分塊的方式可以保證知識體系的廣度,幫助學生構建完整的知識體系。

圖3 以渲染流水線為主線分層、分塊組織內容

2)按照“講解-演示-體驗-探索”構建教學資源

為增強教學過程的完整性、趣味性和進階特性,我們構建了從知識點講解、演示型案例、體驗型案例到實驗探索的教學資源體系并不斷對其進行優化。如圖4所示,其中:

圖4 按照“講解-演示-體驗-探索”構建教學資源

知識點講解:除傳統的講義和PPT,還包括知識點講解的視頻資源。2018年,課程組完成了“計算機圖形學慕課”建設,按照知識體系精心拍攝了70個左右,共計約700分鐘的教學視頻。目前該課程已經在中國大學慕課上線三輪,獲得了一定的好評。

演示型案例:生動形象的演示型案例可以幫助學生直觀地理解圖形學的知識點,如圖5所示的通過課程自設卡通形象“小圖”的頂點表示、三角網格等變化可以生動地說明圖形學渲染流水線的處理過程;

圖5 演示型案例:助學——渲染流水線

體驗型案例:體驗型案例可以讓學生參與到交互的過程中,比如可以進行參數設置、程序填空等,通過觀察設置不同參數、填寫不同程序段進行圖形處理時的不同結果學習理論知識,培養實踐能力。這種方式對于在知識體系尚未構建完畢時,引導學生觀察局部變化對整體圖形渲染過程的影響十分有幫助。

進階實驗:設置了從在一個窗口中繪制多邊形到粒子系統、延遲渲染的多個進階實驗,逐步提高學生的圖形編程能力。實驗項目的安排除了基本理論的驗證和基本算法的實現外,還包含各種理論和算法有機結合而進行的綜合設計,以利于培養學生自主學習、獨立思考、分析解決問題的能力。

3)遵循“現象-解釋-經驗-知識”的學習周期

科爾伯等人將學習過程視為一個既主動又被動、既具體又抽象的四級學習周期,具體包括解釋已發生的事情、解釋為什么會發生這樣的事情、如何從經驗中改進和學習、獲得經驗這四個部分??茽柌J為學習周期是一個持續往復的過程,比如各種概念在實踐中要不斷地進行檢驗,并做適當地修整。在“計算機圖形學”的教學中,這個學習周期可以理解為:讓學生看到現象嘗試解釋這是什么現象,進而解釋發生這些現象的原因,從而獲得經驗,最后將獲得的經驗轉化為知識。因此,我們可以從工業界圖形應用入手,讓學生描述現象,通過學習理論知識解釋現象,之后在實踐中驗證并獲得經驗,最后轉化為知識。這一過程既可以激發學生的學習興趣,也可以幫助學生通過理論學習和實踐檢驗的持續往復獲得知識,符合新工科人才培養的要求。

4 結語

針對傳統“計算機圖形學”教學內容不能滿足工業界的需求和教學過程不符合學生認知規律的問題,本文提出“計算機圖形學”教學內容的構建和教學過程的組織方案。在教學內容構建上,結合基于渲染流水線的理論教學和面向工業界的實驗教學做到理論和實踐密切聯系、經典理論和創新思維有效融合;在教學過程組織上以渲染流水線為主線分層、分塊組織內容,按照“講解-演示-體驗-探索”構建教學資源,做到遵循“現象-解釋-經驗-知識”的學習周期組織教學過程。這種教學內容和過程組織,既是對理論和實踐、經典和創新的進一步整合、凝練,也是對學生理論學習和動手實踐模式的新探索,是一種切實可行并行之有效的教學改革思路。

猜你喜歡
計算機圖形學工業界圖形學
期望優秀的工業文化
期望優秀的工業文化
專業課程中引入職業信息與科研經驗的實踐與探索
計算機圖形學與圖形圖像處理技術
用面向科學思維的教學方法改進計算機圖形學課程教學
三維投影變換的MATLAB實現
突出實踐需求的GIS專業《計算機圖形學》課程優化改革
兩岸工業界簽署交流合作備忘錄
第7屆國際圖象圖形學學術會議
非計算機專業計算機圖形學教學改革初探
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合