環境光照是一種無限距離遠和所有方向的光照
The split sum approximation
爲了算出着色,所以需要Solving the rendering equation,其中的V項代表了光線是否能夠到達,在去除V項之後就是單純的光線發出了
但是一般解rendering equation的方法是Monte Carlo integration,這種方法是通過大量採樣的結果來近似的,所以就會非常慢,不適合用於實時渲染,但最近幾年已經有方法可以讓採樣的方法用在實時渲染中了。
通過觀察發現,如果BRDF是glossy,就會變得small support!,如果是diffuse,就會smooth
這正好符合之前的近似公式
通過把Li項拆分出來,就會簡化計算
同時也變成了Li對BRDF上的範圍的filter再進行normal,也就是說先預計算存儲filter,在實際使用時就可以直接查詢了。
比方說在下圖中,如果是glossy,原本的方法是查詢鏡面反射方向的附近一片的範圍然後加權平均,現在是先Prefiltering,然後在鏡面反射方向上直接查詢即可。
前面的 Li項在不採樣的方法下可以解出,但後面的BRDF項比較複雜,它的參數較多,如果直接預計算就會是高維的非常耗時的計算,所以需要降低維度計算。
在BRDF中,主要由F和D項來控制。
下圖中的R(θ)代表了不同角度下的菲涅爾項,R0代表了材料折射率,θ代表角度,D(h)是由α和θ控制,也就是說這是一個三維的計算。
依然需要降低維度來減少計算量,在這裏使用近似的方法來把R0拿到積分限前面,這樣就變成了二維的計算。
也就是由α和θ來作爲自變量,這樣就避免了BRDF的採樣。