講解Ambient Occlution的原理與高級應用
導言:
Ambient occlusion也就是大家熟知的環(huán)境遮擋,簡單點說,就是一個取樣點上被其他幾何體覆蓋的程度,它是被通常用來模擬全局光照效果的簡單方法。
下面教程開始
環(huán)境遮擋的原理
基本的原理跟final gather類似,其取樣點的生成是一樣的。
首先從攝像機發(fā)出取樣光線,取樣光線和物體的交點,就是我們說的取樣點,然后從取樣點發(fā)出次光線(probe rays)。
接著Ambient occlusion和fg就不一樣了。Ambient occlusion的次光線是每一條光線是否被周圍的物體所遮擋,如果遮擋了直接返回值,不做任何的Shader計算,也就是取樣點的周圍被物體阻擋著不讓看到背景的百分比;fg的次光線不太一樣,他的次光線與周圍的物體相交以后,它要求焦點處的顏色值,然后返回的是顏色值,而不是Ambient occlusion的真假值。
最后也是不一樣的,作為Ambient occlusion,每一個取樣點其實就是渲染時輸出的色彩值,而fg只是為渲染時的fg point,它代表著要渲染點附近的光照,在渲染時用來產生照明。(圖01)
圖01
下面我就結合MentalRay for Maya,跟大家一起討論一下Ambient occlusion的一些應用。MentalRay for Maya中有三個節(jié)點是我們在使用環(huán)境遮擋時需要用到的,mib_amb_occlusion,mib_fg_ occlusion,mib_bent_normal_env,如下圖。(圖02)
圖02
環(huán)境遮擋的使用
在介紹實際的應用之前,我們用一個簡單的場景作介紹,場景中只有一盞物理燈。默認渲染如圖。(圖03)
圖03
Ambient occlusion(AO)經典的環(huán)境遮擋效果,也被稱為漫反射遮擋(Diffuse occlusion),可以用來縮放對材質環(huán)境光的貢獻,它一般賦給材質的環(huán)境光參數(shù)(Ambient),更進一步說他最好賦給Lambertian材質。如下圖。(圖04)
圖04
渲染的效果如下圖。(圖05)
圖05
現(xiàn)在暗部的細節(jié)出來了,可見AO很好的模擬了全局光。
Reflective occlusion發(fā)射沿著反射光線的方向發(fā)射次光線,而不像Ambient occlusion那樣以物體表面的法線方向為中心發(fā)射次光線,下面的示意圖說明了之間的不同。(圖06)
圖06
在MentalRay for Maya中實現(xiàn)起來很簡單,只需要將mib_amb_occlusion節(jié)點參數(shù)中的Inflective打開就行了。(圖07)
圖07
同時我們可以調整小spread的值為0.1,使得反射遮擋的效果更加明顯,渲染效果如圖。(圖08)
圖08