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