凌志明,王毅剛,陶玲君
(1.杭州電子科技大學(xué)圖形圖像研究所,浙江 杭州 310018;
2.杭州電子科技大學(xué)數(shù)字媒體與藝術(shù)設(shè)計(jì)學(xué)院,浙江 杭州 310018)
?
基于OGRE的實(shí)時(shí)光照及降雨天氣仿真
凌志明1,王毅剛1,陶玲君2
(1.杭州電子科技大學(xué)圖形圖像研究所,浙江 杭州 310018;
2.杭州電子科技大學(xué)數(shù)字媒體與藝術(shù)設(shè)計(jì)學(xué)院,浙江 杭州 310018)
摘要:針對(duì)目前氣象效果仿真存在的實(shí)時(shí)性差及不支持全天候的問題,提出一種基于OGRE三維渲染引擎的實(shí)時(shí)光照及降雨天氣仿真方法。通過網(wǎng)絡(luò)編程獲取來自Web氣象接口的實(shí)時(shí)氣象數(shù)據(jù)并進(jìn)行數(shù)據(jù)解析,從而根據(jù)解析獲得的有效氣象數(shù)據(jù)進(jìn)行匹配分析天氣條件集合,最后進(jìn)行實(shí)時(shí)氣候狀況的繪制及更新。在實(shí)時(shí)降雨天氣的繪制過程中,通過著色器語(yǔ)言對(duì)全天候的光照進(jìn)行真實(shí)模擬,動(dòng)態(tài)計(jì)算當(dāng)前時(shí)刻的光照強(qiáng)度,實(shí)時(shí)繪制風(fēng)場(chǎng)作用下的降雨天氣效果,實(shí)現(xiàn)了實(shí)時(shí)降雨條件下的虛擬場(chǎng)景仿真,仿真結(jié)果滿足了實(shí)時(shí)性的要求。
關(guān)鍵詞:OGRE;氣象仿真;光照模擬;降雨天氣仿真
0引言
實(shí)時(shí)三維場(chǎng)景繪制已被廣泛應(yīng)用于大型3D游戲、交互仿真、城市規(guī)劃等領(lǐng)域,三維虛擬場(chǎng)景是基于虛擬現(xiàn)實(shí)技術(shù)、地理信息技術(shù)、多媒體技術(shù)、計(jì)算機(jī)圖形學(xué)等,以真實(shí)場(chǎng)景為原型,將地理空間信息及其屬性信息相結(jié)合,模擬構(gòu)建的三維可視化模型數(shù)字景觀[1]。為了使現(xiàn)實(shí)場(chǎng)景能更逼真、高精度地展現(xiàn)于三維場(chǎng)景中,實(shí)時(shí)氣候效果的模擬變得十分重要。文獻(xiàn)[2]提出了一個(gè)基于圖像的室外場(chǎng)景的天氣模擬技術(shù)框架,僅以二維圖像作為現(xiàn)實(shí)場(chǎng)景的展示,三維立體感及真實(shí)感不強(qiáng)。文獻(xiàn)[3]通過雙錐體實(shí)現(xiàn)了雨雪天氣的模擬,其運(yùn)行效率比普通粒子系統(tǒng)要快,但缺乏與環(huán)境的交互。國(guó)內(nèi)研究學(xué)者實(shí)現(xiàn)了一種基于Google Earth的城市天氣可視化方法[4],在Google Earth的城市背景下,用實(shí)時(shí)天氣動(dòng)畫的方式模擬了實(shí)時(shí)的天氣效果,但該方法未實(shí)現(xiàn)將氣象效果應(yīng)用到真正三維虛擬場(chǎng)景中,可復(fù)用性不高。文獻(xiàn)[5]則提出一種新的大規(guī)模城市場(chǎng)景高效建模及實(shí)時(shí)繪制方法,將分頁(yè)式的場(chǎng)景剔除技術(shù)引入城市場(chǎng)景的圖形繪制流水線中,實(shí)現(xiàn)了雨、雪等不同氣象條件下大規(guī)模復(fù)雜城市場(chǎng)景的實(shí)時(shí)繪制,但并未達(dá)到與現(xiàn)實(shí)世界中的當(dāng)前氣象條件的同步,24 h全天候不同光照條件下的場(chǎng)景仿真也未實(shí)現(xiàn)。文獻(xiàn)[6]采用3D GIS數(shù)據(jù)庫(kù),實(shí)現(xiàn)了基于粒子系統(tǒng)的雨雪天氣的仿真,其研究重點(diǎn)為粒子系統(tǒng)的加速渲染。文獻(xiàn)[7]使用GPU加速技術(shù)實(shí)現(xiàn)了一個(gè)下雨的演示示例。
三維場(chǎng)景仿真是虛擬現(xiàn)實(shí)的重要組成部分,當(dāng)前三維虛擬現(xiàn)實(shí)場(chǎng)景中的室外場(chǎng)景繪制與研究都已得到了較大的進(jìn)展,但大都還不支持對(duì)24 h的天氣情況進(jìn)行仿真。目前為止,針對(duì)實(shí)時(shí)光照及降雨條件下的三維室外現(xiàn)實(shí)場(chǎng)景的真實(shí)感實(shí)時(shí)繪制還存在實(shí)時(shí)性差及不支持全天候的問題。本文提出一種基于面向?qū)ο髨D形渲染引擎(Object-oriented Graphics Render Engine,OGRE)的實(shí)時(shí)光照及降雨場(chǎng)景仿真方法,有效地解決了以上的問題,對(duì)于現(xiàn)實(shí)世界降雨天氣的模擬效果良好。
1實(shí)時(shí)氣象場(chǎng)景繪制流程
本文首先描述網(wǎng)絡(luò)實(shí)時(shí)氣象數(shù)據(jù)的獲取,簡(jiǎn)介通過SkyX接口建立基本氣象模型,再重點(diǎn)對(duì)動(dòng)態(tài)光照紋理混合的實(shí)現(xiàn)進(jìn)行闡述,最后對(duì)風(fēng)場(chǎng)作用下的降雨天氣繪制做表述。實(shí)時(shí)氣象場(chǎng)景繪制的基本流程如圖1所示。
圖 1 實(shí)時(shí)氣象場(chǎng)景繪制的基本流程
以O(shè)GRE引擎的SkyX插件提供的基本氣象元素為基礎(chǔ),首先建立天氣條件集合,然后通過網(wǎng)絡(luò)編程獲取來自Web氣象接口的實(shí)時(shí)氣象數(shù)據(jù)并進(jìn)行數(shù)據(jù)解析,再根據(jù)解析獲得的有效氣象數(shù)據(jù)進(jìn)行匹配分析現(xiàn)有的天氣條件集合,最后進(jìn)行實(shí)時(shí)氣候狀況的繪制及更新。在實(shí)時(shí)氣象場(chǎng)景的繪制過程中,采用OpenGL著色語(yǔ)言(OpenGL Shading Language,GLSL)動(dòng)態(tài)計(jì)算當(dāng)前時(shí)刻的光照強(qiáng)度,并與當(dāng)前時(shí)刻場(chǎng)景紋理進(jìn)行混合,實(shí)現(xiàn)實(shí)時(shí)氣象條件下的現(xiàn)實(shí)場(chǎng)景仿真。
2實(shí)時(shí)網(wǎng)絡(luò)氣象數(shù)據(jù)獲取
從公共氣象開放接口獲取實(shí)時(shí)氣象數(shù)據(jù)。為了獲取請(qǐng)求接口后返回的實(shí)時(shí)氣象數(shù)據(jù),使用MFC網(wǎng)絡(luò)編程中的網(wǎng)絡(luò)會(huì)話類創(chuàng)建并初始化一個(gè)網(wǎng)絡(luò)會(huì)話,并獲取網(wǎng)絡(luò)接口返回的JSON格式的氣象數(shù)據(jù),步驟如下:
1)通過網(wǎng)絡(luò)會(huì)話訪問提供應(yīng)用程序編程接口的URL,若訪問失敗(未聯(lián)網(wǎng)等情況)則需要捕獲拋出的異常并處理,返回信息調(diào)用本地默認(rèn)氣象數(shù)據(jù);
2)查詢信息狀態(tài)字,若返回成功則讀取服務(wù)器應(yīng)答信息;
3)釋放超文本傳送協(xié)議文件對(duì)象,關(guān)閉網(wǎng)絡(luò)會(huì)話實(shí)例并重置網(wǎng)絡(luò)連接標(biāo)識(shí)。
取到氣象數(shù)據(jù)后,對(duì)其進(jìn)行解析得到有效的天氣信息,處理后繪制在窗口左上方,信息顯示的內(nèi)容有網(wǎng)絡(luò)狀態(tài)、地區(qū)、風(fēng)向、風(fēng)力、當(dāng)前溫度、當(dāng)前濕度、氣象數(shù)據(jù)獲取時(shí)間、當(dāng)前時(shí)間等,為后續(xù)的實(shí)時(shí)天氣繪制做準(zhǔn)備。
3建立氣象模型
實(shí)時(shí)天氣仿真中,場(chǎng)景中的物體受光照變化的影響很關(guān)鍵,這關(guān)系到全天候氣象條件下仿真效果的真實(shí)度?,F(xiàn)實(shí)世界中,一天內(nèi)太陽(yáng)光照的變化是由地球自轉(zhuǎn)引起的,四季光照變化是由地球公轉(zhuǎn)引起的。在虛擬世界里,對(duì)現(xiàn)實(shí)世界的仿真通常以地表物體模型為基本單位,若采用地球自轉(zhuǎn)公轉(zhuǎn)模型來模擬太陽(yáng)光照較為復(fù)雜。目前,三維場(chǎng)景仿真中對(duì)天空光的處理通常采用設(shè)定環(huán)境光為常量的手段,這種方法雖簡(jiǎn)單,但無法真實(shí)表達(dá)現(xiàn)實(shí)世界中晝夜更迭時(shí)的光照變化,也無法很好地模擬陰晴條件下物體表面的光照強(qiáng)度變化。
動(dòng)物學(xué)科英語(yǔ)隸屬于科技英語(yǔ),但它是更具專業(yè)性的科技英語(yǔ),涉及的知識(shí)面更加狹窄,與動(dòng)物學(xué)聯(lián)系更加緊密。因此,在進(jìn)行動(dòng)物學(xué)科英語(yǔ)互譯時(shí),不但要注意科技英語(yǔ)的文體、修辭、語(yǔ)法等特點(diǎn),還要緊密結(jié)合相關(guān)專業(yè)知識(shí),力求做出符合原文語(yǔ)言特點(diǎn)、本族語(yǔ)言特點(diǎn)以及動(dòng)物學(xué)相關(guān)知識(shí)的完美譯文。此外,通過上述介紹可以得知,概念語(yǔ)法隱喻一般包括語(yǔ)義層次上的及物性隱喻和詞匯語(yǔ)法層次上的名詞化、形容詞化等現(xiàn)象,下面將主要從以下兩個(gè)方面來探討動(dòng)物學(xué)科英語(yǔ)的翻譯。
采用GLSL控制光照來模擬24 h全天候太陽(yáng)對(duì)地球的動(dòng)態(tài)光照變化,如圖2所示,對(duì)真實(shí)世界太陽(yáng)與地球的相對(duì)運(yùn)動(dòng)做抽象與簡(jiǎn)化處理,在虛擬場(chǎng)景中模擬真實(shí)世界太陽(yáng)的“東升西落”,并且參照物紋理顏色在太陽(yáng)運(yùn)動(dòng)過程中受與其相關(guān)的環(huán)境光影響。在OGRE的渲染過程中,根據(jù)太陽(yáng)紋理貼圖在天空穹中的假定運(yùn)動(dòng)軌跡為基準(zhǔn),建立以地平面東西走向?yàn)閄軸,垂直于地平面向上的方向?yàn)閅軸的二維坐標(biāo)系,太陽(yáng)運(yùn)動(dòng)軌跡方程為:
(1)
圖2 虛擬場(chǎng)景中太陽(yáng)軌跡變化
式中,F(xiàn)distance為當(dāng)前時(shí)刻太陽(yáng)距地平面的垂直距離,dy為虛擬場(chǎng)景中太陽(yáng)距地平面的垂直距離,k為小于0的常數(shù),p為與曲線離心率相關(guān)的常數(shù),Xtime為當(dāng)前時(shí)間參數(shù)。
由式(1)可得,F(xiàn)distance與以正午為分界點(diǎn)的太陽(yáng)光照強(qiáng)度(LightIntensity)非線性相關(guān),將其二者間的關(guān)系簡(jiǎn)化為:
Fdistance∝Lintensity
(2)
環(huán)境光光照公式為:
Lcolor=Aintensity·Acolor·Amaterial
(3)
式中,Aintensity為環(huán)境光的光照強(qiáng)度,Acolor為環(huán)境光的顏色,Amaterial為環(huán)境光顏色材質(zhì),環(huán)境光顏色材質(zhì)通常取常數(shù)。
在GLSL的片段著色器中,采用環(huán)境光與紋理顏色混合的方式模擬受動(dòng)態(tài)變化的環(huán)境光影響的片元色,方法實(shí)現(xiàn)的步驟如下:
1)查找使用指定坐標(biāo)的灰度圖紋理,并將其設(shè)為環(huán)境色變量;
2)根據(jù)式(2)將式(3)中的光照強(qiáng)度與環(huán)境色做混合,作為該像素的當(dāng)前環(huán)境光值;
3)查找使用指定坐標(biāo)的模型紋理,與步驟2計(jì)算得到的環(huán)境光做混合,作為片元色,交由GPU處理并顯示該像素。
文獻(xiàn)[8]提出了一種交互式的大規(guī)模雪場(chǎng)景的實(shí)時(shí)繪制方法。文獻(xiàn)[9]實(shí)現(xiàn)了采用OpenGL粒子系統(tǒng)的實(shí)時(shí)雨模擬。對(duì)這兩種方法進(jìn)行了整合及簡(jiǎn)化,采用OGRE的粒子系統(tǒng)模擬雨粒子受風(fēng)力影響下的實(shí)時(shí)降雨天氣效果。
在風(fēng)力影響下,動(dòng)態(tài)調(diào)整粒子腳本參數(shù),實(shí)現(xiàn)在不同風(fēng)力及風(fēng)向條件下的粒子運(yùn)動(dòng)軌跡。雨滴在降落過程中受力示意圖如圖3所示,圖3中,坐標(biāo)系為OGRE中的世界坐標(biāo)系,v為雨滴的雨落朝向,雨滴在降落過程中受豎直向下的重力f影響,將風(fēng)場(chǎng)簡(jiǎn)化為水平方向的對(duì)雨滴的作用力f1,風(fēng)場(chǎng)作用力在其他方向的分量將其分解到除f1外的其他力中。f2和f3分別為與重力反方向的空氣阻力及與風(fēng)力反方向的空氣阻力和,在這4個(gè)力的作用下某時(shí)刻雨滴產(chǎn)生與豎直方向夾角為α的射線運(yùn)動(dòng)軌跡,則有:
(4)
圖3 雨滴降落過程中 的受力分析
1)根據(jù)降雨等級(jí)定義最大粒子數(shù);
2)根據(jù)風(fēng)向設(shè)置粒子系統(tǒng)的公用方向向量,確定降雨時(shí)雨滴大致朝向;
3)將風(fēng)力等級(jí)變換為式;
4)中雨滴朝向與豎直方向夾角α。
通過以上步驟,將下雨天氣數(shù)據(jù)轉(zhuǎn)換為虛擬場(chǎng)景里的粒子行為屬性,從而真實(shí)地模擬實(shí)時(shí)下雨天氣場(chǎng)景。
采用本文的繪制流程及方法,在Intel Core 2 CPU E8400 3.00 GHz,2 GB內(nèi)存,512 MB顯存的PC機(jī)上實(shí)現(xiàn)了系統(tǒng),以杭州某地的現(xiàn)實(shí)場(chǎng)景為例,搭建簡(jiǎn)化的三維場(chǎng)景,同時(shí)獲取杭州市實(shí)時(shí)氣象數(shù)據(jù)進(jìn)行處理,如表1所示。系統(tǒng)平均幀率達(dá)到了132 FPS,仿真效果如圖4、圖5所示。
表1 網(wǎng)絡(luò)實(shí)時(shí)氣象數(shù)據(jù)項(xiàng)
圖4 24 h不同時(shí)段的光照變化場(chǎng)景
圖5 不同風(fēng)力及風(fēng)向影響下降雨天氣的渲染場(chǎng)景對(duì)比
圖4分別為晴天早晨,多云中午及傍晚夜間不同時(shí)刻的光照變化渲染場(chǎng)景,圖5為根據(jù)表1中的氣象數(shù)據(jù)進(jìn)行模擬的效果。對(duì)于圖4,在多云天氣等光線不充足的氣候條件下,根據(jù)當(dāng)前時(shí)間的不同,當(dāng)Fdistance分別取[-1,1]區(qū)間的0.335、0.849、0.425、-0.147時(shí),灰度紋理圖按照與上述值對(duì)應(yīng)的光照強(qiáng)度混合,即值越大,混合色亮度越高,反之則越低,再與模型的彩色紋理混合,因此產(chǎn)生不同時(shí)刻的光照模擬效果依次如圖所示。對(duì)于圖5,根據(jù)風(fēng)力的實(shí)際單位風(fēng)速與雨滴受力成正比的關(guān)系,當(dāng)風(fēng)力為2級(jí)時(shí),f1取0.1 N,α取10°,風(fēng)向?yàn)闁|南風(fēng),粒子運(yùn)動(dòng)的方向向量取(-0.1,-0.8,-0.1),則效果如圖5左圖所示,當(dāng)風(fēng)力為3級(jí)時(shí),f1取0.24 N,α取30°,風(fēng)向?yàn)槟巷L(fēng),粒子運(yùn)動(dòng)方向向量取(0,-1.732,-1),視線方向均為(0,0,-1),效果如圖5右圖。實(shí)驗(yàn)說明,根據(jù)本文的方法,能良好解決天氣仿真的全天性問題并能較真實(shí)地模擬實(shí)時(shí)性的降雨天氣。
4結(jié)束語(yǔ)
本文實(shí)現(xiàn)了一種基于三維渲染引擎的實(shí)時(shí)光照及降雨天氣仿真方法,通過獲取當(dāng)?shù)貙?shí)時(shí)的氣象數(shù)據(jù)進(jìn)行處理并建立實(shí)時(shí)氣象效果的集合,對(duì)全天各個(gè)時(shí)刻的光照進(jìn)行模擬,實(shí)現(xiàn)了風(fēng)場(chǎng)作用下的降雨天氣效果仿真,在3D游戲及虛擬漫游領(lǐng)域具有良好的應(yīng)用前景。但在光照計(jì)算中并未考慮太陽(yáng)的實(shí)際方向,降雨模擬時(shí)粒子的大小也并未根據(jù)相應(yīng)降雨等級(jí)變化。在今后的工作中,將致力于模擬風(fēng)場(chǎng)影響下的柔性物體實(shí)時(shí)動(dòng)態(tài)仿真,例如樹木在當(dāng)前氣候條件下的擺動(dòng)及水面波紋的實(shí)時(shí)波動(dòng)等,以求實(shí)現(xiàn)虛擬現(xiàn)實(shí)場(chǎng)景更加真實(shí)的繪制。
參考文獻(xiàn)
[1]石敏,王俊錚,魏家輝.真實(shí)感三維虛擬場(chǎng)景構(gòu)建與漫游方法[J].系統(tǒng)仿真學(xué)報(bào),2014,26(9):1969-1974.
[2]李忠新,茅耀斌,王執(zhí)銓.一種基于圖像的室外場(chǎng)景天氣模擬技術(shù)框架[J].計(jì)算機(jī)應(yīng)用,2003,23(2):37-38.
[3]Wang N,Wade B.Rendering falling rain and snow[C]//ACM SIGGRAPH 2004 Sketches.New York:ACM,2004:14.
[4]唐慧強(qiáng),薛麗.基于Google Earth的城市實(shí)時(shí)天氣可視化系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(10):3675-3679.
[5]劉波,王章野,王麗英,等.大規(guī)模城市場(chǎng)景的高效建模及其實(shí)時(shí)繪制[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2008,20(9):1153-1162.
[6]李歡,樊紅,馮浩.3D GIS環(huán)境下雨雪天氣實(shí)時(shí)仿真[J].中國(guó)圖象圖形學(xué)報(bào),2012,17(12):1548-1553.
[7]Tatarchuk N.Artist-directable real-time rain rendering in city environments[C]//ACM SIGGRAPH 2006 Courses.New York:ACM,2006:23-64.
[8]單翔宇,王章野,楊春燕,等.大規(guī)模雪場(chǎng)景的實(shí)時(shí)繪制[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2013,25(8):1138-1145.
[9]李蘇軍,吳玲達(dá).基于粒子系統(tǒng)的實(shí)時(shí)雨模擬[J].計(jì)算機(jī)工程,2007,33(18):236-238.
Real-time Lighting and Rainfall Weather Simulation Based on OGRE
Ling Zhiming1,Wang Yigang1,Tao Lingjun2
(1.InstituteofGraphicsandImage,HangzhouDianziUniversity,HangzhouZhejiang310018,China;
2.SchoolofMediaandDesign,HangzhouDianziUniversity,HangzhouZhejiang310018,China)
Abstract:For weather effect simulation real-time performance is poor and does not support all-weather problems currently,this paper proposes a simulation approach of real-time lighting and rainfall weather based on three dimensional rendering engine object-oriented graphics render engine(OGRE).Through network programming to obtain real-time weather data from the Web weather interface and make data analysis,then take the effective collection of weather data to match weather conditions,making real-time weather rendering and the update lastly.In the real-time rendering process of rainfall weather,through the shading language to simulate the lighting under the condition of all-weather,calculate the light intensity dynamically,real-time rendering rainfall weather under the effect of wind field.Realized the virtual scene simulation in real-time rainfall,the simulation results met the real-time requirements.
Key words:object-oriented graphics render engine;weather simulation;lighting simulation;simulation of rainfall weather
中圖分類號(hào):TP391.9
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1001-9146(2015)05-0031-05
通信作者:
作者簡(jiǎn)介:凌志明(1988-),男,山東濰坊人,在讀研究生,虛擬現(xiàn)實(shí)技術(shù).王毅剛教授,E-mail:yigang.wang@hdu.edu.cn.
收稿日期:2015-01-16
DOI:10.13954/j.cnki.hdu.2015.05.007