1. 程式人生 > >VR有五種全域性光照渲染引擎和各自的優缺點

VR有五種全域性光照渲染引擎和各自的優缺點

來自: 喜歡(有些日子總是令人無法淡忘) 2008-10-20 15:53:26

VR有五種全域性光照渲染引擎: 
Irradiance map(發光帖圖) 
Photon map(光子帖圖) 
QMC(準蒙特卡羅) 
Light cache(燈光帖圖) 
Brute force(直接光照.蠻力演算法) 

VR計算光的過程中,間接光照明是由一次反彈和二次反彈兩個來控制。當光線窗過反射或折射物體的時候,就會產生一次反彈,開啟全域性光照就會產生二次反彈。 

發光帖圖:這個渲染引擎在計算場景中物體漫射發光的時候會採取一種貼圖來處理畫面,也是最常用的一種。發光帖圖的運算速度非常快,噪波非常少。 
在間接照明過程中會損失一些細節,如果使用間接照明運算運動模糊時會產生噪波,影響質量。 

光子貼圖:它主要對於存在大量燈光或較少窗戶的室內場景。如果直接使用,不會產生足夠好的效果,它可以作為場景中燈光的近似值來計算,而加速發光貼圖中的間接照明。光子貼圖可以速度非常快的產生場的燈光近似值,也可以儲存光子貼圖檔案以便以後呼叫,特別是渲染相同場景不同視角時,會加速計算過程。光子帖圖一般沒有一個直觀的效果,運動模糊中運動物體的間接照明計算有時不完全正確(引數不太高的時候)。它無法對環境光產生的間接照明進行計算。(例如不能對環境光和MAX下預設的omni泛光燈產生照明計算) 

準蒙特卡羅:它在計算特體模糊反射表面的時候會快一些。它比發光帖圖運算速度快,模糊反射效果好。它在計算間接照明時會比較慢,但效果最精確,尤其是在具有大量細節的場景,如果沒有較高的細分度,渲染出來的影象會有顆粒效果。 

燈光帖圖:它是一個所似於場景中全域性光照明的渲染引擎,與光子帖圖類似,但是沒有其他的侷限性,引擎追蹤攝影機中可見的場景,對可見部分進行光線反彈。燈光帖圖是一種通用的全域性光解決方法,常用的一種。燈光貼圖與光子帖圖相反,它需要處理場景中的每一盞燈光,一般對每個燈光單獨設計引數它對於細小物體的周邊和角落可以產生正確的效果。在大多數情況下,燈光帖圖可以直接,快速且平滑地顯示場景中燈光的預覽效果。對燈光型別沒有限制,但對VRay系統以外的材質支援較差,同樣在引數設定過低的時候,容易對運動模糊中的物體產生錯誤的計算結果。 


Brute force(直接光照.蠻力演算法):大部分情況接近於準蒙特卡羅演算法,比準蒙特卡羅演算法要精確費時,也等於直接計算(Direct Computing),雖然它們的本質還是有點不同。準蒙特卡羅演演算法指的是一種取巧的隨機取樣的方式,主要是為了不計算所有算式(母群體),而只考慮較少的取樣本。蠻力法要跟像是Photon Mapping、 irrandiance cache這種演算法相比較,後者多少有點取巧不計算所有的取樣點,後者是指計算部分取樣點其餘採插值計算。蠻力法則是乖乖地計算所有準蒙特卡羅產生的取樣點。換句話說是直接計算---Direct Computing。 

----------------------------------------------------------- 
Brute Force 
優點: 
1.保留間接照明裡面所有的細節。(例如:小或稅利的陰影) 
2.渲染動畫不會有閃爍的問題。 
3.不需要額外的記憶體。 
4.能正確地計算動態模糊。 
缺點: 
1.對於複雜的場景會消耗很多的計算時間。(如室內照明) 
2.往往產生有燥點,這個問題可以經由發射更多光線來解決,但光線越多時間越長。 

Irradiance map 
優點: 
1.與蠻力法相比,發光貼圖速度非常快,特別是對場面的平面面積較大的,燥點問題大大地減少。 
2.發光貼圖可以儲存起來重複使用,因此可以加速相同場景不同視角的渲染,或是動態場景的動畫。 
3.發光貼圖也可以加速由區域光照所產生的直接漫射照明。 
缺點: 
1.因為用的是插值演算法,所以在間接照明的計算中可能模糊掉該有的細節。 
2.如果引數設定過低,在渲染動畫時可以會產生閃爍的問題。 
3.需要額外的記憶體。 
4.當計算動態模糊時,用這個方法計算出的間接照明並不完全正確,並可能導致燥點(雖然在大多數情況下這個問題不是很顯著) 

Photon map 
優點: 
1.光子貼圖可以快速產生粗略場景中的光照。 
2.光子貼圖可以儲存起來重複使用,因此可以加速相同場景不同視角的渲染,或是動態場景的動畫。 
3.不受視角影響。 
缺點: 
1.不適合單獨使用。 
2.需要額外的記憶體。 
3.在VRay裡面的光子貼圖,計算動態模糊的間接照明結果有可能不完全正確。(雖然在大多數情況下不是太大問題) 
4.光子貼圖需要真正的光源才能運作,它不能計算由天光所產生的間接照明。 

Light cache 
優點: 
1.引數很容易設定,只計算由視角產生的射線,與光子貼圖不同的是,光子貼圖必須計算場景中所有的光源,而且常常要分別設定每個光源的引數。 
2.能夠有效的計算任何型別的光源:天光、自身照明光源、非物理光、光度計燈等,相較之下,光子貼圖的功能是有限的,例如,光子對映無法重現自天光產生的照明,也無法重現沒有平方衰減的標準點光源效果。 
3.燈光快取能在角落和細小物體的周圍計算出正確的結果,而光子貼圖因為必須依賴光密度計算,所以在上述區域往往容易產生錯誤,常常產生過暗或過亮的結果。 
4.在大部分情況下,燈光快取可以直接預覽場景的照明效果。 

缺點: 
1.與熱輻射相同,燈光快取的結果受到視角影響,然而,燈光快取能產生近似的間接照明,對於封閉的空間,幾乎可以完全計算出場景完整的間接照明。 
2.須要使用V-Ray自己的材質。 
3.同光子貼圖,燈光快取不是自適應的,燈光快取是以固定的解析度來計算的,這個解析度可以由使用者自行決定。 
4.燈光快取沒辦法計算出好的凹凸貼圖效果,如果你想要得到好的凹凸貼圖效果,最好搭熱輻射或蠻力法來計算。 
5.燈光快取計算動態模糊時結果不一定是正確的,但是結果非常平滑,因為隨著時間計算燈光快取也會平滑計算GI。(與熱輻射不同,因為熱輻射是計算某一特定瞬間的時間的每個樣本)