• 沒有找到結果。

第一章 緒論

第一節 研究背景

近幾年來有許多影像產業都致力於渲染(Rendering)出寫實(Realistic)或精緻 的畫面,如電影特效(Movie Effects)、遊戲開發、工業設計與建築等。在電影產業 中,凡是運用非實際拍攝手法所製作出的影像皆稱為電影特效或者視覺特效

(Visual Effects),像是在電影《阿凡達(Avatar)》和《少年 PI 的奇幻漂流(Life of Pi)》

中都可以看到大量藉由電腦算圖(Computer-Generated Imagery,CGI)所產生的畫 面。過去會採用此方法來拍攝劇情危險度較高或預算有限的場景,但因科技的發 展與演算法的演進,在電影中利用 CGI 已成為目前的主流。

渲染意為將原本是 3D 立體的畫面以 2D 的型式輸出,如同使用攝影器材捕捉 真實世界中的 畫面一樣 。算圖的方法有很多種,像是非真實的框線渲染法

(Non-realistic Rendering),此種方法會呈現場景中所有物件的框線、形狀,對於幾 何學與動畫分析十分有用;較先進的技術則有光跡追蹤(Ray Tracing)、輻射度

(Radiosity)等,同樣也可以渲染出接近真實場景的畫面;不同的渲染方法通常會 以效果逼真與運算即時性的程度來作取捨,通常渲染一個畫面所需的時間從幾分 之一秒到數天皆有可能,常用的單位為 fps(frame per second),代表每秒能夠渲染 出的圖片張數。

2

在圖學領域中,對於如何渲染出擬真畫面的議題一直都有產出相當數量的研 究與論文,其中針對照明方面可以分成直接照明(Direct Lighting)與全局照明

(Global Illumination)。直接照明只須計算場景中來自所有光源直接照射在物體表 面上所得到的貢獻,但對於高品質畫面來說,單單模擬直接照明的結果是不夠 的;全局照明在計算機圖學領域中,即是為了使畫面更為逼真而考慮真實光線在 三維場景中光照效果的總稱,此種效果除了考慮到直接光源的照明,還能夠計算 出反射、折射、柔和陰影等效果。許多演算法如輻射度(Radiosity)、錐追蹤(Cone

Tracing)、路徑追蹤(Path Tracing)、環境光吸收(Ambient Occlusions)、光子映射 (Photon Mapping)等皆為可能使用於全局照明中的演算法。然而,由於光線數量較 直接光龐大許多,因此運算速度方面的成本較為昂貴,則成為全局照明的缺點。

本 研 究 採 用 衍 生 自 即 時 輻 射 度 (Instant Radiosity) 的 多 光 源 方 法 (Many-Light

Methods),即時輻射度的作法是由主要光源開始進行光跡追蹤並創建多個虛擬點 光源(Virtual Point Light,VPL),這些新光源會被放置在場景中由主要光源所生成 的每個反射點上,並用來照亮場景,關於即時輻射度的演算法會於後面的章節進

3

(General-Purpose computing on Graphics Processing Unit,GPGPU)的發展模式,透 過平行化運算(Parallel Computing)的方式可顯著地提升運算效率。而在各家廠商 支持下亦開發了開放式計算語言平台(Open Computing Language platform),使得 在 GPU 上設計程式的功能便利許多,並能夠有效率地處理 3D 圖學所需的大量運 算。

為了使 3D 場景繪製出更逼真的畫質,發展了許多不同的演算法來計算光照 情形,其中光線追蹤(Ray Tracing)方法除了擁有數學運算的正確性,還可以直覺 地計算光照效果,更具有能夠被平行化處理演算法的特性。在後面章節的實作 中,每個像素(pixel)都是依平行的方式計算出光照色彩。

本研究所渲染的對象為靜態場景,利用 OpenCL(Open Computing Language)

4

能夠在異質系統架構(Heterogeneous System Architecture)中平行且良好地運作之 特性,在現今常用的裝置架構下實現多光源方法,我們將傳統多光源方法與光跡 追蹤演算法進行改良,實作出能夠渲染具全局照明效果的 OpenCL 光跡追蹤器。

第二節 論文架構

本論文後續架構如下:第二章介紹有關多光源方法的文獻與 OpenCL 架構,

包含多光源方法的前身——即時輻射度以及光跡追蹤演算法,並探討近期與

GPGPU 相關的研究;第三章介紹研究議題與方法,包含本研究的 OpenCL 光跡 追蹤器架構,以及多光源方法的流程與詳細內容,並說明如何利用 OpenCL 內核 將演算法內容平行化處理,以及用於加速光跡追蹤的的資料結構;第四章則展示 研究結果;第五章為結論與未來工作。

5

相關文件