光子映射(Photon Mapping, PM)的運作方式主要有兩個階段。
首先由光源向場景中發射一定數量的光子,這些光子在場景中反彈數次後,記錄這些光子遺留在撞擊表面的能量(亮度、顏色等)。為求運算效率,不可能無限制的向場景中發射光子,因此必定有很多地方沒有能量資訊。所以發射光子後,PM再使用光子密度估計法(density estimates)來推算沒有光子撞擊位置的亮度,以求取整個場景的亮度分布。也因為成像有很多部份是推算出來的,所以光子映射被認為是有偏差的(biased)著色方法。PM的第二階段是由攝影機發出射線,也就是 ray tracing 來計算最終的成像。
上圖是頁首圖的著色設定。YafaRay 的光子設定分為兩個部份:漫射光子(Diffuse Photons)和焦散光子(Caustic Photons)。焦散光子專門用來計算場景中的焦散效果,其餘部份則由漫射光子負責。本文重點在漫射光子,焦散光子請參閱:YafaRay 0.1.2 - 焦散光子 Caustic photon map。漫射光子的參數包括:
- Depth : 光子碰到表面的反射與折射次數,在同樣光子數的條件下,反射次數愈多場景愈亮。
- Photons : 用來建立光子映射圖(計算場景亮度)的光子數。
- Search radius : 搜尋半徑。
- Search count : 搜尋光子數。
如果開啟 Show radiance map 選項著色,得到的會是如上圖般由色塊拼成的圖像。Final Gather 即是用來消除色塊,讓顏色平滑化的方法。Final Gather 的 Samples 參數(取樣值)影響最終成像的品質,數值愈高、品質愈佳、時間愈久。官網討論區建議,在一般室內場景,Samples 值最好在 64 以上。
官網建議:光子映射較適合用在四周圍蔽的室內場景。
References:
YafaRay 學習筆記
留言
張貼留言