Light Map是一個(gè)比較經(jīng)典的技術(shù),目前來(lái)說(shuō)應(yīng)該是一般游戲引擎中的標(biāo)配,它很好的在一種擬全局光效果的質(zhì)量和效率上做了中和。不過(guò)目前用的更多、質(zhì)量更好的應(yīng)該是Directional Light Map,它是原始LM的增強(qiáng)版,通過(guò)在預(yù)處理與實(shí)時(shí)還原中考量場(chǎng)景中表面的法向量進(jìn)而增強(qiáng)效果。DLM的基本操作方法如下:
- 在采樣點(diǎn)處把其半球空間中的輻射照度用某種方法進(jìn)行采集并保存(比如離線的光線跟蹤);
- 以某種方法存儲(chǔ)額外的、與該輻射照度相關(guān)的法線信息到光照貼圖中;
- 實(shí)時(shí)渲染中通過(guò)光照貼圖對(duì)像素上的場(chǎng)景輻照度進(jìn)行還原(結(jié)合光照信息與方向信息)。
目前常用的DLM實(shí)現(xiàn)方法主要有三種:
Radiosity Normal Maps
該方法最早是在Valve的Source引擎中用的一種模式,它的原理應(yīng)該是一種擬信號(hào)壓縮與重建的方法:
- 在采樣點(diǎn)處選取三個(gè)正交的采樣方向作為基方向,采樣得到這些方向上的光照信息并保存(壓縮);
- 實(shí)時(shí)渲染中通過(guò)三個(gè)方向及其上的光照值做為基函數(shù),對(duì)實(shí)際表面法向上的光照值進(jìn)行還原(重建)。
其中的三個(gè)基方向(表面法向所在的局部切空間,如下圖示)分別為:
,
,
對(duì)應(yīng)的還原計(jì)算為:
Valve的這種方法應(yīng)該說(shuō)還是很不錯(cuò)的,雖然數(shù)學(xué)理論依據(jù)不太充分,但至少看起來(lái)效果很不錯(cuò),而且實(shí)現(xiàn)簡(jiǎn)單,效率較高。不過(guò)其也會(huì)出現(xiàn)一些問(wèn)題,那就是當(dāng)法線的方向與采樣光照的主方向夾角較大(即與采樣切平面的夾角較小時(shí))容易出現(xiàn)一些不太正確的光照還原。
Dominant Directional Irradiance
該方法的原理可以是看作將采樣點(diǎn)半球空間中的輻照信息處理為一個(gè)方向光(Directional Irradiance),這樣在實(shí)時(shí)渲染中就可以使用反射模型進(jìn)行快速還原;其中的Dominant axis就可以看作是指該平行光的方向。其操作如下:
- 外理采樣點(diǎn)外部輻照信息為:方向光(方向:L,顏色:CL);
- 渲染中直接反射模型模型來(lái)還原 。
比如使用Lambert模型時(shí)對(duì)應(yīng)的還原計(jì)算為:
另外,一般情況下也會(huì)使用方向貼圖的空閑的Alpha通道來(lái)存儲(chǔ)一個(gè)縮放因子,用其來(lái)控制該點(diǎn)上外部輻照度的方向性(即被dominant方向影響的力度)。當(dāng)然,這里也可以使用其它更復(fù)雜的一些shading model來(lái)操作,不過(guò)Lambert已經(jīng)足夠了。該方法的計(jì)算量相對(duì)也比較小;存儲(chǔ)空間也比較節(jié)省,只需要在傳統(tǒng)LM的基礎(chǔ)上再存儲(chǔ)一張方向貼圖就可以了(目前來(lái)說(shuō)該方法較為流行,比如UE或Enlighten中就使用此方法)。
Spherical Harmonics
該方法與Radiosity Normal Map的方法類似(同樣與Light Probe的原理類似),只不過(guò)這里使用了理論與數(shù)學(xué)依據(jù)更為充分的球諧函數(shù)來(lái)實(shí)現(xiàn)外部輻射照度信息的壓縮與重建:
- 把光照函數(shù)使用球諧函數(shù)進(jìn)行變換存儲(chǔ)(壓縮);
- 實(shí)時(shí)渲染中使用時(shí)直接利用SH重建進(jìn)行還原即可(還原)。
這種方法比上述兩種方法都更為高級(jí),一般來(lái)說(shuō)對(duì)于任意Normal上的照度信息都能正確還原,而且適應(yīng)性較強(qiáng),較為靈活;但同時(shí)有很大的缺點(diǎn)那就是存儲(chǔ)空間較大(其LM中每個(gè)Pixel中存儲(chǔ)的數(shù)據(jù)量相當(dāng)于一個(gè)Light Probe對(duì)應(yīng)的存儲(chǔ)的內(nèi)容),因而其應(yīng)用范圍就有所限制。
下述是LM與DLM的簡(jiǎn)單效果對(duì)比,差異還是相當(dāng)明顯的:
http://blog.csdn.net/bugrunner/article/details/7881819