艾祖亮, 張立民, 于文龍
(海軍航空工程學(xué)院,山東 煙臺(tái) 264001)
多重散射的天空光照效果建模與實(shí)時(shí)繪制
艾祖亮, 張立民, 于文龍
(海軍航空工程學(xué)院,山東 煙臺(tái) 264001)
依據(jù)大氣散射的物理原理,提出了一種考慮多重散射的天空光照效果建模與實(shí)時(shí)繪制方法。該方法首先以太陽(yáng)和天空光作為光源建立了多重散射的天空光照效果模型,然后綜合多種大氣粒子密度, 采用合理的分段采樣策略,對(duì)天空顏色模型的積分進(jìn)行簡(jiǎn)化,以減少積分近似計(jì)算所帶來(lái)的誤差;通過(guò)對(duì)簡(jiǎn)化后的模型進(jìn)行分析提出了采用二維紋理與三維紋理對(duì)光學(xué)深度預(yù)計(jì)算的方法,避免了運(yùn)行時(shí)計(jì)算光學(xué)深度積分的問(wèn)題;最后該算法在GPU的片段處理器上執(zhí)行,實(shí)現(xiàn)了天空光照效果模型的實(shí)時(shí)繪制,可以滿(mǎn)足各種實(shí)時(shí)應(yīng)用需求。
多重散射;天空光照;光學(xué)深度;預(yù)計(jì)算;實(shí)時(shí)繪制
太陽(yáng)光在大氣中的多重散射對(duì)于天空光照效果的逼真模擬具有重要的意義。大多數(shù)大氣散射模型[1-5]在模擬天空光照效果時(shí)只考慮單散射,而不考慮多重散射光。由于單散射模型忽略了天空體本身作為天空光光源的影響,并不適合模擬黎明或黃昏時(shí)的天空光照效果,這主要是因?yàn)榇藭r(shí)太陽(yáng)位于水平線(xiàn)下方,僅僅離太陽(yáng)方位近的區(qū)域才能夠收到直接的太陽(yáng)光,而大氣層其他區(qū)域只能收到非直接的多重散射的天空光。
因此,許多學(xué)者提出了多重散射模擬方法,Preetham等[6]通過(guò)一個(gè)分析模型去擬合多散射蒙特卡羅(Monte-Carlo)仿真的結(jié)果,但是他們的模型要求視點(diǎn)必須在地面上才有效;Nishita等[7]和Haber等[8]用體積輻射度方法計(jì)算多重散射,但是他們的方法很難達(dá)到實(shí)時(shí)性;Bruneton和Neyret[9]提出了一個(gè)實(shí)時(shí)大氣散射繪制方法,并考慮了多重散射,該方法顯著提高了多重散射模型繪制速度,但在實(shí)時(shí)性上距離工程實(shí)際應(yīng)用仍然存在一定的距離。
國(guó)內(nèi),劉世光和彭群生[10]及錢(qián)徽和朱淼良[11]分別對(duì)大氣效果的建模和繪制技術(shù)進(jìn)行了綜述;王長(zhǎng)波等[12]提出一種考慮大氣折射的天空光照模型, 綜合考慮大氣壓強(qiáng)、溫度及水汽壓等因素,實(shí)現(xiàn)了日、月升落中形狀及其周?chē)鈺炆实淖兓刃Ч撬麄兊姆椒ǚ浅?fù)雜,不能達(dá)到實(shí)時(shí)性;黃雷等[13]提出一種適用于雨霧天氣的天空光照的多粒子散射模型,實(shí)現(xiàn)了雨霧場(chǎng)景中大氣散射效果及雨后彩虹的真實(shí)感繪制,但是該模型僅僅只考慮了單散射;杜芳等[14]和馮玉康等[15]分別基于GPU對(duì)Nishita等[16]的大氣單散射模型進(jìn)行了實(shí)現(xiàn),但對(duì)于多重散射并沒(méi)涉及。
本文提出了一種考慮多重散射的天空光照效果建模與實(shí)時(shí)繪制方法。該方法首先以太陽(yáng)和天空光作為光源建立了多重散射的天空光照效果模型,然后根據(jù)多種大氣粒子密度采用合理的分段采樣策略對(duì)天空顏色模型的積分進(jìn)行簡(jiǎn)化;通過(guò)對(duì)簡(jiǎn)化后的模型進(jìn)行分析提出了采用二維紋理與三維紋理對(duì)光學(xué)深度預(yù)計(jì)算的方法,避免了運(yùn)行時(shí)計(jì)算光學(xué)深度積分的問(wèn)題;最后該算法在 GPU的片斷處理器上執(zhí)行,實(shí)現(xiàn)了多重散射的天空光照效果的實(shí)時(shí)繪制,可以滿(mǎn)足各種實(shí)時(shí)應(yīng)用需求。
1.1 太陽(yáng)光與天空光模型
多重散射模型以太陽(yáng)光和天空光為光源,通過(guò)借鑒Nishita模型的思想[7]對(duì)天空光進(jìn)行建模,以大氣中任意一點(diǎn)p為中心,按照方位角 φj和高度角ψj采樣把整個(gè)天空體分割成若干個(gè)發(fā)光帶,其中,單位為度。發(fā)光帶的強(qiáng)度由采樣線(xiàn)的強(qiáng)度確定,為了簡(jiǎn)化計(jì)算,模型不考慮地面方向的多重散射光,如圖1所示。

圖1 太陽(yáng)光與天空光
入射到大氣中任意一點(diǎn)p的光強(qiáng)是太陽(yáng)光和天空體各發(fā)光帶入射到該點(diǎn)處光強(qiáng)的總和Ip(λ),公式如下:

其中,λ為光線(xiàn)波長(zhǎng),天空體發(fā)光帶數(shù)目為 Nsky,θj為天空光發(fā)光帶采樣線(xiàn)入射方向與太陽(yáng)光入射方向的夾角,也稱(chēng)散射角。
首先計(jì)算太陽(yáng)光 Isun,p(λ),s為太陽(yáng)光經(jīng)過(guò)點(diǎn)p與天空體圓頂?shù)慕稽c(diǎn),Is(λ)為太陽(yáng)光在進(jìn)入天空體圓頂前的初始入射光強(qiáng),根據(jù)大氣光衰減模型[17]可知:

式(2)中, t(s p,λ) 為光學(xué)深度,定義為大氣粒子的消光系數(shù) βex(λ) 與密度比ρ的乘積沿著光線(xiàn)傳輸路徑的積分[16],公式如下:

其中, H0為大氣粒子均值高度,不同類(lèi)型大氣粒子的消光系數(shù)與密度比是不同的,對(duì)于空氣分子主要發(fā)生Rayleigh散射,消光系數(shù) β(λ)等于散射系數(shù)λ);對(duì)于其他大氣懸浮粒子主要發(fā)生Mie散射,消光系數(shù)(λ)等于粒子的散射系數(shù)β(λ) 與吸收系數(shù) β之和。公式(3)中的βex(λ)ρ實(shí)質(zhì)上是等于大氣中所有存在的粒子消光系數(shù)與密度比乘積的和。
然后計(jì)算天空光發(fā)光帶 Isky,p(λ,φj,ψj,θj), pj為發(fā)光帶采樣線(xiàn) ajp上任意一點(diǎn), sj為經(jīng)過(guò) pj的太陽(yáng)光與天空體圓頂?shù)慕稽c(diǎn),則點(diǎn) pj處的光強(qiáng)為:

其中, F(θj,λ)為散射相位函數(shù)[18],描述了入射光線(xiàn)在某一點(diǎn)散射后進(jìn)入特定散射方向的光能占整體入射光能的比例,它取決于發(fā)生散射時(shí)的光線(xiàn)波長(zhǎng)、粒子尺寸和散射角。
光強(qiáng) Ipj(λ,θj)經(jīng)過(guò)衰減到達(dá)p處的光強(qiáng)為:

天空光發(fā)光帶Isky,p(λ,φj, ψj,θj)為 光 強(qiáng)Ipjp(λ,θj)沿著采樣線(xiàn) ajp的積分:

1.2 天空顏色模型
天空光照計(jì)算是天空顏色(sky color)的計(jì)算,主要針對(duì)天空體圓頂(sky dome)的光照效果模型,如圖2所示。

圖2 天空顏色模型
圖2中, pv為視點(diǎn), pa為視線(xiàn)與天空體圓頂?shù)慕稽c(diǎn),θ為視線(xiàn)方向與太陽(yáng)光入射方向的夾角,θsky,j為視線(xiàn)方向與天空光發(fā)光帶采樣線(xiàn)入射方向的夾角,θj為天空光發(fā)光帶采樣線(xiàn)入射方向與太陽(yáng)光入射方向的夾角。點(diǎn)p處的太陽(yáng)光與天空光總的入射光強(qiáng) Ip(λ)可以通過(guò)上一節(jié)公式得出,則光強(qiáng) Ip(λ)在點(diǎn)p處發(fā)生散射進(jìn)入視線(xiàn)方向的光強(qiáng)為:

視線(xiàn)方向總的入射光強(qiáng)為 Ippv(λ,θ,θsky,j)沿著視線(xiàn) pvpa的積分:

上式即為天空顏色模型,通過(guò)該公式可以計(jì)算出大氣中任意一點(diǎn)所有視線(xiàn)方向的天空顏色。
2.1 模型的積分簡(jiǎn)化
天空顏色模型 Iv(λ,θ,θsky,j)的計(jì)算涉及太陽(yáng)光和天空光沿著視線(xiàn)方向的積分,天空光發(fā)光帶Isky,p(λ,φj,ψj,θj)也需要計(jì)算太陽(yáng)光沿著發(fā)光帶采樣線(xiàn)方向的積分,而上述積分并無(wú)解析表達(dá)且計(jì)算非常耗時(shí),因此需對(duì)該式進(jìn)行簡(jiǎn)化。
積分的近似計(jì)算通常采用對(duì)積分路徑分段采樣,然后通過(guò)矩形、梯形或者拋物線(xiàn)法來(lái)求得積分結(jié)果,積分路徑的分段間隔往往是相同的。但是對(duì)于大氣散射模型來(lái)說(shuō),如果采用常量間隔的分段采樣方式,積分近似的誤差會(huì)非常大,這主要是因?yàn)榇髿饬W用芏仁请S著海拔高度以指數(shù)方式遞減的,理想的情況應(yīng)該是分段間隔與大氣粒子密度成反比,小的間隔對(duì)應(yīng)于低的高度,大的間隔對(duì)應(yīng)于高的高度。
為此,按照海拔高度把大氣層離散為具有一定厚度的一層層球殼和 Hi,max分別為每層球殼的內(nèi)表面與外表面高度,則有)。通過(guò)這些球殼對(duì)視線(xiàn)方向上的積分路徑進(jìn)行分段采樣,每一段內(nèi)的粒子密度采樣值取該段內(nèi)中間點(diǎn)的密度值,每一層球殼的厚度就等于分段間隔,如圖3所示。

圖3 大氣層球殼
大氣層的厚度大約在1000km以上,并沒(méi)有明顯的界限,但在飛行模擬視景仿真中,通常只考慮離地球海拔高度為35km以下的大氣層,即假設(shè)大氣層最大的厚度 Hmax= HN,max= 35km 。之所以這樣假設(shè)是因?yàn)樵诖烁叨戎系拇髿饬W右呀?jīng)非常稀薄,對(duì)大氣散射光照效果模型計(jì)算結(jié)果的影響完全可以忽略。
積分路徑的分段大小要綜合地考慮大氣粒子密度的分布情況,使其在段中近似恒定,分段數(shù)N可根據(jù)繪制的精度來(lái)調(diào)整。為了得到合理的分段間隔,假設(shè)每層球殼中的粒子密度衰減都相同[8]:

由于不同粒子的均值高度 H0不同,空氣粒子均值高度通常為7.994km,灰塵粒子的均值高度為1.2km,其他霧粒子、雪粒子、雨粒子的均值高度與具體氣象條件有關(guān),為了使得分段間隔更加合理,公式(10)實(shí)際采用的均值高度為上述所有存在粒子均值高度的平均值 Ha。
求解公式(10)得到如下:

其中, H1,min= 0, Hmax= 35km , i= 1,… ,N -1。
通過(guò)該遞推公式可以計(jì)算出所有球殼內(nèi)外表面高度以及球殼厚度,然后用這些球殼對(duì)天空顏色模型和天空光模型的積分路徑分段采樣,每一段內(nèi)的采樣點(diǎn)取該段的中心點(diǎn),顯然每段中心點(diǎn)的高度即是相應(yīng)球殼的中心高度 (Hi,min+ Hi,max)/2,每一段內(nèi)的粒子密度就是該中心高度的密度。通過(guò)上述分段采樣方法,公式(7)與公式(9)可以簡(jiǎn)化為:

其中,Nsky,j表示天空光發(fā)光帶采樣線(xiàn)方向積分路徑分段采樣數(shù)目, Nv表示天空顏色模型視線(xiàn)方向積分路徑分段采樣數(shù)目, pj,k與 pi分別為相應(yīng)的采樣點(diǎn)。
2.2 模型的預(yù)計(jì)算與繪制
經(jīng)過(guò)上節(jié)的簡(jiǎn)化解決了天空顏色模型與天空光發(fā)光帶的視線(xiàn)方向積分計(jì)算問(wèn)題,但是光學(xué)深度積分的計(jì)算仍然不可避免,O'Neil[19]針對(duì)光學(xué)深度的計(jì)算提出了預(yù)計(jì)算的方法,用一個(gè)二維紋理存儲(chǔ)光學(xué)深度的計(jì)算結(jié)果,這張表將光學(xué)深度的積分式替換成一張二維紋理查找表,表的兩個(gè)維度分別是視點(diǎn)高度與視線(xiàn)方向的天頂角。二維紋理查找表方法利用太陽(yáng)光是平行光這一近似假設(shè),通過(guò)查找表就可以獲得大氣中任何一點(diǎn)到大氣層頂部的光學(xué)深度,避免了運(yùn)行時(shí)計(jì)算光學(xué)深度的問(wèn)題。采用二維紋理查找表對(duì)于單散射天空光照效果模型的計(jì)算取得了實(shí)時(shí)繪制效果,但是對(duì)于多重散射天空光照效果模型,由于光學(xué)深度的計(jì)算量巨大,只采用二維紋理查找表仍然難以達(dá)到實(shí)時(shí)繪制要求。因此,針對(duì)這個(gè)問(wèn)題,本文提出了一種采用二維紋理和三維紋理對(duì)光學(xué)深度預(yù)計(jì)算的方法,并基于 GPU實(shí)現(xiàn)了多重散射天空光照效果模型的實(shí)時(shí)繪制。
下面對(duì)天空光照顏色模型公式(13)的計(jì)算進(jìn)行分析,公式第一項(xiàng)任意采樣點(diǎn) pi來(lái)自太陽(yáng)光的光強(qiáng)貢獻(xiàn)為:

公式第二項(xiàng)任意采樣點(diǎn) pi來(lái)自天空光某一方向發(fā)光帶的光強(qiáng)貢獻(xiàn)為:


t(papv,λ)光學(xué)深度的值與視點(diǎn)的高度、視線(xiàn)方向的天頂角有關(guān),可以預(yù)先計(jì)算為以視點(diǎn)的高度和視線(xiàn)方向的天頂角為參數(shù)的一個(gè)二維紋理查找表。
F(θ,λ)、 F(θj,λ)散射相位函數(shù)的值與散射角有關(guān),可以預(yù)先計(jì)算為以散射角為參數(shù)的一個(gè)一維紋理查找表。
ρpi、 ρpj,k大氣粒子密度比的值與高度相關(guān),可以預(yù)先計(jì)算以高度為參數(shù)的一個(gè)一維紋理查找表。
由于大氣中不同種粒子的光學(xué)深度 t(S,λ)、散射相位函數(shù) F(θ,λ)、密度比ρ都是不同的,因此每個(gè)預(yù)計(jì)算的紋理查找表都需要存儲(chǔ)多個(gè)數(shù)值。本文的模型主要考慮了5種類(lèi)型的大氣粒子,它們是空氣粒子、灰塵粒子、霧粒子、雨粒子、雪粒子,其中空氣分子發(fā)生Rayleigh散射,后面4種粒子發(fā)生Mie散射。每個(gè)紋理查找表的值都包括4個(gè)通道,可以存儲(chǔ)4個(gè)float值,前3個(gè)通道分別存儲(chǔ)與空氣分子、灰塵粒子、霧粒子相關(guān)的預(yù)計(jì)算結(jié)果,第4個(gè)通道存儲(chǔ)與雨粒子或者雪粒子相關(guān)的預(yù)計(jì)算結(jié)果,即雨粒子、雪粒子同時(shí)只能有一個(gè)有效。
通過(guò)上述4個(gè)預(yù)計(jì)算的紋理查找表,天空顏色模型表達(dá)式的每一項(xiàng)值都可以在運(yùn)行中通過(guò)查表獲得,然后只需要通過(guò)簡(jiǎn)單加減乘積運(yùn)算就可以計(jì)算出天空顏色模型的值,因此該方法非常適合在GPU上執(zhí)行。算法的繪制在OpenGL片段處理器執(zhí)行,通過(guò)簡(jiǎn)單地調(diào)用 texure1D、texure2D和texure3D等幾個(gè)著色器指令函數(shù)就可以直接從已經(jīng)預(yù)計(jì)算好的4個(gè)紋理查找表中獲取光學(xué)深度、散射相位函數(shù)、密度比的值,從而實(shí)現(xiàn)天空顏色模型的實(shí)時(shí)計(jì)算與繪制。
本文算法的測(cè)試環(huán)境如下:硬件平臺(tái)為Intel酷睿i7 3770 CPU、4 GB內(nèi)存、NVIDIA GeForce GTX 660顯卡(2GB顯存),軟件平臺(tái)為Windows 7、OpenGL 4.1、GLEW 1.9。
以下所有實(shí)驗(yàn)只考慮空氣分子和灰塵兩種大氣粒子,不考慮霧粒子、雨粒子、雪粒子。天空光發(fā)光帶數(shù)目 Nsky為8,大氣球殼分層數(shù)目N為20。空氣分子發(fā)生Rayleigh散射,均值高度 HR為7.994km,對(duì)應(yīng)于光線(xiàn)3個(gè)波長(zhǎng)(680nm, 550nm, 440nm)的散射系數(shù)為(0.0058, 0.0135, 0.0331);灰塵粒子發(fā)生Mie散射。
下面對(duì)3種不同方法在實(shí)際應(yīng)用中的繪制效率進(jìn)行實(shí)驗(yàn)分析。表1為相同場(chǎng)景環(huán)境下采用3種不同方法所消耗的繪制時(shí)間對(duì)比,生成圖像分辨率為1024×768。為了使仿真環(huán)境更加真實(shí),場(chǎng)景地形數(shù)據(jù)庫(kù)為臺(tái)灣地區(qū),地形圖像分辨率為5m,數(shù)據(jù)格式為T(mén)erraPage(.txp),對(duì)txp格式的多線(xiàn)程頁(yè)面調(diào)度支持采用 OSG開(kāi)源圖形引擎代碼。從繪制各階段消耗時(shí)間以及幀數(shù)結(jié)果可以看出,本文的多重散射方法相比Bruneton和Neyret[9]的方法在繪制速度上具有明顯的優(yōu)勢(shì),基于顏色插值的方法[4]雖然繪制速度最快,但由于只是一個(gè)簡(jiǎn)單經(jīng)驗(yàn)方法,沒(méi)有任何基于大氣物理模型的仿真計(jì)算,不能模擬出真實(shí)的天空光照效果。
下面針對(duì)太陽(yáng)以及灰塵粒子不同的高度繪制相應(yīng)的天空光照效果。
圖4為太陽(yáng)不同高度下的天空光照效果圖,灰塵粒子均值高度 H 為1.2km,散射系數(shù)為
M0.02,消光系數(shù)為 0.0222,從繪制的效果可以看出本文的算法能夠?qū)崟r(shí)模擬不同太陽(yáng)高度的真實(shí)天空光照效果。
圖5為灰塵粒子不同均值高度下的天空光照效果圖,灰塵粒子均值高度從左至右依次為0.6、1.2、3.0、4.0、5.0、6.0,單位為km,散射系數(shù)為0.02,消光系數(shù)為0.0222。從繪制的效果可以看出隨著粒子均值高度的增加,粒子的密度越來(lái)越大,相應(yīng)對(duì)太陽(yáng)光的吸收和散射效果也越明顯。
下面針對(duì)灰塵粒子不同的散射系數(shù)和消光系數(shù)繪制相應(yīng)的天空光照效果。
圖6所示為灰塵粒子不同散射系數(shù)下的天空光照效果,灰塵粒子均值高度為1.2km,散射系數(shù)從左至右依次為0.005、0.010、0.020、0.030、0.040、0.050。從繪制的效果可以看出隨著散射系數(shù)的增加,太陽(yáng)光在空氣中散射的效果越來(lái)越明顯。
圖7所示為灰塵粒子不同消光系數(shù)下的天空光照效果,灰塵粒子均值高度為1.2km,散射系數(shù)為 0.02,消光系數(shù)從左至右依次為0.4000、0.2500、0.2000、0.0667、0.0333、0.0222。從繪制的效果可以看出隨著消光系數(shù)的減少,光線(xiàn)在大氣中的衰減越來(lái)越小,相應(yīng)天空越來(lái)越明亮,顏色也越來(lái)越藍(lán)。

表1 不同方法繪制時(shí)間的對(duì)比

圖4 太陽(yáng)不同高度下的天空光照效果

圖5 灰塵粒子不同均值高度下的天空光照效果

圖6 灰塵粒子不同散射系數(shù)下的天空光照效果

圖7 灰塵粒子不同消光系數(shù)下的天空光照效果
本文提出了一種多重散射的天空光照效果建模與實(shí)時(shí)繪制方法,實(shí)驗(yàn)結(jié)果證明該方法能夠?qū)崟r(shí)模擬不同時(shí)間、不同大氣條件下的真實(shí)感天空光照效果,可以滿(mǎn)足各種實(shí)時(shí)應(yīng)用需求。
[1] Dobashi Y, Nishita T, Kaneda K, Yamashita H. A fast display method of sky color using basis functions [J]. The Journal of Visualization and Computer Animation, 1997, 8(2): 115-127.
[2] Dobashi Y, Yamamoto T, Nishita T. Interactive rendering of atmospheric scattering effects using graphics hardware [C]//HWWS 2002 Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Conference on Graphics Hardware, 2002: 99-107.
[3] O'Neil S. Accurate atmospheric scattering [M]. GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation. Addison-Wesley, 2005: 253-268.
[4] Abad J A. A fast, simple method to render sky color using gradients maps[EB/OL]. (2006-10-09) [2013-04-03]. http://www.geocities.com/ngdash/whitepapers/skydom ecolor.html.
[5] Schafhitzel T, Falk M, Ertl T. Real-time rendering of planets with atmospheres [C]//WSCG International Conference in Central Europe on Computer Graphics, Visualization and Computer Vision, 2007: 91-98.
[6] Preetham A J, Shirley P, Smits B. A practical analytic model for daylight [C]//SIGGRAPH 99, 1999: 91-100.
[7] Nishita T, Dobashi Y, Kaneda K. Display method of the sky color taking into account multiple scattering [C]//Pacific Graphics 1996, 1996: 117-132.
[8] Haber J, Magnor M, Seidel H P. Physically based simulation of twilight phenomena [J]. ACM Transactions on Graphics, 2005, 24(4): 1353-1373.
[9] Bruneton E, Neyret F. Precomputed atmospheric scattering[J]. Computer Graphics Forum, 2008, 27(4): 1079-1086.
[10] 劉世光, 彭群生. 氣象景觀(guān)的真實(shí)感模擬技術(shù)綜述[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2008, 20(4): 409-416.
[11] 錢(qián) 徽, 朱淼良. 大氣效果的繪制技術(shù)綜述[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2002, 14(5): 475-482.
[12] 王長(zhǎng)波, 王章野, 曾 運(yùn), 彭群生. 考慮大氣折射的天空?qǐng)鼍罢鎸?shí)感繪制[J]. 計(jì)算機(jī)學(xué)報(bào), 2005, 28(6): 939-949.
[13] 黃 雷, 王章野, 王長(zhǎng)波. 雨霧天氣下光線(xiàn)散射效果的實(shí)時(shí)繪制[J]. 軟件學(xué)報(bào), 2006, 17(11): 126-137.
[14] 杜 芳, 張 炎, 晁建剛, 王金坤. 基于GPU的地球大氣散射現(xiàn)象可視化仿真[J]. 系統(tǒng)仿真學(xué)報(bào), 2009, 21(2): 147-150.
[15] 馮玉康, 周圣川, 馬純永, 韓 勇, 陳 戈. 基于GPU的地球大氣層和三維體積云仿真[J]. 計(jì)算機(jī)工程, 2012, 38(19): 218-225.
[16] Nishita T, Sirai T, Tadamura K. Display of the earth taking into account atmospheric scattering [C]// SIGGRAPH 93, 1993: 175-182.
[17] Hoffman N, Preetham A J. Rendering outdoor light scattering in real time [C]//Game Developer Conference, 2002: 337-352.
[18] Cornette W M, Shanks J G. Physical reasonable analytic expression for the single scattering phase function [J]. Applied Optics, 1992, 31(16): 3152-3160.
[19] O'Neil S. Real-time atmospheric scattering[EB/OL]. (2004-05-03)[2013-04-03]. http://www.gamedev.net/ page/resources/_/technical/graphics-programming-an d-theory/real-time-atmospatmos-scattering-r2093.
Modeling and Real-time Rendering of Sky Illumination Effects Taking Account of Multiple Scattering
Ai Zuliang, Zhang Limin, Yu Wenlong
(Naval Aeronautical Engineering Institute, Yantai Shandong 264001, China)
This paper presents a method of modeling and real-time rendering of the sky illumination effects taking account of multiple scattering with atmospheric scattering based on physical models. Firstly, with the sun and the sky as light sources, the model of the sky illumination effects taking account of multiple scattering is built. Then a reasonable segmented sampling strategy based on a variety of atmospheric particle densities is adopted to simplify the integral of the sky color model to reduce the integral approximation calculation error. By analyzing the simplified model, the pre-computed 2D texture and 3D texture for optical depth are proposed to avoid a run-time calculation of optical depth. Finally, the algorithm is executed on the fragment processor of GPU so that the sky illumination effects taking account of multiple scattering are rendered with high frame rate for real-time applications.
multiple scattering; sky illumination; optical depth; pre-compute; real-time rendering
TP 391.9
A
2095-302X (2014)02-0181-07
2013-04-03;定稿日期:2013-06-28
艾祖亮(1980-),男,湖北隨州人,博士研究生。主要研究方向?yàn)樽匀滑F(xiàn)象模擬、實(shí)時(shí)繪制技術(shù)。E-mail:aizuliang@live.cn