Translate this Website to:

星期五, 7月 20, 2012

YafaRay 0.1.2 - Photon Mapping 照明方法



光子映射(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 : 搜尋光子數。
以下是我對光子映射運作方式的理解。YafaRay 在建立光子映射圖之後,會把整個場景分割成一個一個的小區域。分割方法是由攝影機向場景發射射線,當射線擊中物體,就以擊中的那一點為圓心,在搜尋半徑(Search radius)的範圍內搜尋光子,搜尋半徑的單位是 Blender Unit。搜尋光子數的最大值由 Search count 設定;也就是說,若搜尋數為 100,則當 YafaRay 搜尋到 100 個光子後,就不會在這個區域繼續搜尋。當整個場景的光子搜尋完畢,就根據場景中的光子密度計算整個場景的亮度。關於參數間的關係,請參閱:YafaRay 0.1.1 : 用光子映射圖(photon map)來評估 Photon Mapping 的設定



如果開啟 Show radiance map 選項著色,得到的會是如上圖般由色塊拼成的圖像。Final Gather 即是用來消除色塊,讓顏色平滑化的方法。Final Gather 的 Samples 參數(取樣值)影響最終成像的品質,數值愈高、品質愈佳、時間愈久。官網討論區建議,在一般室內場景,Samples 值最好在 64 以上。

官網建議:光子映射較適合用在四周圍蔽的室內場景。

References:
YafaRay 學習筆記

0 意見 Comments:

張貼留言

Related Posts Plugin for WordPress, Blogger...