Translate this Website to:

星期六, 10月 29, 2011

Blender 2.5 : Ambient Occlusion

環境遮閉(Ambient Occlusion, AO)著色技術已經被大多數 3D 繪圖軟體採用,用來模擬全域照明的間接光效果。
環境遮閉的假設是:當所在位置不存在光源時,如果周圍的障礙物愈多,能夠到達該位置的光線應該愈少(被擋住的光線愈多),因此看起來就愈暗。下圖是 Blender 的 AO 效果,沒有任何燈光。其中位置 1 的角隅兩面有障礙物,所以在場景中看起來最暗;位置 2 只有一面有障礙物,看起來次暗;位置 3 周圍沒有障礙物,最亮。

AO_01-1.png

影響環境遮蔽效果的一項重要參數是衰減距離(Attenuation Distance, Properties 視窗 –> World 群組 –> Gather 面板),這是從場景中模型表面上的任一點向外搜尋障礙物的距離(搜尋的範圍是一個半球),超過這個距離的障礙物,就不考慮它的遮蔽效果。比如上圖中位置 1 和 2 相距 5 個 Blender 單位(BU),衰減距離是 2,因此在位置 4 的亮度就會跟位置 3 一樣(距最近的障礙物 2.5 BU,障礙物的遮蔽效果被忽略)。

另一個影響成像品質的參數是 Gather 面板裡的 Samples。Sample(取樣)如果不夠,容易產生低對比的顆粒噪點。但愈高的取樣數,需要愈久的著色時間。

AO 並不是正確的光線反射行為,但相較於模擬光線真實行為的著色軟體,在很短的時間就能獲得不錯的效果 。不過 AO 只考慮四面八方有沒有障礙物,不考慮其他光源的位置,因此在某些狀況下會產生錯誤的結果。比如在室外場景,陽光直接照射到的地方,照理不會有陰影,但 AO 效果卻也加上了陰影(下圖 5)。在室內場景,若四面牆壁只有一面有開口,牆壁及天花板的亮度分佈應該是由開口處往內愈來愈暗,但 AO 會讓開口對側的牆壁及天花板的中央部份看起來比較亮,而誤以為有其他的光源存在(下圖 6)。

AO_02-1.png

這些錯誤目前在 Blender 裡似乎還無法消除,但可以利用節點編輯器加入 Gamma 節點,調降 Gamma 值來提高陰影部份的亮度、降低明暗之間的對比,使這種錯誤不那麼明顯。
References:
Blender 學習筆記

0 意見 Comments:

張貼留言

Related Posts Plugin for WordPress, Blogger...