国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

河道流動(dòng)水體三維仿真方法研究

2016-01-29 05:02偉1偉1蒲慧龍2鵬3
測繪通報(bào) 2015年9期

余 偉1,王 偉1,蒲慧龍2,王 鵬3

(1. 武漢大學(xué)測繪遙感信息工程國家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430079; 2. 四川省第三測繪工程院,

四川 成都 610500; 3. 武漢吉嘉偉業(yè)科技發(fā)展有限公司,湖北 武漢 430079)

YUWei,WANGWei,PUHuilong,WANGPeng

河道流動(dòng)水體三維仿真方法研究

余偉1,王偉1,蒲慧龍2,王鵬3

(1. 武漢大學(xué)測繪遙感信息工程國家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430079; 2. 四川省第三測繪工程院,

四川 成都 610500; 3. 武漢吉嘉偉業(yè)科技發(fā)展有限公司,湖北 武漢 430079)

A3DSimulationMethodofFlowingRiverWater

YUWei,WANGWei,PUHuilong,WANGPeng

摘要:為滿足水文觀測數(shù)據(jù)的實(shí)時(shí)分析與應(yīng)用需求,提出了一種不規(guī)則河道內(nèi)流動(dòng)水體仿真的方法。該方法重點(diǎn)研究了利用實(shí)測河道水位線數(shù)據(jù)并結(jié)合真實(shí)河道DEM地形數(shù)據(jù)進(jìn)行河流邊界線搜索及河面自動(dòng)建模,構(gòu)建多層水面疊加模型,利用流速驅(qū)動(dòng)紋理塊自適應(yīng)于河道移動(dòng)的動(dòng)態(tài)紋理混合與渲染技術(shù)。在三峽庫區(qū)水文仿真系統(tǒng)的實(shí)踐中表明,該方法能夠有效地模擬符合自然河道地形的動(dòng)態(tài)流動(dòng)水體,形象逼真地表現(xiàn)河面各處流速的差異化現(xiàn)象。

引文格式: 余偉,王偉,蒲慧龍,等. 河道流動(dòng)水體三維仿真方法研究[J].測繪通報(bào),2015(9):39-43.DOI:10.13474/j.cnki.11-2246.2015.0274

關(guān)鍵詞:河流邊界;水面自動(dòng)建模;流動(dòng)水體仿真;塊狀紋理;著色器

中圖分類號(hào):P208

文獻(xiàn)標(biāo)識(shí)碼:B

文章編號(hào):0494-0911(2015)09-0039-05

收稿日期:2014-09-01

基金項(xiàng)目:國家863計(jì)劃(2013AA01A608);國家科技專項(xiàng)水專項(xiàng)(2013ZX07503001-06);國家火炬計(jì)劃(2012GH722002)

作者簡介:余偉(1989—),男,碩士生,研究方向?yàn)槿S地理信息系統(tǒng)。E-mail:916702326@qq.com

一、引言

水體仿真對(duì)于流域治理、洪澇災(zāi)害預(yù)警分析等有著重要意義。近年來諸多利用GPU加速的河流水體仿真方法被提出[1-7],這些方法不僅效率高而且具有逼真的模擬效果。其中流動(dòng)水體的動(dòng)態(tài)仿真成為一個(gè)熱難點(diǎn),實(shí)際應(yīng)用需求中流動(dòng)水體仿真的逼真度不僅要求視覺上看起來十分真實(shí),同時(shí)還要求模擬的水體能真實(shí)反映出水體的物理特性和運(yùn)動(dòng)規(guī)律[8]。楊在興[9]等利用基于流暢的方法結(jié)合動(dòng)態(tài)紋理映射技術(shù)真實(shí)地模擬出了河面流速等動(dòng)態(tài)現(xiàn)象,但對(duì)于河流邊界的搜索及水面自動(dòng)建模未作討論。冶運(yùn)濤[10]等采用動(dòng)態(tài)紋理映射技術(shù)實(shí)現(xiàn)了流動(dòng)水體的動(dòng)態(tài)模擬,但未對(duì)河道斷面線的自動(dòng)處理、自動(dòng)加密等進(jìn)行探討,并且其紋理的偏移速率不能真實(shí)反映河水的流速。針對(duì)目前流動(dòng)水體仿真中自動(dòng)建模及動(dòng)態(tài)渲染過程中存在的這些問題,筆者重點(diǎn)探討了利用實(shí)測河道斷面水位數(shù)據(jù)自動(dòng)加密斷面線并自動(dòng)搜索河流邊界線以及構(gòu)建符合自然河道地形的水面模型,利用實(shí)際流速驅(qū)動(dòng)塊狀紋理自適應(yīng)于河道移動(dòng)來表達(dá)河面各處流速等問題。最后筆者以長江干流三峽庫區(qū)上游至重慶段為例,在GaeaExplorer2.0平臺(tái)上使用HLSL著色語言及DirectX9.0建立了流動(dòng)水體三維仿真系統(tǒng)。

二、河流邊界提取與流動(dòng)水體渲染方法

考慮到初始斷面線過于稀疏及河道轉(zhuǎn)彎角等特征,為了逼真模擬出河面各處流速的差異化現(xiàn)象,本文對(duì)斷面線的加密、邊界提取及流動(dòng)水體的動(dòng)態(tài)渲染采用如圖1所示的流程進(jìn)行。

圖1 流動(dòng)水體仿真流程

1. 河流邊界提取

如圖2所示,(a)為初始斷面水位線分布圖,(b)為經(jīng)過邊界搜索算法處理后的斷面水位線分布圖,其中的虛線為加密插值的斷面線。

(1) 邊界點(diǎn)搜索算法

由于河面水位隨時(shí)間變化,初始斷面水位線兩端點(diǎn)并不一定恰好處在實(shí)際水位河面邊界線上,實(shí)測斷面水位線與實(shí)際水位之間的分布關(guān)系如圖3所示。

以左岸端點(diǎn)aL情形為例,數(shù)據(jù)處理的最終目標(biāo)是要將aL點(diǎn)轉(zhuǎn)換至與bL點(diǎn)重合或靠近的ab處。由于aL點(diǎn)高程ha比實(shí)際水位高程h高,其邊界點(diǎn)搜索流程如下:

圖2 河流邊界線提取

圖3 斷面水位線

2) 在采樣離散點(diǎn)的同時(shí)計(jì)算各點(diǎn)an+1(n≥0,a0即為aL點(diǎn))的高程hn+1與水位高程h之差hΔ(hn+1-h)。

3) 若hΔ的絕對(duì)值小于或等于預(yù)先設(shè)定閾值ht,則認(rèn)為采樣點(diǎn)an+1位于河流邊界線上,算法結(jié)束;若hΔ為負(fù)且絕對(duì)值大于ht,即點(diǎn)an+1位于遠(yuǎn)離邊界線的水面以下,算法繼續(xù)執(zhí)行進(jìn)入第4)步。

4) 采用二分法在an與an+1之間進(jìn)行反復(fù)迭代插值,直至獲取某點(diǎn)ab的高程與水位高程之差絕對(duì)值小于ht,即得到水面邊界點(diǎn)ab。

采用該算法對(duì)所有斷面水位線進(jìn)行處理,完成邊界點(diǎn)的提取。

(2) 斷面水位線加密

整條河流按水位線分成若干小段,分別對(duì)各小段河流依次進(jìn)行加密插值。為了達(dá)到如圖2(b)所示的插值效果(斷面線的分布在河流彎道的外側(cè)比內(nèi)側(cè)稀疏,這樣才能更好地表達(dá)水面各處流速情況),以第k(上游)和k+1(下游)斷面之間河段為例,插值加密由第k個(gè)斷面開始沿著河道向第k+1個(gè)斷面逐漸靠近依次進(jìn)行,邊界線搜索具體步驟如下:

(1)

式中,向量均為同一坐標(biāo)系下的單位向量;Qk表示第k個(gè)初始斷面的起點(diǎn)距(以河流上游或是下游某斷面中心點(diǎn)為參照沿河流中心線計(jì)算的各斷面距參照點(diǎn)的路程);d1為斷面插值采用的步長,具體值視仿真需求決定(如取10m)。

3) 對(duì)ki斷面水位線,依次進(jìn)行下列過程:

e. 依據(jù)斷面k和k+1的水位高程值,利用線性插值計(jì)算得到斷面線ki的水位高程值。

由于河流的自然走勢,自上游至下游會(huì)出現(xiàn)高程起伏變化,沿著河道不同處的斷面水位線處于不同的水平面,另外各個(gè)河流分段內(nèi)水位的變化很小,可以看成是由上游至下游呈線性降低,因此算法中采用線性插值得到加密斷面線的水位高程。

2. 流動(dòng)水體仿真

(1) 水面建模

本文在水面模型的建立上改為在傳統(tǒng)的單層格網(wǎng)模型之上再疊加兩層橫縱向的帶狀三角鎖網(wǎng),如圖4所示。

首先利用前文方法處理得到的河流邊界及插值加密斷面水位線數(shù)據(jù),在每一條斷面水位線上加密采樣一系列點(diǎn),建立第1層基本河面三角網(wǎng),如圖4(a)所示。

圖4 3層河面網(wǎng)格模型

(2) 紋理映射技術(shù)

① 紋理坐標(biāo)求解

在計(jì)算第1層基本河面網(wǎng)格的紋理坐標(biāo)時(shí),按照橫向紋理貼圖的重復(fù)次數(shù)線性計(jì)算出各個(gè)模型頂點(diǎn)的紋理U坐標(biāo),即河流斷面線上各個(gè)頂點(diǎn)的U坐標(biāo)間距相等,在河面寬處紋理會(huì)被拉伸,河面狹窄時(shí)紋理會(huì)被壓縮。而V方向即沿著河流流動(dòng)方向的紋理坐標(biāo)計(jì)算,首先設(shè)整段河流紋理縱向貼圖重復(fù)次數(shù)為Tv,第一個(gè)斷面起點(diǎn)距為0,最后一個(gè)斷面起點(diǎn)距為Qend(單位為m),則各個(gè)頂點(diǎn)的V方向紋理坐標(biāo)計(jì)算如下

(2)

式中,Qj為第j個(gè)斷面的起點(diǎn)距。在計(jì)算第2層和第3層網(wǎng)格頂點(diǎn)的紋理坐標(biāo)時(shí),只需根據(jù)相應(yīng)r和t(含義如上文)的取值,以第1層網(wǎng)格紋理坐標(biāo)為基準(zhǔn)進(jìn)行插值計(jì)算即可,如第1層中A點(diǎn)紋理U坐標(biāo)為uA,B、D紋理V坐標(biāo)為vB和vD,則第2層中的p1點(diǎn)和第3層中的q2點(diǎn)的紋理坐標(biāo)up、vq則分別如下

(3)

(4)

式中,T為橫向(沿河流斷面線方向)紋理重復(fù)貼圖次數(shù);N為斷面線上頂點(diǎn)數(shù),每個(gè)斷面線上頂點(diǎn)數(shù)均為N;LAp1、LAE、LBq2、LBD分別為線段Ap1、AE、Bq2、BD的長度,單位為m。

② 動(dòng)態(tài)紋理映射

(5)

式中, f為渲染的實(shí)時(shí)幀率。但該值為不可預(yù)知的隨機(jī)值,實(shí)際應(yīng)用中無法利用其計(jì)算紋理偏移值,在本文的渲染中計(jì)算vm時(shí)f不參與計(jì)算,即整體紋理偏移速度統(tǒng)一放大f倍,但這不會(huì)影響最終渲染視覺效果,如果需要獲取實(shí)時(shí)水流速度,只需利用測量值除以實(shí)時(shí)幀率即可。其他參數(shù)與前文含義相同。由于各個(gè)紋理塊的vm不等,因此能表現(xiàn)河面各處流速不同。

③ 紋理融合

隨著時(shí)間推移,由于第1層河面網(wǎng)中各個(gè)獨(dú)立四邊形塊之間紋理偏移不同步(由于vm不等)導(dǎo)致紋理被拉扯錯(cuò)位,每一四邊形塊各自流動(dòng)猶如水面被切開一樣,使得河面看起來如馬賽克一般支離破碎。為了克服這一缺陷,讓各個(gè)四邊形紋理塊之間自然平滑過渡,相互交融成為一個(gè)自然的整體河流,依據(jù)之前計(jì)算的頂點(diǎn)紋理坐標(biāo),在第2層和第3層融合帶模型上粘貼紋理。然后設(shè)定融合帶各紋理塊偏移的速率。如圖4中,第2層的縱向紋理在進(jìn)行紋理渲染時(shí),設(shè)定紋理塊FAp1p2的偏移與FGBA的紋理偏移同步,第3層的橫向紋理塊如圖4中設(shè)定ABq2q1與ABCD的紋理偏移同步,即橫、縱向融合紋理帶中各個(gè)紋理塊的偏移與其臨邊的第一層紋理塊偏移同步。最后針對(duì)融合帶每一紋理塊進(jìn)行透明漸變的設(shè)定,如紋理塊FAp1p2中,設(shè)定A、F點(diǎn)透明度值(Alpha值)為1(即不透明),而p1、p2點(diǎn)設(shè)為0,由此在紋理渲染過程中實(shí)現(xiàn)了從AF線到p1p2線的逐漸透明的效果,從而使得紋理塊FGBA自然地與EIFA模糊融合為一張更大的紋理塊。同樣設(shè)置A、B點(diǎn)透明度值為1,設(shè)定q1、q2點(diǎn)為0,實(shí)現(xiàn)ABCD與FGBA的自然融合。整個(gè)河面網(wǎng)中都對(duì)相應(yīng)頂點(diǎn)進(jìn)行透明值的設(shè)置,從而實(shí)現(xiàn)了整條河流的紋理塊融合,效果如圖5所示。

④ 紋理渲染

圖5 流動(dòng)水體仿真效果

考慮到水文工作更多的實(shí)用性需求及系統(tǒng)效率,本文使用水面波紋法線貼圖(如圖6(b)所示)利用法線映射技術(shù)實(shí)現(xiàn)了簡單的水面波動(dòng)及光學(xué)效果,采用HLSL語言編寫著色器結(jié)合最終完成紋理的渲染。河流水體的顏色由下式?jīng)Q定

Cwater=α×Cpicture+β×Cambient+γ×Cdiffuse+

λ×Cspecular+θ×Creflect

(6)

式中,Cwater為水面顏色;Cpicture為河面圖像顏色;Cambient為環(huán)境光顏色;Cdiffuse為漫反射顏色;Cspecular為鏡面高光顏色;Creflect為反射顏色。各項(xiàng)值的具體計(jì)算目前已有成熟公式,此處不再贅述。對(duì)于系數(shù)α、β、γ、λ、θ滿足和值為1,且取值都分別位于[0,1]之間,具體取值視仿真效果而定。

圖6 本文所使用的紋理

三、試驗(yàn)與分析

1. 數(shù) 據(jù)

根據(jù)本文提出的方法,筆者在Windows7系統(tǒng)上以GaeaExplorer2.0為平臺(tái)結(jié)合VisualStudio2008及DirectX9.0環(huán)境,采用C#和HLSL語言,在長江流域三峽大壩上游段的區(qū)域內(nèi)構(gòu)建了流域動(dòng)態(tài)水體仿真系統(tǒng)作為試驗(yàn)環(huán)境,在該仿真系統(tǒng)中可以自由漫游瀏覽水體流動(dòng)效果。試驗(yàn)中DEM數(shù)據(jù)為30m精度的SRTM地形數(shù)據(jù)和5m精度的河道地形數(shù)據(jù),同時(shí)影像數(shù)據(jù)為30m精度的Landsat影像數(shù)據(jù)。試驗(yàn)區(qū)域內(nèi)整個(gè)河流長度為605km,初始斷面水位線共308條,所有水文觀測數(shù)據(jù)均存儲(chǔ)在數(shù)據(jù)庫中。試驗(yàn)硬件環(huán)境為:Intel(R)Core(TM)2DuoCPU,2.0GB內(nèi)存,2.66GHz,ATIRadeonHD3450顯卡,顯存256MB。

2. 試驗(yàn)結(jié)果與分析

圖5(a)中紅色曲線為利用本文算法搜索出來的河流邊界線,可見河流邊界線與自然河道地形能較好地貼合。圖5(b)、(c)為未進(jìn)行動(dòng)態(tài)紋理渲染前靜止河流水面的模擬效果,實(shí)現(xiàn)了簡單的波紋、反射、高光等水面現(xiàn)象,圖5(d)、(e)、(f)是粘貼了河面圖像紋理,采用本文提出的動(dòng)態(tài)紋理渲染技術(shù)表達(dá)的流動(dòng)河流水面效果,在系統(tǒng)中能動(dòng)態(tài)觀察到水面各處的流速不同的自然現(xiàn)象。

不同河流長度建模與渲染效率見表1。

表1 建模與渲染效率

表1中視點(diǎn)高度值表示在仿真窗口中(視域內(nèi))能夠看到整段河流時(shí)相機(jī)離地面的最低高度。本文采取對(duì)所選河段進(jìn)行一次性統(tǒng)一建模。河流長度為605km時(shí),渲染幀率達(dá)到16幀,建網(wǎng)耗時(shí)4851ms,能夠?qū)崿F(xiàn)整個(gè)仿真系統(tǒng)的連貫流暢運(yùn)行,仿真效率較好。但此時(shí)在313.3km高度看到的河流近乎為一條細(xì)線,無法觀察河面細(xì)節(jié)情況,而當(dāng)相機(jī)靠近河面觀察時(shí)又只有整條河流的一小段進(jìn)入視域內(nèi),因?yàn)楸疚脑囼?yàn)中采取對(duì)整條河流一次性統(tǒng)一建模,其余部分雖然不在視域內(nèi)但同時(shí)也在進(jìn)行渲染,這就在無形之中大大降低了系統(tǒng)運(yùn)行效率。為了進(jìn)一步提高效率,可以考慮隨時(shí)只對(duì)視域內(nèi)的河流段進(jìn)行仿真,從而保證效率,滿足實(shí)際工作需求。在本試驗(yàn)系統(tǒng)中相機(jī)高度在低于7652m時(shí)才能清楚觀察河面水流流動(dòng)情況,此高度下出現(xiàn)在視域內(nèi)河流長度在12km左右。可以將河流分為12km左右的小段,在仿真時(shí)動(dòng)態(tài)地對(duì)進(jìn)入視域內(nèi)的河流段利用本文仿真方法進(jìn)行建模與渲染。

四、結(jié)束語

本文提出的方法不僅能利用斷面水位線結(jié)合DEM進(jìn)行河流邊界自動(dòng)搜索及河面自動(dòng)建模,也具有較好的仿真效果,能夠真實(shí)表達(dá)出整個(gè)河面各處流速情況,尤其是水面多層模型的建立對(duì)于表達(dá)流動(dòng)水體自然特性的模擬具有較好的借鑒意義。因?yàn)閿嗝婢€及DEM在水文工作中屬于基本數(shù)據(jù),容易獲得,所以本文方法具有較好的普遍適用性。但是在支流處,本文的邊界搜索算法無法智能實(shí)現(xiàn)斷面處理,需要人工干預(yù)河流斷面線的加密,針對(duì)這種情況還需作進(jìn)一步研究。

參考文獻(xiàn):

[1]陳文輝,談曉軍,董朝霞.大范圍流域內(nèi)水體三維仿真研究[J].系統(tǒng)仿真學(xué)報(bào),2004,16(11):2409-2412.

[2]王偉,王鵬,陳能成,等.一種面向大區(qū)域不規(guī)則河道的水流仿真方法[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2011,36(5):510-513.

[3]童俊濤.面向大區(qū)域不規(guī)則河道的河水建模與渲染的研究[D].武漢:武漢大學(xué),2010.

[4]王瑋哲. 面向大范圍地理環(huán)境的河流建模與渲染方法研究[D]. 武漢:武漢大學(xué),2011.

[5]馮玉芬.基于虛擬現(xiàn)實(shí)技術(shù)的動(dòng)態(tài)水面仿真方法研究[J].唐山師范學(xué)院學(xué)報(bào),2012,34(2):52-55.

[6]王海玲,印桂生,張菁,等.基于改進(jìn)曲面熵的動(dòng)態(tài)水面模擬方法[J].計(jì)算機(jī)工程,2011,37(6):24-26.

[7]王道臣,萬旺根,唐經(jīng)洲,等.基于GPU的水面實(shí)時(shí)渲染算法[J].計(jì)算機(jī)工程,2008,34(20):233-234.

[8]方貴盛,潘志庚.水虛擬仿真技術(shù)研究進(jìn)展[J].系統(tǒng)仿真學(xué)報(bào),2013,25(9):1981-1989.

[9]楊在興,芮小平,梁明,等.基于流場的流動(dòng)水體仿真[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(6):2392-2396.

[10]冶運(yùn)濤,張尚弘,王興奎.三峽庫區(qū)洪水演進(jìn)三維可視化仿真研究[J].系統(tǒng)仿真學(xué)報(bào),2009,21(14):4379-4382.

[11]孟令奎. 呂琪菲復(fù)雜水體邊界提取的改進(jìn)正交T-Snake模型[J].測繪學(xué)報(bào),2015, 44 (6): 670-677.

[12]朱長明, 駱劍承, 沈占鋒, 等.DEM輔助下的河道細(xì)小線性水體自適應(yīng)迭代提取[J]. 測繪學(xué)報(bào),2013, 42 (2): 277-283.