過潔 胡炳揚 郭延文
摘 要:針對圖形繪制技術(shù)課程以往實驗設(shè)計中存在的覆蓋面窄、原理理解困難、程序?qū)崿F(xiàn)難度大以及學(xué)生參與度低的問題,設(shè)計了“真實感圖形繪制演示系統(tǒng)”綜合性課程實驗。該實驗貫穿于理論教學(xué)全過程,能夠加深學(xué)生對真實感圖形繪制中關(guān)鍵理論的直觀理解,促進學(xué)生對核心技術(shù)的掌握并提升學(xué)生圖形系統(tǒng)開發(fā)能力,激發(fā)學(xué)生對圖形繪制技術(shù)的學(xué)習(xí)熱情。
關(guān)鍵詞:圖形繪制;綜合性實驗;實驗教學(xué);計算機圖形學(xué)
DOI:10. 11907/rjdk. 192001 開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:G434文獻標(biāo)識碼:A 文章編號:1672-7800(2020)002-0236-04
英標(biāo):Comprehensive Experiment Design of Rendering Technique
英作:GUO Jie,HU Bing-yang,GUO Yan-wen
英單:(Department of Computer Science and Technology, Nanjing University, Nanjing 210023, China)
Abstract: To alleviate the problems of narrow coverage, trouble in understanding the principles, difficulty in implementation and low participating of students in the course of rendering technique, we design a comprehensive experiment named "Demonstration System of Realistic Rendering". This experiment goes through the whole teaching process and can deepen the understanding of complicated principles and key theories in rendering. It also helps students to master the important technologies and improves their capability in developing graphical systems. Moreover, we expect this experiment to inspire the enthusiasm of students for learning rendering techniques.
Key Words: rendering; comprehensive experiment; experiment teaching; computer graphics
0 引言
計算機圖形學(xué)研究如何利用計算機表示、生成、處理以及顯示圖形,可以表示成“計算機圖形學(xué)=幾何+繪制”的簡單模式[1]。近年來,隨著計算機以及互聯(lián)網(wǎng)技術(shù)的發(fā)展,計算機圖形學(xué)已越來越深入人們的日常生活,在影視特效、電腦游戲、虛擬現(xiàn)實、數(shù)字仿真、工業(yè)建模、家裝設(shè)計等領(lǐng)域發(fā)揮著重要作用,成為計算機科學(xué)中最活躍的分支之一[2-3]。目前,國內(nèi)外有很多大學(xué)都將計算機圖形學(xué)作為計算機相關(guān)專業(yè)的重要核心課程,該課程也是本科階段比較難教的課程之一[4-7]。
圖形繪制技術(shù)屬于計算機圖形學(xué)的進階課程,專門面向計算機圖形學(xué)中的繪制任務(wù),具有較強的專業(yè)性和實踐性。為了強調(diào)圖形繪制基本原理,突出圖形繪制的重要概念,認識圖形繪制的本質(zhì)特征,在圖形繪制技術(shù)課程中重點闡述基于物理的真實感圖形繪制技術(shù)[8]。真實感圖形繪制的目標(biāo)是根據(jù)給定的三維虛擬場景,綜合運用數(shù)學(xué)、物理學(xué)以及心理學(xué)等知識,利用計算機程序,生成與現(xiàn)實場景高度相似的圖片。
由于圖形繪制技術(shù)課程對數(shù)學(xué)和物理學(xué)相關(guān)知識要求較高,原理晦澀難懂,算法復(fù)雜抽象,程序?qū)崿F(xiàn)困難,因此每年在南京大學(xué)選修該課程的人數(shù)都不多,國內(nèi)高校也很少開設(shè)該類型的課程。反觀國外,開設(shè)圖形繪制技術(shù)(英文稱Image Synthesis)課程的知名高校眾多,培養(yǎng)的很多學(xué)生都成為領(lǐng)域內(nèi)的科研專家或相關(guān)公司(如迪士尼動畫、皮克斯動畫和維塔數(shù)碼等)的技術(shù)骨干。表1例舉了開設(shè)該類課程的國外高校及相關(guān)情況。
其中,斯坦福大學(xué)已經(jīng)連續(xù)開設(shè)該課程(CS348b)[9]近20年,其首創(chuàng)的圖形繪制競賽(Rendering Competition)也成為業(yè)內(nèi)“標(biāo)桿”,被眾多高校效仿。
作為高級圖形學(xué),圖形繪制對學(xué)生要求較高,對實驗的需求也更為旺盛。類似于其它專業(yè)性課程,實驗教學(xué)設(shè)計的好壞直接影響學(xué)生對該門課知識的掌握情況。一個設(shè)計合理的實驗,不僅有利于促進學(xué)生對專業(yè)知識的理解和能力培養(yǎng)[10],同時也會激發(fā)學(xué)生對更深層次知識的求知欲。因此,在開展圖形繪制技術(shù)理論教學(xué)的同時,探究符合學(xué)生認知規(guī)律的實驗課程教學(xué)模式,尤其是設(shè)計一個綜合性、工程性和層次式的課程實驗。
1 教學(xué)內(nèi)容安排
在圖形繪制技術(shù)課程教學(xué)中,主要面向計算機圖形學(xué)中的圖形繪制任務(wù),講授求解繪制方程過程中所涉及的場景幾何結(jié)構(gòu)、物體材質(zhì)、相機模型、光源模型、光照算法、采樣與重構(gòu)理論、蒙特卡洛技術(shù)等知識,如圖1所示。其中,分析、求解繪制方程是該課程的中心。幾何結(jié)構(gòu)、物體材質(zhì)、相機模型和光源模型是組成三維虛擬場景的必備部件,也是求解繪制方程前的建模準(zhǔn)備。采樣與重構(gòu)理論、蒙特卡洛技術(shù)和光照算法是求解繪制方程的核心技術(shù)。
在理論教學(xué)過程中也會適時穿插一些實驗內(nèi)容,以達到鞏固知識、培養(yǎng)能力的目的。例如,在講述物體材質(zhì)時,嘗試讓學(xué)生生成基于Gabor噪聲的過程式紋理,并將其繪制到虛擬物體上。圖2是某學(xué)生設(shè)計案例的最后效果圖。通過這種方式,學(xué)生不但掌握物體材質(zhì)的概念和過程式紋理的基本內(nèi)容,而且激發(fā)了進一步學(xué)習(xí)的興趣。此外,嘗試讓學(xué)生實現(xiàn)高維空間藍躁采樣和頻譜分析、Glint效果等。
2 實驗教學(xué)困境
在教學(xué)中發(fā)現(xiàn),以往課程實驗設(shè)計存在以下幾個突出問題:
(1)實驗覆蓋面窄,綜合性較弱。以往實驗內(nèi)容通常只集中于實現(xiàn)圖形繪制過程中的某個特定效果,如上述Gabor噪聲實驗只處理材質(zhì)中的過程式紋理效果。這樣容易造成學(xué)生知識掌握的片面性。學(xué)生只會處理紋理,而不知道如何實現(xiàn)其它材質(zhì),如雙向反射分布函數(shù)(BRDF),甚至無法接觸到圖形繪制中更基礎(chǔ)、更重要的光照算法,如光線跟蹤等。
(2)實驗內(nèi)容深,實現(xiàn)難度較大。以往在選擇實驗內(nèi)容時,考慮到教學(xué)時間安排,通常會選擇比較少的實驗內(nèi)容,比如只實現(xiàn)一個特殊效果。但是,由于圖形繪制技術(shù)課程本身需要一定的數(shù)學(xué)知識、物理知識和編程能力積累,因此即使是一個簡單的特效,也需要花費較多時間理解原理、設(shè)計算法并選擇合適的繪制框架。
(3)實驗環(huán)節(jié)引入較晚,學(xué)生參與度低。在傳統(tǒng)實驗教學(xué)環(huán)節(jié)中,為了實現(xiàn)一個具體的視覺效果,往往需要在完成理論課程相關(guān)知識講述后才能開始,而這通常是在大半個學(xué)期之后。實驗教學(xué)環(huán)節(jié)引入時間較晚直接導(dǎo)致學(xué)生參與度低。接近期末時學(xué)生會有來自其它課程的繁重作業(yè)和考試壓力,容易對該課程實驗采取應(yīng)付態(tài)度。
3 綜合性實驗設(shè)計
為有效解決上述實驗教學(xué)困境,加深學(xué)生對真實感圖形繪制中關(guān)鍵理論的直觀理解,促進學(xué)生對核心技術(shù)的掌握并提升學(xué)生圖形系統(tǒng)開發(fā)能力,本文在圖形繪制技術(shù)課程中增加“真實感圖形繪制演示系統(tǒng)”實驗課程教學(xué)。該實驗是面向圖形繪制技術(shù)的一項比較完整的綜合性工程實踐,涵蓋了圖形繪制技術(shù)課程中的大部分概念術(shù)語、基本理論和方法原理?!罢鎸嵏袌D形繪制演示系統(tǒng)”嘗試用可視化或者動畫形式將圖形繪制過程中的重要知識點和核心算法直觀呈現(xiàn)出來,一方面能夠貫穿于理論教學(xué)全過程,達到邊學(xué)邊做的效果,另一方面由于其不依賴于具體的繪制框架,不涉及復(fù)雜的特效處理,因而能夠降低學(xué)生實驗壓力,提升學(xué)生積極性。通過該實驗,學(xué)生能夠在理解計算機圖形繪制領(lǐng)域核心知識、基礎(chǔ)算法的同時,提升其使用相關(guān)編程語言和平臺進行三維圖形繪制系統(tǒng)開發(fā)的能力,初步掌握從事圖形繪制研究及相關(guān)開發(fā)的基本方法和技巧。
3.1 實驗內(nèi)容
“真實感圖形繪制演示系統(tǒng)”具體實驗內(nèi)容包括:
(1)對常見幾何體,如球、立方體、圓柱等進行幾何建模,實現(xiàn)幾何體的平移、旋轉(zhuǎn)、縮放等操作。學(xué)有余力的學(xué)生可以考慮用更為廣泛的三角面片(Mesh)進行幾何建模。
(2)對光源進行幾何和輻射度建模,根據(jù)光源屬性和能量分布對場景中的光線分布進行可視化,并確定每根光線的能量。
(3)實現(xiàn)小孔相機和薄透鏡相機兩種模型。根據(jù)不同相機類型,模擬不同的初始光線生成方式。
(4)實現(xiàn)漫反射、鏡面反射、鏡面折射、Phong高光反射等材質(zhì)模型,根據(jù)不同的材質(zhì)模型,確定并可視化次生光線的傳播方向和分布。學(xué)有余力的學(xué)生可以考慮其它材質(zhì)模型,如微面元模型(Microfacet Model),也可以考慮增加紋理系統(tǒng)。
(5)以動畫形式模擬光線投射算法(Ray Casting)、光線跟蹤算法(Ray Tracing)、分布式光線跟蹤算法(Distributed Ray Tracing)以及路徑跟蹤算法(Path Tracing)的執(zhí)行過程,分析不同光照算法生成光路徑、輻射光能量的異同,了解陰影、間接光照、運動模糊、景深等效果的生成原理和技術(shù)。
3.2 實驗原理及方案
本實驗采用動畫和可視化方法將真實感圖形繪制技術(shù)中的重要知識點和核心算法直觀展現(xiàn)出來。主要包括對三維虛擬場景中重要元素如三維物體、光源、相機、材質(zhì)等的建模;對光線在場景中分布的動畫演示;對場景中光線的能量測量。
(1)虛擬場景建模。為便于實現(xiàn),本實驗只考慮球、長方體、柱體等具有參數(shù)化表達方式的三維曲面,這些曲面都具有解析式,方便計算光線與曲面的交點。每個幾何體的材質(zhì)都屬于4類材質(zhì)(漫反射、鏡面反射、鏡面折射和Phong高光反射)中的一種,其材質(zhì)參數(shù)可由用戶輸入。場景中的光源(除點光源和方向光源外)是一類特殊的幾何體,除了幾何結(jié)構(gòu)外還具有一定的能量分布。場景中存在唯一一個相機,相機類型和參數(shù)也由用戶輸入。為了方便存儲和擴展,場景在搭建完成之后用XML(或JSON)格式保持。
(2)光線分布動畫演示。本系統(tǒng)主要支持4種光照算法(光線投射算法、光線跟蹤算法、分布式光線跟蹤算法以及路徑跟蹤算法)的動畫演示。對于給定的虛擬場景,每種算法的光線分布情況不同。光線投射算法從相機發(fā)出初始光線后,只與場景中的物體作一次相交計算便結(jié)束,根據(jù)交點與光源的位置關(guān)系確定光線能量。光線跟蹤算法是光線投射算法的擴展,當(dāng)與初始光線相交的物體表面屬于鏡面反射或鏡面折射時,根據(jù)物體表面的法向,確定鏡面反射或鏡面折射方向繼續(xù)發(fā)出次生光線,當(dāng)光線與漫反射表面或光源相交時停止追蹤光線。分布式光線跟蹤算法主要用于處理高光反射、軟陰影、景深和運動模糊。它與傳統(tǒng)光線跟蹤算法最大的不同在于傳統(tǒng)光線跟蹤算法在每個交點處只產(chǎn)生一條次生光線,而分布式光線跟蹤算法根據(jù)材質(zhì)和光源的不同,在每個交點處產(chǎn)生多條次生光線。路徑追蹤的基本思想是從相機隨機發(fā)出一條光線,光線與物體表面相交時根據(jù)表面的材質(zhì)屬性繼續(xù)隨機采樣一個方向,發(fā)出另一條光線,如此迭代,直到光線打到光源上(或逃逸出場景),然后用蒙特卡洛積分方法,計算其貢獻。算法核心采用OpenGL開發(fā),界面采用Qt開發(fā)。
(3)光線能量測量。根據(jù)場景中幾何、光源和材質(zhì)的參數(shù)設(shè)定,以及所選擇的光照算法,計算場景中每根采樣光線的能量。光線能量采用Radiance度量。Radiance測量的是三維空間內(nèi)單位面積和單位立體角內(nèi)能量大小。根據(jù)物理學(xué)相關(guān)原理,在無參與介質(zhì)的情況下,沿著某個光線,Radiance保持不變。
3.3 實驗報告要求
實驗報告主要由6部分組成:項目背景、系統(tǒng)分析與設(shè)計、系統(tǒng)實現(xiàn)、效果演示、總結(jié)與展望以及參考資料。
在項目背景方面,學(xué)生需要給出該系統(tǒng)開發(fā)的相關(guān)背景知識,包括闡述三維圖形繪制的基本概念,介紹所涉及的幾何模型、光源模型、相機模型、材質(zhì)模型,對比分析4種常用光照算法,并討論實驗?zāi)康摹?/p>
在系統(tǒng)分析與設(shè)計方面,學(xué)生根據(jù)實驗要求,分析并設(shè)計各個模塊,給出每個模塊的功能和接口,畫出模塊分解圖。對于4種需要展示的光照算法,給出算法流程圖或者偽代碼。
在系統(tǒng)實現(xiàn)方面,學(xué)生需要給出系統(tǒng)開發(fā)和運行環(huán)境,給出重要模塊或算法實現(xiàn)細節(jié)。
在效果演示方面,學(xué)生需展示不同場景在4種光照算法下光線分布的動畫演示圖,并分析場景中光線的能量分布情況。通過調(diào)整幾何、光源、相機以及材質(zhì)等參數(shù),記錄場景中光線的分布變化情況,與理論分析相對應(yīng),總結(jié)規(guī)律。
在總結(jié)與展望方面,學(xué)生總結(jié)實驗過程中遇到的問題及解決方法,對尚未解決的問題給出可能的解決方案。
在參考資料方面,學(xué)生列出實驗過程中所閱讀或參考的相關(guān)資料。
3.4 實驗考核
為了提高學(xué)生對實驗的參與度,分4個時間節(jié)點對實驗進行考核,具體如表2所示。
該實驗最后成績采用多因素成績評定法,其中完成設(shè)計報告10%,完成規(guī)定的功能模塊占50%,完成最終實驗報告占30%,演講交流占10%??己藭r要注意學(xué)生對整個設(shè)計的規(guī)劃性,引導(dǎo)學(xué)生在實驗過程中養(yǎng)成良好的開發(fā)習(xí)慣。
4 結(jié)語
圖形繪制技術(shù)課程是一門專業(yè)性很強且應(yīng)用范圍較廣的課程。為了加強學(xué)生對理論知識的掌握,提高其圖形開發(fā)能力,本文設(shè)計了一個覆蓋面廣、內(nèi)容豐富且易于上手的綜合性課程實驗。實踐證明,該實驗?zāi)軌蚪W(xué)生對圖形繪制技術(shù)的感性認識,激發(fā)學(xué)生學(xué)習(xí)熱情,有利于學(xué)生掌握圖形繪制技術(shù)中的基本原理和重要算法。
參考文獻:
[1] 何援軍. 論計算機圖形學(xué)的若干問題[J]. 上海交通大學(xué)學(xué)報,2008(4):513-517.
[2] 孫家廣, 胡世民. 計算機圖形學(xué)基礎(chǔ)教程[M]. 第2版. 北京:清華大學(xué)出版社,2009.
[3] 何援軍. 計算機圖形學(xué) [M]. 第3版. 北京:機械工業(yè)出版社,2016.
[4] 劉晉鋼,孔令德,王進忠. “計算機圖形學(xué)”課程新教學(xué)模式的研究與實踐[J]. 計算機教育,2010(2):63-65.
[5] 傅向華,周虹. 加強能力培養(yǎng)的“計算機圖形學(xué)”實驗教學(xué)改革[J]. 計算機教育,2012(12):94-97.
[6] 張朝陽,安毅生,李穎,等. 面向?qū)I(yè)特色的計算機圖形學(xué)教學(xué)改革與探討[J]. 軟件工程,2017(7):48-50.
[7] 高雪瑤,張春祥. 基于翻轉(zhuǎn)課堂的計算機圖形學(xué)教學(xué)模式研究[J]. 計算機教育,2017(1):113-116.
[8] PHARR M, JAKOB W, HUMPHREYS G. Physically based rendering: from theory to implementation [M].? Morgan Kaufmann, 2016.
[9] HANRAHAN P. Image synthesis techniques(CS348b)[EB/OL]. [2019-03-22].? http://graphics.stanford.edu/courses/cs348b/.
[10] 袁景凌,饒文碧,熊盛武,等. 面向能力培養(yǎng)的計算機類實驗課程體系探究與實踐[J]. 計算機教育, 2018(2):166-169.
(責(zé)任編輯:孫 娟)