張 霽
同濟(jì)大學(xué)軟件學(xué)院,上海 201804
間接光照技術(shù)和環(huán)境遮擋簡(jiǎn)介
張 霽
同濟(jì)大學(xué)軟件學(xué)院,上海 201804
環(huán)境遮擋技術(shù)的出現(xiàn),使實(shí)時(shí)部分模擬全局光照效果成為可能。而不斷發(fā)展的游戲行業(yè)中需要支持大規(guī)模動(dòng)態(tài)場(chǎng)景以及柔性物體,同是要對(duì)圖像質(zhì)量和效率作出改進(jìn),這又為環(huán)境遮擋技術(shù)提出了更高的要求。最近,為了追求更真實(shí)的效果,越來(lái)越多的研究開(kāi)始關(guān)注環(huán)境遮擋與間接光照的結(jié)合。為了更好的判斷這一技術(shù)的未來(lái)走向和研究重點(diǎn),對(duì)相關(guān)研究結(jié)果進(jìn)行整理綜述非常必要。
環(huán)境遮擋;全局光照;間接光照;
環(huán)境遮擋技術(shù)就是一種能模擬部分全局光照效果的技術(shù),雖然一般僅限于模擬場(chǎng)景中由于間接光照接收量不同而呈現(xiàn)的明暗變化,但是由于其開(kāi)銷遠(yuǎn)遠(yuǎn)小于傳統(tǒng)全局光照技術(shù),因此現(xiàn)在已被廣泛應(yīng)用于各種環(huán)境中。
近些年來(lái)屏幕空間技術(shù)的流行推進(jìn)了環(huán)境遮擋技術(shù)的發(fā)展,在效率已經(jīng)能保證交互性的情況下,研究人員又將這一技術(shù)做了擴(kuò)展,提出了一些新的特性,本文將在后面逐一討論這些新特性。
環(huán)境遮擋模型
假設(shè)在一個(gè)陰天,環(huán)境中沒(méi)有一個(gè)明確方向的光源,我們可以看到所有物體都呈現(xiàn)出一個(gè)較為灰暗的外觀。在這種情況下,光照主要是由物體間相互反射的間接光來(lái)完成的。將整個(gè)場(chǎng)景分為無(wú)數(shù)小塊,選取場(chǎng)景中任意一小塊為研究對(duì)象(亦可看做一個(gè)點(diǎn)),以小塊中心為基準(zhǔn)點(diǎn),其表面法線為朝向可以確定一個(gè)半球,這個(gè)半球中任意向量所指向的點(diǎn)會(huì)向研究小塊發(fā)射漫反射光,都會(huì)影響其光照情況。
這部分介紹應(yīng)用環(huán)境遮擋理論來(lái)進(jìn)行渲染的不同方法。首先必須以合適的方式來(lái)表示場(chǎng)景中的幾何體,其次通過(guò)查詢來(lái)確定每個(gè)點(diǎn)的遮擋信息,最后用遮擋信息來(lái)調(diào)整光照結(jié)果。
由于環(huán)境遮擋的局部性,一般來(lái)說(shuō)計(jì)算遮擋量只需要用戶感興趣的區(qū)域(一般是攝像機(jī)可見(jiàn)區(qū)域)內(nèi)的幾何體信息即可。參考文獻(xiàn)[4]中認(rèn)為,環(huán)境遮擋其實(shí)就是遮擋體在被遮擋體上投下陰影的總和,為了更方便的計(jì)算投影面和受影面的面積,作者對(duì)多邊形網(wǎng)格做了轉(zhuǎn)換:將網(wǎng)格中的每個(gè)點(diǎn)用一個(gè)圓盤(pán)代替,圓盤(pán)的位置和點(diǎn)的位置相同,朝向點(diǎn)的法線方向,圓盤(pán)的面積等于點(diǎn)所在所有三角形面積總和的1/3。這樣:以頂點(diǎn)為單位的網(wǎng)格就轉(zhuǎn)化成了以圓盤(pán)為單位的面集。
在Siggraph課程上,來(lái)自Crytek的MITTRING展示了CryEngine內(nèi)使用的一項(xiàng)新技術(shù),同樣利用了屏幕空間技術(shù),他們將其稱為屏幕空間環(huán)境遮擋,簡(jiǎn)稱SSAO,其與傳統(tǒng)計(jì)算環(huán)境遮擋相比,SSAO的最大差別就在于它將屏幕空間的像素深度值看做是每一個(gè)像素的高度,這樣,整個(gè)深度貼圖就可以看做是一個(gè)高度圖,然后使用將這個(gè)高度圖作為計(jì)算環(huán)境遮擋時(shí)的幾何體代理。
SSAO可以很簡(jiǎn)單的集成到現(xiàn)有的渲染引擎中:首先,引擎中執(zhí)行一遍的正常渲染,不同的是,這次渲染的結(jié)果并不直接寫(xiě)到屏幕上,而是直接將顏色和每個(gè)像素對(duì)應(yīng)的深度值輸出到不同的貼圖中儲(chǔ)存起來(lái)。深度貼圖就用作為計(jì)算環(huán)境遮擋時(shí)的幾何體信息。在計(jì)算出每個(gè)像素的遮擋值之后,引擎再執(zhí)行一遍后處理,用對(duì)應(yīng)像素的環(huán)境遮擋值調(diào)整之前計(jì)算出的像素顏色。
很多后續(xù)研究都在尋找克服SSAO中出現(xiàn)的這些問(wèn)題的方法。可以通過(guò)多層深度圖的方式來(lái)解決。即將選取不同的視截體遠(yuǎn)平面將場(chǎng)景多次渲染,得到多張深度圖。然后在計(jì)算遮擋值的時(shí)候?qū)γ繌埳疃葓D都做計(jì)算,采取其中遮擋值最小的為正確結(jié)果。這種改進(jìn)方法提供了視覺(jué)上有說(shuō)服力的結(jié)果,但是卻由于多遍渲染場(chǎng)景,效率下降較大。
在確定了合適的幾何體表示方法之后,如何正確高效地查詢測(cè)試點(diǎn)的環(huán)境遮擋情況是決定遮擋效果和計(jì)算效率的關(guān)鍵。查詢環(huán)境遮擋最直接的方法就是光線相交測(cè)試——在測(cè)試點(diǎn)所確定的采樣半球內(nèi)選取若干方向,從測(cè)試點(diǎn)發(fā)向每個(gè)方向發(fā)射光線進(jìn)行相交測(cè)試,再將測(cè)試結(jié)果乘以方向因子累加起來(lái),就可以得到遮擋結(jié)果。
目前在環(huán)境遮擋和間接光照方面,國(guó)內(nèi)外學(xué)者已經(jīng)取得了不少研究成果,其中很多已經(jīng)作為成熟的技術(shù)用于商業(yè)領(lǐng)域,比如游戲。但該領(lǐng)域在以下方面仍值得進(jìn)一步探索:
目前的游戲和應(yīng)用中,大部分環(huán)境遮擋都是以SSAO方式實(shí)現(xiàn)的。目前的研究思路主要是從這兩個(gè)方面著手:
1)如何在不嚴(yán)重影響屏幕空間技術(shù)的效率優(yōu)勢(shì)下尋找可以彌補(bǔ)高度圖假設(shè)缺陷的幾何體代理;
2)由于高頻AO和低頻AO的特性差異,想辦法將二者分開(kāi)考慮,各自采取最合適的方法來(lái)進(jìn)行優(yōu)化。
傳統(tǒng)的環(huán)境遮擋技術(shù)僅僅考慮了遮擋對(duì)環(huán)境光照的影響,第5章中介紹的技術(shù)已經(jīng)證明了,在實(shí)現(xiàn)環(huán)境遮擋技術(shù)的基礎(chǔ)上,可以很容易的加入對(duì)間接光照的考慮。間接光照不僅可以減輕過(guò)度陰影的效果,更可以用多樣的顏色(如染色現(xiàn)象)進(jìn)一步提高真實(shí)性。
[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