ETH官方钱包

切換
舊版
前往
大廳
主題

Area light,點(diǎn)光源的接班人?

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

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


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

ShadowFall內(nèi)的area light種類相當(dāng)完整,甚至矩形光源還能搭配texture,可以製造出電視螢?zāi)坏墓饩€照在人身上的效果,一度讓我覺得點(diǎn)光源應(yīng)該會從此被淘汰。不過這塊領(lǐng)域其實(shí)還沒被研究透徹,Shadow Fall用的方法還不是很完美,再加上他們放出的文件故意不講清楚,各家引擎廠商還是得持續(xù)各自研究。


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


▲2015年Star Wars: Battlefront,光劍使用動態(tài)的管狀光源

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

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

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


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


寫輪眼訓(xùn)練教材,半徑50公分的sphere light

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

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

創(chuàng)作回應(yīng)

更多創(chuàng)作