ETH官方钱包

切換
舊版
前往
大廳
主題

Area light,點光源的接班人?

Lumi | 2016-01-20 02:12:09 | 巴幣 0 | 人氣 709

不同於無限小的點光源,area light可以是球體、圓盤、矩形等各種形狀。由於計算過於複雜,通常area light都是用在預先計算好的靜態場景,而不是作為動態光源即時運算。但是2013年的Killzone: Shadow Fall改變了現狀,它是據我所知第一個動態光源只使用area light的遊戲。


▲Shadow Fall場景一角,見右下方的矩形光源

ShadowFall內的area light種類相當完整,甚至矩形光源還能搭配texture,可以製造出電視螢幕的光線照在人身上的效果,一度讓我覺得點光源應該會從此被淘汰。不過這塊領域其實還沒被研究透徹,Shadow Fall用的方法還不是很完美,再加上他們放出的文件故意不講清楚,各家引擎廠商還是得持續各自研究。


▲圖來自2014 CEDEC,Tri-Ace的投影片倒數第二張
由於此圖和演講內容毫無關係,在最後放此圖大概是用於宣示"我們也有area light喔",
或是"我們沒有打算解說area light怎麼做喔"


▲2015年Star Wars: Battlefront,光劍使用動態的管狀光源

點光源有什麼不好? 當物體的材質設定為最光滑的時候,無限小的點光源只會製造出面積無限小的反光。為了避免這種瑕疵,材質最多只能設定成些微的粗糙,或是在光源演算法上玩些把戲,讓點光源看起來變大。當然,最根本的解決辦法就是使用area light。

我這回只實作了最簡單、用途最廣泛的sphere light。diffuse部分的計算取自寒霜文件,specular部分取自Unreal Engine4。光源強度固定的情況下,需考慮到總能量不變,光源面積越大反光越弱。下面的圖還是老樣子在場景四個角落放置光源:

▲半徑1公分的sphere light,效果幾乎和點光源相同


▲半徑20公分的sphere light,能量被分散到較大的面積導致反光變暗


寫輪眼訓練教材,半徑50公分的sphere light

經過比較後,diffuse light所呈現的效果幾乎和點光源一模一樣,而且不會隨著光源半徑變動??雌饋韘phere light沒必要用不同的diffuse計算方式,可以繼續使用點光源的演算法。

Area light至今仍沒有很普遍,在完美的演算法或超強硬體出現前,點光源應該還會存在好一陣子。今後各位玩遊戲的時候,可以觀察看看動態光源的反光是什麼形狀。

創作回應

更多創作