張 霽
同濟(jì)大學(xué)軟件學(xué)院,上海 201804
間接光照技術(shù)和環(huán)境遮擋簡介
張 霽
同濟(jì)大學(xué)軟件學(xué)院,上海 201804
環(huán)境遮擋技術(shù)的出現(xiàn),使實時部分模擬全局光照效果成為可能。而不斷發(fā)展的游戲行業(yè)中需要支持大規(guī)模動態(tài)場景以及柔性物體,同是要對圖像質(zhì)量和效率作出改進(jìn),這又為環(huán)境遮擋技術(shù)提出了更高的要求。最近,為了追求更真實的效果,越來越多的研究開始關(guān)注環(huán)境遮擋與間接光照的結(jié)合。為了更好的判斷這一技術(shù)的未來走向和研究重點,對相關(guān)研究結(jié)果進(jìn)行整理綜述非常必要。
環(huán)境遮擋;全局光照;間接光照;
環(huán)境遮擋技術(shù)就是一種能模擬部分全局光照效果的技術(shù),雖然一般僅限于模擬場景中由于間接光照接收量不同而呈現(xiàn)的明暗變化,但是由于其開銷遠(yuǎn)遠(yuǎn)小于傳統(tǒng)全局光照技術(shù),因此現(xiàn)在已被廣泛應(yīng)用于各種環(huán)境中。
近些年來屏幕空間技術(shù)的流行推進(jìn)了環(huán)境遮擋技術(shù)的發(fā)展,在效率已經(jīng)能保證交互性的情況下,研究人員又將這一技術(shù)做了擴(kuò)展,提出了一些新的特性,本文將在后面逐一討論這些新特性。
環(huán)境遮擋模型
假設(shè)在一個陰天,環(huán)境中沒有一個明確方向的光源,我們可以看到所有物體都呈現(xiàn)出一個較為灰暗的外觀。在這種情況下,光照主要是由物體間相互反射的間接光來完成的。將整個場景分為無數(shù)小塊,選取場景中任意一小塊為研究對象(亦可看做一個點),以小塊中心為基準(zhǔn)點,其表面法線為朝向可以確定一個半球,這個半球中任意向量所指向的點會向研究小塊發(fā)射漫反射光,都會影響其光照情況。
這部分介紹應(yīng)用環(huán)境遮擋理論來進(jìn)行渲染的不同方法。首先必須以合適的方式來表示場景中的幾何體,其次通過查詢來確定每個點的遮擋信息,最后用遮擋信息來調(diào)整光照結(jié)果。
由于環(huán)境遮擋的局部性,一般來說計算遮擋量只需要用戶感興趣的區(qū)域(一般是攝像機(jī)可見區(qū)域)內(nèi)的幾何體信息即可。參考文獻(xiàn)[4]中認(rèn)為,環(huán)境遮擋其實就是遮擋體在被遮擋體上投下陰影的總和,為了更方便的計算投影面和受影面的面積,作者對多邊形網(wǎng)格做了轉(zhuǎn)換:將網(wǎng)格中的每個點用一個圓盤代替,圓盤的位置和點的位置相同,朝向點的法線方向,圓盤的面積等于點所在所有三角形面積總和的1/3。這樣:以頂點為單位的網(wǎng)格就轉(zhuǎn)化成了以圓盤為單位的面集。
在Siggraph課程上,來自Crytek的MITTRING展示了CryEngine內(nèi)使用的一項新技術(shù),同樣利用了屏幕空間技術(shù),他們將其稱為屏幕空間環(huán)境遮擋,簡稱SSAO,其與傳統(tǒng)計算環(huán)境遮擋相比,SSAO的最大差別就在于它將屏幕空間的像素深度值看做是每一個像素的高度,這樣,整個深度貼圖就可以看做是一個高度圖,然后使用將這個高度圖作為計算環(huán)境遮擋時的幾何體代理。
SSAO可以很簡單的集成到現(xiàn)有的渲染引擎中:首先,引擎中執(zhí)行一遍的正常渲染,不同的是,這次渲染的結(jié)果并不直接寫到屏幕上,而是直接將顏色和每個像素對應(yīng)的深度值輸出到不同的貼圖中儲存起來。深度貼圖就用作為計算環(huán)境遮擋時的幾何體信息。在計算出每個像素的遮擋值之后,引擎再執(zhí)行一遍后處理,用對應(yīng)像素的環(huán)境遮擋值調(diào)整之前計算出的像素顏色。
很多后續(xù)研究都在尋找克服SSAO中出現(xiàn)的這些問題的方法??梢酝ㄟ^多層深度圖的方式來解決。即將選取不同的視截體遠(yuǎn)平面將場景多次渲染,得到多張深度圖。然后在計算遮擋值的時候?qū)γ繌埳疃葓D都做計算,采取其中遮擋值最小的為正確結(jié)果。這種改進(jìn)方法提供了視覺上有說服力的結(jié)果,但是卻由于多遍渲染場景,效率下降較大。
在確定了合適的幾何體表示方法之后,如何正確高效地查詢測試點的環(huán)境遮擋情況是決定遮擋效果和計算效率的關(guān)鍵。查詢環(huán)境遮擋最直接的方法就是光線相交測試——在測試點所確定的采樣半球內(nèi)選取若干方向,從測試點發(fā)向每個方向發(fā)射光線進(jìn)行相交測試,再將測試結(jié)果乘以方向因子累加起來,就可以得到遮擋結(jié)果。
目前在環(huán)境遮擋和間接光照方面,國內(nèi)外學(xué)者已經(jīng)取得了不少研究成果,其中很多已經(jīng)作為成熟的技術(shù)用于商業(yè)領(lǐng)域,比如游戲。但該領(lǐng)域在以下方面仍值得進(jìn)一步探索:
目前的游戲和應(yīng)用中,大部分環(huán)境遮擋都是以SSAO方式實現(xiàn)的。目前的研究思路主要是從這兩個方面著手:
1)如何在不嚴(yán)重影響屏幕空間技術(shù)的效率優(yōu)勢下尋找可以彌補(bǔ)高度圖假設(shè)缺陷的幾何體代理;
2)由于高頻AO和低頻AO的特性差異,想辦法將二者分開考慮,各自采取最合適的方法來進(jìn)行優(yōu)化。
傳統(tǒng)的環(huán)境遮擋技術(shù)僅僅考慮了遮擋對環(huán)境光照的影響,第5章中介紹的技術(shù)已經(jīng)證明了,在實現(xiàn)環(huán)境遮擋技術(shù)的基礎(chǔ)上,可以很容易的加入對間接光照的考慮。間接光照不僅可以減輕過度陰影的效果,更可以用多樣的顏色(如染色現(xiàn)象)進(jìn)一步提高真實性。
[1]Méndez,M.S.Jordi Catá(2003).Real-time obscurances with color bleeding. Proceedings of the 19th spring conference on Computer graphics. Budmerice,Slovakia,ACM.
[2]Aila,J.K.T.(2006)."Ambient Occlusion for Animated Characters." Eurographics Symposium on Rendering
[3]Alex Mendez-Feliu,M.S.(2009)."From obscurances to ambient occlusion∶A survey." Vis. Comput.25(2)∶ 181-196.
[4]Bunnell,M.(2005)."Dynamic Ambient Occlusion and Indirect Lighting." GPU Gems 3∶ Chapter 14.
[5]Dominic Filion,R.M.(2008)."Starcraft 2 Effects& Techniques." Advances in Real-Time Rendering in 3D Graphics and Games Course SIGGRAPH 2008.
[6]Francisco González,M.S. Miquel Feixa (2007)."Viewpoint-based Ambient Occlusion." IEEE Computer Graphics & Applications
[7]José Díaza,P.-P.V. Isabel Navazoa,and Florent Duguetb,(2010)."Real-time ambient occlusion and halos with Summed Area Tables." Computers & Graphics.
TN38
A
1674-6708(2010)30-0093-02