• 沒有找到結果。

第五章 實驗結果與討論

5.2.2 陰影(Shadow)

如此,主要光線花費 21.8 毫秒便完成交點測試,而光源 A 卻得花上 43.2 毫秒。

圖 24 為渲染後的圖像:

場景 主要光線

陰影光線 陰影光線 陰影光線

場景 主要光線

光源 A 光源 B 光源 A + B

Sponza 21.8 ms 43.2 20.0 75.6

Sponza

36.2 fps 14.4 21.7 9.8

表 10:陰影光線追蹤效能表。主要光線表示只追蹤主要光線,未進行陰影的處理。光源 A、光源 B 分別代 表場景中的兩個位置,光源 A + B 表示場景中同時有兩個光源。第二列的數值表示「著色」內核所花費的 時間,單位為毫秒,第三列的數值表示 fps

值得注意的是,若場景中有兩個光源,則著色內核所花費的時間並非個別的 時間相加,原因主要是在進行不同光源的交點測試時,會使用迴圈,例如 for,這 樣會增加一些額外的花費(overhead),以我們測試的場景來說,每一個畫面會多 花費大約 12.4 毫秒(75.6 ﹣43.2 ﹣20.0)。如果將迴圈展開(loop unrolling),使 用兩個光源的時間大約等於個別的時間相加,不過,缺點是程式碼變長且較沒有 彈性,不適合場景中的光源數量很多的情況。

(a) 光源 A (b) 光源 B

(c) 光源 A+B

24:測試場景陰影光線渲染圖。(a)(b) 場景中的紅色方框為光源的位置,(c) 場景中包含兩個光源

5.3 全域照明(Global Illumination)

我們以 Teapot 場景為主要的測試對象,雖然面數不到 7,000 面,但因為全域 照明計算量龐大,即使是這樣簡單的場景,與主要光線的追蹤相較,一張畫面至 少要花費 5 倍以上的時間。

每個像素的取樣數目與渲染圖像

因為著色部分採用累加樣本的方式,隨著樣本數目的增加,渲染後的圖像會 愈來愈清晰,圖 25 為取樣數目與渲染後圖像的比較:

(a) 1 個樣本 (b) 10 個樣本 (c) 100 個樣本

25:測試場景全域照明渲染圖 1。測試場景為 Teapot 加上一個棋盤、兩個平面與代表光區域光源的平面

(白色部分),追蹤深度為 2

然而,就渲染時間來看,很明顯地,每個像素累積的樣本數目愈多,所花費

Teapot 13.3 7.3 4.8

11:全域照明路徑追蹤深度與效能關係表。表格中的數值單位為 fps

測試場景為 Teapot 與 Conference

Teapot Conference

追蹤深度與終止條件

1 14624 36503 8921 4084 2210 1332 862 520 380 231 186 ...

Teapot

2 14625 36495 8968 4245 2241 1271 776 523 380 238 165 ...

Teapot

3 14634 36851 8869 4040 2078 1317 856 523 366 267 187 ...

Teapot

27:路徑追蹤深度與路徑終止關係圖。橫軸表示追蹤深度,縱軸為百分比,表示在該深度的情況下會擊 中光源的路徑數量占所有擊中光源之路徑總數的百分比,測試場景為 Teapot 與 Conference。Teapot 為開 放式場景,路徑數量因深度加深而減少的速度較 Conference 快

standard 與 hybrid

standard 演算法以路徑追蹤來計算直接照明與間接照明,優點是間接照明的效

果較好,但會產生過多的雜訊,必須有足夠多的樣本數才能降低雜訊的數目。圖 28 是在相同樣本數的情況下比較兩種作法的差異,可看出 standard 滲色的現象較 明顯,而 hybrid 的作法雜訊較少,因此只需較少的樣本數就可以有不錯的圖像。

Teapot Conference

0 10 20 30 40 50 60

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 追蹤深度

(a) standard (b) hybrid

圖 28:測試場景全域照明渲染圖 2 。測試場景與圖 31 相同,(a)(b) 取樣數目皆為 1,000 個樣本,追蹤深 度為 5。右下角的圖為藍色方框放大後的結果,可看出 hybrid 法雜訊較少;左圖滲色現象較為明顯,例如 棋盤格白色部分有來自左右兩平面的紅色與綠色

百分比

為了分析兩種作法在間接照明效果上的差異,我們讓圖像清晰程度儘可能達 到最好,也就是讓樣本數目累加至 10,000 個,然後利用影像處理常見的作法 —

「影像相減」來比較兩張圖像,如圖 29,可以看出 hybrid 與 standard 渲染後的圖 像在效果上其實差異不大,因為相似度極高(影像差異圖已接近全黑色)。

(a) standard (b) hybrid

(c) 影像差異圖

圖 29:standard 與 hybrid 影像差異圖。取樣數目皆為 10,000 個樣本,追蹤深度為 5

綜合以上的實驗,我們可以發現 hybrid 雖然間接照明效果不如 standard 好,

但可大幅降低雜訊的數量,在講求速度的即時應用上,應該是不錯的選擇。以深 度 2 為例,每一張畫面可為每一個像素完成追蹤的路徑數量就等於是 fps 的值,

也就是 13.3 條路徑,累積大約 400 個樣本就有不錯的圖像,而渲染時間只需 30 秒左右。

圖 30 是其他較複雜場景的渲染後的圖像,追蹤深度為 5,每一個像素取 10,000 個樣本:

(a) Bunny (b) Sponza

30:測試場景全域照明渲染圖 3。每一個像素取樣 10,000 條路徑。場景為 Bunny 與 Sponza,解析度皆 為 512 × 512, 光源為區域光。

相關文件