www.flickr.com

星期四, 4月 15, 2004

[轉貼] 關於Final Gather和Global Illumination的看法

火星上的一篇老文章....沒有特別註明,不過應該是指MR的全局裏面的技術

之前我也被Photon和FG之間的關係搞混了,其實是獨立運作的。

MR在MAX6裡面,整合度上是高了很多,記得在r4外掛的時期,連透空貼圖都沒有辦法正確的轉譯,我個人也很期待MR for MAX的表現,畢竟內建的東西能用就用。




關於Final Gather和Global Illumination的看法


作者:unsound


  在網上有人說Final Gather是對Global Illumination的類比。這種說法並不正確。在這裏可能是個文字遊戲,在Mental Ray中Global Illumination指的是光子繪圖演算法,而Final Gather屬於輻射照明演算法,類似於FR和LS中的Radiosity。雖然有些人將輻射照明廣義地定義爲計算場景中面之間光和散射反射的一種渲染規 則。基於這種功能定義,光子繪圖可以被看成是輻射照明的一種類型。但是,實際上許多電腦圖形學家對於輻射照明這個詞僅認爲它是一種特定的演算法,而光子繪 圖是另一種演算法。一般來說,當討論所有這些非直接照明過程時,使用綜合術語“全景照明”(Global Illumination)比較合適。


  那爲何Mental Image要把光子繪圖寫成Global Illumination呢。首先我們知道Final Gather並不是真正的全景照明,它只注重對散射反射進行計算,不考慮別的反射。而光子繪圖計算混合反射,基於這樣的特性,光子繪圖可以很好的類比真實 光線的行爲,可以用於焦散等效果中。相比之下光子繪圖更爲先進,是真正的全景照明。(但這不說明F inal Gather是假的全景照明。它是對光線跟蹤演算法的一種補充,是全景照明演算法的一種,只不過他要和光線跟蹤演算法一起才能達到實際的全景照明。)


  那既然光子繪圖演算法很先進,那爲何還要保留Final Gather呢?且先不說光子繪圖是否十全十美,就單說Final Gather的優勢就不能被光子繪圖替代。


  我們知道Final Gather屬於輻射照明,其中光線通過散射反射面上的顔色來傳輸光。輻射照明可以進行逐步運算,這樣可以根據需要確定光的反射次數,從而形成對真實光照 的精細類比。基於這種特點,我們可以用環境貼圖充當光源用以産生非常真實的照明效果,HDRImage也就是基於此發展來的。


對於兩種演算法都有各自的優缺點。


  Final Gather演算法的缺點是幾何體的解析度(也就是幾何體的多邊形細分度)和全景照明的解析度聯繫在一起。當多邊形較多時,很難計算出一個快而接近的場景光照。如果物體在場景中處於運動狀態,輻射照明方案和幾何形體的分割在每幀動畫是很難計算的。
利用光子繪圖,可以創建一個分開的資料類型,也就是由光子圖(Photon Map)來儲存全景照明結果。一個光子圖填繪結果的解析度和幾何形體的解析度無關。但用光子圖創造細緻精確的光照往往要使用相當多的光子,渲染速度很可能 比用Final Gather産生同樣質量圖像要慢的多。爲了優化渲染時間,需要我們根據實際需要選擇演算法。


下面我談談自己使用Final Gather的一點經驗。


  在我們渲染大的場景時,建築牆面常常出現汙斑。不知大家注意沒有,往往汙斑出在大的牆面和一些拐角處。爲什麽會出在這些位置呢?大家還記不記得 前面講的F inal Gather演算法是和幾何體的解析度相關的。Mental Ray中的Final Gather精確度參數指的就是從每個多邊形上發射多少光線。也就是說物體劃分的越細,照明精度越高,出現汙斑的可能性越小。


  我們往往在大的牆面使用很少的多邊形劃分,往往也就更容易産生汙斑。一般的解決辦法是加大精確度參數,但這樣做會極大的增加渲染時間,不是好辦 法。好的方法是,在建模時對牆面和拐角處進行一定程度上的細分(LightScape的對場景多邊形網格的劃分處理,起到的就是這個作用)。



沒有留言:

本頁面及相關頁面所提及之公司名稱與商標,,其著作權皆屬原公司所有

本網站公開發表之文章若未經聲明,皆屬作者本人所有

如需引用節錄,歡迎來函告知