本發(fā)明屬于計(jì)算機(jī)圖形學(xué)領(lǐng)域,特別是涉及一種數(shù)據(jù)驅(qū)動(dòng)的自然場(chǎng)景快速過程化建模的方法。
背景技術(shù):
3d建模在影視制作、游戲開發(fā)、虛擬現(xiàn)實(shí)等領(lǐng)域都是必不可少的環(huán)節(jié)之一,但是3d建模的過程非常繁瑣,對(duì)于大規(guī)模的自然場(chǎng)景,使用3dmax或者maya等軟件會(huì)耗費(fèi)過多的人力和時(shí)間資源。過程化建模技術(shù)是一種基于規(guī)則的建模方法,運(yùn)用該技術(shù)可以對(duì)特定的場(chǎng)景或者物體等進(jìn)行快速的建模,從而大大的提升建模的效率。過程化建模比較適合生成具有重復(fù)子結(jié)構(gòu)或自相似特征的物體,如植物、道路、地形、城市等。如果定義合適的語法規(guī)則和輸入?yún)?shù),則過程化建??梢陨筛鞣N逼真的3d內(nèi)容。
河流以其多樣性和可觀賞性,在虛擬場(chǎng)景中可以大大的增強(qiáng)用戶體驗(yàn),對(duì)于自然場(chǎng)景來說是不可缺少的一部分。然而由于河流復(fù)雜的拓?fù)浣Y(jié)構(gòu)、豐富的形狀幾何類型以及它同地形的關(guān)聯(lián),使用傳統(tǒng)建模軟件對(duì)河流網(wǎng)絡(luò)進(jìn)行建模是非常困難的。并且由于傳統(tǒng)的過程化建模技術(shù)輸出內(nèi)容的不可控性,結(jié)合交互式編輯與過程化建模的方法可以增強(qiáng)結(jié)果的控制性,但是交互編輯的工作量是不可忽視的?,F(xiàn)有的專門針對(duì)河流網(wǎng)絡(luò)的建模方法主要有2種,一種是基于交互式編輯的方法,另一種是傳統(tǒng)的過程式生成方法。前者需要考慮河流與地形的復(fù)雜的拓?fù)浣Y(jié)構(gòu)、豐富的形狀幾何類型以及河流同地形的關(guān)聯(lián),需要耗費(fèi)較大的人力工作;后者由于過程式方法的隨機(jī)性,不能很好的依據(jù)參數(shù)控制輸出結(jié)果。如果能在指定的地形上很好的生成符合用戶意圖河流網(wǎng)格,并且使用盡量少的操作,則對(duì)河流網(wǎng)絡(luò)建模是一個(gè)非常大的改進(jìn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于使用較少的交互操作實(shí)現(xiàn)在指定地形上的河流網(wǎng)絡(luò)建模,提出了一種基于單幅圖像的河流網(wǎng)絡(luò)過程式生成方法,該方法使用河流圖像作為輸入,能夠大大簡(jiǎn)化過程化建模中調(diào)整參數(shù)的過程,生成逼真的河流網(wǎng)絡(luò),并且具有一定的可控性。
實(shí)現(xiàn)本發(fā)明目的的具體技術(shù)方案是:
一種基于單幅圖像的河流網(wǎng)絡(luò)過程式生成方法,該方法包含以下步驟:
a)使用參數(shù)模型將自然界中的河流網(wǎng)絡(luò)的形狀特性和幾何特性量化的表示出來,具體包括:
i)形狀參數(shù)模型
使用形狀參數(shù)
其中,u為該河段的實(shí)際長度,d為該河段起始點(diǎn)到終點(diǎn)的直線距離;參數(shù)dsm和dsv分別表示所有河段直線距離的期望和方差;參數(shù)nb、nc和nl分別表示支流、匯流以及湖泊的個(gè)數(shù);參數(shù)slm和slv分別表示湖泊大小的期望和方差;
ii)幾何參數(shù)模型
使用幾何參數(shù)
ω=ωr×(χrw)λ(2)
h=hr×(χrh)λ(3)
其中ω和h為等級(jí)為λ的河道的寬度和深度;參數(shù)
b)輸入河流網(wǎng)絡(luò)圖片,計(jì)算該河流網(wǎng)絡(luò)的形狀參數(shù)的值,具體包括:
輸入河流網(wǎng)絡(luò)圖片,使用grabcut方法從圖像中分割出河流部分,并提取河流網(wǎng)絡(luò)骨骼結(jié)構(gòu);標(biāo)記河流的主流部分并指定河流的起點(diǎn)和終點(diǎn),遍歷河流骨骼結(jié)構(gòu),并將其表示為有向無環(huán)圖
c)輸入地形高度圖,基于河流的形狀參數(shù)和幾何參數(shù)過程式的生成地形一致的河流網(wǎng)絡(luò),具體包括:
i)待生成河流網(wǎng)絡(luò)的形狀參數(shù)
給定待生成河流網(wǎng)絡(luò)的地形的高度圖并指定待生成河流的起始位置ps和終止位置pm,選取的ps的地形高度必須高于pm的地形高度,待生成河流網(wǎng)絡(luò)的直線距離
待生成河流網(wǎng)絡(luò)的其余形狀參數(shù)的值計(jì)算如下:
其中對(duì)待生成河流網(wǎng)絡(luò)的河段長度和湖泊大小進(jìn)行了按場(chǎng)景規(guī)模比例計(jì)算,
ii)河流網(wǎng)絡(luò)
河流網(wǎng)絡(luò)的河段均使用b樣條進(jìn)行插值;在待生成河流網(wǎng)絡(luò)的地形,首先生成從河流起始位置到終止位置的主流;為使生成的主流符合地形的起伏,使用考慮地形高度的中點(diǎn)位移法對(duì)b樣條的型值點(diǎn)進(jìn)行位置調(diào)整,選取的型值點(diǎn)約束要求如下:
其中p為待調(diào)整型值點(diǎn)的位置,rs和rm為待調(diào)整的河段的起點(diǎn)和終點(diǎn),
①、擴(kuò)散支流,如果
②、擴(kuò)散匯流,如果
③、擴(kuò)散湖泊,如果
d)使用模擬退火算法對(duì)生成場(chǎng)景進(jìn)行優(yōu)化,具體包括:
在每次優(yōu)化迭代的過程中,對(duì)生成的河流網(wǎng)絡(luò)
其中ξc和ξl分別為河流彎曲度的距離以及被河流包圍的陸地面積的距離;ξc計(jì)算如下:
其中ci和
其中
本發(fā)明的有益效果:
本發(fā)明使用河流的俯視照片或衛(wèi)星影像等作為輸入,提取輸入圖像的河流特性,并將其運(yùn)用在新的地形上,具有非常簡(jiǎn)潔的交互。本發(fā)明還使用模擬退火算法對(duì)輸出結(jié)果進(jìn)行進(jìn)一步優(yōu)化,以符合輸入圖像的河流特性。
總之,應(yīng)用本發(fā)明可以快速地對(duì)河流網(wǎng)絡(luò)進(jìn)行建模,與傳統(tǒng)方法相比,具有更少的用戶交互并具有一定的結(jié)果可控性。
附圖說明
圖1為本發(fā)明流程圖;
圖2為本發(fā)明考慮地形高度的中點(diǎn)位移法示意圖;
圖3為本發(fā)明使用三種不同的河流參數(shù)值生成的對(duì)應(yīng)河流網(wǎng)絡(luò)圖;
圖4和圖5為本發(fā)明使用兩個(gè)不同的輸入河流圖像生成的對(duì)應(yīng)河流網(wǎng)絡(luò)圖。
具體實(shí)施方式
本發(fā)明包括以下步驟:
1)河流參數(shù)化模型表示
使用參數(shù)模型將自然界中的河流網(wǎng)絡(luò)的彎曲度、支流、匯流以及相連的湖泊特性量化的表示出來,其中使用形狀參數(shù)控制河流的網(wǎng)絡(luò)拓?fù)涮匦裕褂脦缀螀?shù)控制河道幾何特性。
2)輸入河流圖片參數(shù)計(jì)算
輸入河流網(wǎng)絡(luò)的俯視圖像,使用grabcut方法從圖像中分割出河流部分,并提取其骨骼結(jié)構(gòu),基于河流的網(wǎng)絡(luò)結(jié)構(gòu)計(jì)算河流形狀參數(shù)。
3)依據(jù)參數(shù)過程式生成河流網(wǎng)絡(luò)
輸入地形高度圖,基于河流的形狀參數(shù)和幾何參數(shù)過程式的生成地形一致的河流網(wǎng)絡(luò)。
4)河流網(wǎng)絡(luò)優(yōu)化
評(píng)估生成河流網(wǎng)絡(luò)與輸入河流圖片的距離函數(shù)的值,并使用模擬退火算法迭代優(yōu)化生成河流網(wǎng)絡(luò)。
本發(fā)明的河流參數(shù)化模型表示步驟具體為:
使用形狀參數(shù)
其中,u為該河段的實(shí)際長度,d為該河段起始點(diǎn)到終點(diǎn)的直線距離;參數(shù)dsm和dsv分別表示所有河段直線距離的期望和方差;參數(shù)nb、nc和nl分別表示支流、匯流以及湖泊的個(gè)數(shù);參數(shù)slm和slv分別表示湖泊大小的期望和方差。
使用幾何參數(shù)
ω=ωr×(χrw)λ(2)
h=hr×(χrh)λ(3)
其中ω和h為等級(jí)為λ的河道的寬度和深度;參數(shù)
本發(fā)明的輸入河流圖片參數(shù)計(jì)算步驟具體為:
輸入河流網(wǎng)絡(luò)圖片,使用grabcut方法從圖像中分割出河流部分,并提取河流網(wǎng)絡(luò)骨骼結(jié)構(gòu);標(biāo)記河流的主流部分并指定河流的起點(diǎn)和終點(diǎn),遍歷河流骨骼結(jié)構(gòu),并將其表示為有向無環(huán)圖
本發(fā)明的過程式生成河流網(wǎng)絡(luò)步驟具體為:
給定待生成河流網(wǎng)絡(luò)的地形的高度圖并指定待生成河流的起始位置ps和終止位置pm,選取的ps的地形高度必須高于pm的地形高度,待生成河流網(wǎng)絡(luò)的直線距離
待生成河流網(wǎng)絡(luò)的其余形狀參數(shù)的值計(jì)算如下:
其中對(duì)待生成河流網(wǎng)絡(luò)的河段長度和湖泊大小進(jìn)行了按場(chǎng)景規(guī)模比例計(jì)算,
河流網(wǎng)絡(luò)的河段均使用b樣條進(jìn)行插值;在待生成河流網(wǎng)絡(luò)的地形,首先生成從河流起始位置到終止位置的主流;為使生成的主流符合地形的起伏,使用考慮地形高度的中點(diǎn)位移法對(duì)b樣條的型值點(diǎn)進(jìn)行位置調(diào)整,選取的型值點(diǎn)約束要求如下:
其中p為待調(diào)整型值點(diǎn)的位置,rs和rm為待調(diào)整的河段的起點(diǎn)和終點(diǎn),
①、擴(kuò)散支流,如果
②、擴(kuò)散匯流,如果
③、擴(kuò)散湖泊,如果
本發(fā)明的優(yōu)化生成河流網(wǎng)絡(luò)的步驟具體為:
使用模擬退火框架使得生成河流網(wǎng)絡(luò)更加符合輸入河流網(wǎng)絡(luò)的特性。在每次優(yōu)化迭代的過程中,對(duì)生成的河流網(wǎng)絡(luò)
算法1.河流網(wǎng)絡(luò)優(yōu)化算法
t=t0
對(duì)i從1到n
對(duì)j從1到m
對(duì)
如果
將
如果δe<0則
否則以概率
t=t×α
算法1中計(jì)算兩個(gè)河流網(wǎng)絡(luò)
其中ξc和ξl分別為河流彎曲度的距離以及被河流包圍的陸地面積的距離;ξc計(jì)算如下:
其中ci和
其中
本發(fā)明的具體實(shí)現(xiàn)過程為:
如圖1所示,首先用戶提供河流網(wǎng)絡(luò)的俯視圖片,該圖片可以為航拍照片或者直接從地理信息系統(tǒng)中下載得到。然后使用grabcut方法分割輸入圖片并提取河流骨骼結(jié)構(gòu),從而獲取輸入河流網(wǎng)絡(luò)的模型參數(shù)。然后結(jié)合輸入地形高度圖過程式生成河流網(wǎng)絡(luò),之后迭代使用模擬退火算法對(duì)輸出場(chǎng)景進(jìn)行優(yōu)化,最后得到輸出河流網(wǎng)絡(luò)。
本發(fā)明基于單幅圖像與輸入地形圖進(jìn)行河流網(wǎng)絡(luò)過程式生成,效果展示說明如下:
圖3展示了本發(fā)明的參數(shù)模型生成場(chǎng)景的多樣性,圖片左側(cè)為河流網(wǎng)絡(luò)圖,圖片右側(cè)為對(duì)應(yīng)的3d場(chǎng)景。圖3a、3b、3c展示了本發(fā)明在不同的地形上生成了豐富的河流網(wǎng)絡(luò),且河流網(wǎng)絡(luò)變化非常大。
圖4展示了在山地地形下輸出的河流結(jié)果。左上為從googleearth提取的河流圖片;右上為在地形高度圖上生成的河流網(wǎng)絡(luò)展示;圖片中間和下方為生成的三維場(chǎng)景??梢钥闯?,我們的方法生成的河流很好的沿著地形擴(kuò)散,并且與輸入圖像具有很大的相似性。
圖5展示了輸入圖像為具有匯流及多條小型支流的河流網(wǎng)絡(luò)。本發(fā)明在平原地區(qū)生成了相似的河流網(wǎng)絡(luò)。
以上列舉的僅是本發(fā)明的具體實(shí)施例。顯然,本發(fā)明不限于以上實(shí)施例,還可以有許多變形。本領(lǐng)域的普通技術(shù)人員能從本發(fā)明公開的內(nèi)容直接導(dǎo)出或聯(lián)想到的所有變形,均應(yīng)認(rèn)為是本發(fā)明的保護(hù)范圍。