本發(fā)明涉及地理信息系統(tǒng)和計(jì)算機(jī)圖形學(xué)鄰域,特別是涉及一種地形繪制瓦片裂縫消除算法。
背景技術(shù):
海量地形可視化技術(shù)是三維地理信息系統(tǒng),計(jì)算機(jī)圖形學(xué)和虛擬現(xiàn)實(shí)等鄰域的重要研究?jī)?nèi)容之一。為了加快海量地形數(shù)據(jù)的調(diào)度,對(duì)數(shù)據(jù)按金字塔進(jìn)行組織和調(diào)度。
根據(jù)瓦片金字塔對(duì)地形數(shù)據(jù)進(jìn)行調(diào)度,會(huì)根據(jù)瓦片和視點(diǎn)的位置關(guān)系,進(jìn)行瓦片的分裂或者合并。渲染時(shí)同一個(gè)水平(X,Y)點(diǎn)出現(xiàn)了兩個(gè)高度,在這些點(diǎn)就出現(xiàn)了高度差,也就是裂縫。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)現(xiàn)有技術(shù)地形瓦片間的裂縫問(wèn)題,提供了一種地形繪制瓦片裂縫消除算法。
為了解決上述技術(shù)問(wèn)題,本發(fā)明通過(guò)下述技術(shù)方案得以解決。
一種地形繪制瓦片裂縫消除算法,包括如下步驟:
(1)視景體內(nèi)瓦片提?。涸谡{(diào)度中,得到當(dāng)前調(diào)度的瓦片列表,從中裁剪出視景體中的瓦片,通過(guò)相關(guān)包圍盒信息,判斷瓦片是否位于視景體內(nèi),如是的話,進(jìn)行記錄該瓦片,并得到所有位于視景體內(nèi)的瓦片;
(2)瓦片鄰域確定:對(duì)視景體中的瓦片進(jìn)行鄰域查找,根據(jù)瓦片在四叉樹(shù)中有相應(yīng)的層—列—行作為標(biāo)記信息,進(jìn)行鄰域判斷;在保證瓦片層級(jí)間隔不超過(guò)1的情況下,對(duì)于一個(gè)瓦片,記錄其右鄰域和下鄰域;
(3)改變高程值:將同一個(gè)水平點(diǎn)出現(xiàn)的兩個(gè)高度處理成統(tǒng)一的高度,利用鄰域關(guān)系,進(jìn)行鄰域瓦片邊緣節(jié)點(diǎn)的賦值,包括:
①鄰域同層賦值操作:賦值下鄰域最上一行的點(diǎn)到當(dāng)前瓦片的最下面一行,賦值右鄰域最左邊一列的值到當(dāng)前瓦片最右邊一列;
②鄰域不同層賦值操作:將低精度區(qū)域賦邊界賦值給對(duì)應(yīng)高精度區(qū)域;如果下鄰域是高精度瓦片,則把當(dāng)前瓦片最下面一行的點(diǎn)賦值給下鄰域的對(duì)應(yīng)點(diǎn),不對(duì)應(yīng)的點(diǎn)用兩邊的平均數(shù)代替。
作為優(yōu)選,鄰域包括上一層級(jí)、同層級(jí)和下一層級(jí)。
本發(fā)明由于采用了以上技術(shù)方案,具有顯著的技術(shù)效果:本發(fā)明有效的消除了海量地形數(shù)據(jù)中的瓦片裂縫,算法有較好的效率保證,視覺(jué)效果優(yōu)于裙帶方式,加快了海量地形數(shù)據(jù)的調(diào)度。
附圖說(shuō)明
圖1是本發(fā)明一種地形繪制瓦片裂縫消除算法中的鄰域確定示意圖;
圖2是本發(fā)明一種地形繪制瓦片裂縫消除算法中的鄰域同層賦值操作示意圖;
圖3是本發(fā)明一種地形繪制瓦片裂縫消除算法中的低精度區(qū)域邊界賦值給對(duì)應(yīng)高精度區(qū)域操作示意圖;
圖4是本發(fā)明一種地形繪制瓦片裂縫消除算法中的高精度區(qū)域邊界賦值給對(duì)應(yīng)低精度區(qū)域操作示意圖。
具體實(shí)施方式
下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
如圖1至圖4所示,一種地形繪制瓦片裂縫消除算法,包括如下步驟:
(1)視景體內(nèi)瓦片提?。涸谡{(diào)度中,得到當(dāng)前調(diào)度的瓦片列表,從中裁剪出視景體中的瓦片,通過(guò)相關(guān)包圍盒信息,判斷瓦片是否位于視景體內(nèi),如是的話,進(jìn)行記錄該瓦片,并得到所有位于視景體內(nèi)的瓦片;
(2)瓦片鄰域確定:對(duì)視景體中的瓦片進(jìn)行鄰域查找,根據(jù)瓦片在四叉樹(shù)中有相應(yīng)的層—列—行作為標(biāo)記信息,進(jìn)行鄰域判斷;對(duì)于一個(gè)瓦片,記錄其右鄰域和下鄰域,在保證瓦片層級(jí)間隔不超過(guò)1的情況下,鄰域包括三種情況:上一層級(jí)、同層級(jí)和下一層級(jí);
(3)改變高程值:將同一個(gè)水平(x,y)點(diǎn)出現(xiàn)的兩個(gè)高度處理成統(tǒng)一的高度,利用鄰域關(guān)系,進(jìn)行鄰域瓦片邊緣節(jié)點(diǎn)的賦值,包括:
①鄰域同層賦值操作:如圖2所示,賦值下鄰域最上一行的點(diǎn)到當(dāng)前瓦片的最下面一行,賦值右鄰域最左邊一列的值到當(dāng)前瓦片最右邊一列;
②鄰域不同層賦值操作:如圖3所示,將低精度區(qū)域賦邊界賦值給對(duì)應(yīng)高精度區(qū)域。如果下鄰域是高精度瓦片,則把當(dāng)前瓦片最下面一行的點(diǎn)賦值給下鄰域的對(duì)應(yīng)點(diǎn),不對(duì)應(yīng)的點(diǎn)用兩邊的平均數(shù)代替。如圖4,上半部分區(qū)域?yàn)橥咂?,兩個(gè)下鄰域是瓦片2和瓦片3,則把瓦片1的最下面一行賦值給瓦片2和瓦片3的第一行,如果瓦片2和瓦片3中的點(diǎn)不對(duì)應(yīng),取左右兩邊的平均值。
如果下鄰域是低精度層級(jí),則對(duì)應(yīng)把下鄰域最上面一行的點(diǎn)賦值給當(dāng)前層的對(duì)應(yīng)點(diǎn),不對(duì)應(yīng)的點(diǎn)用兩邊的平均數(shù)代替。對(duì)于右鄰域也是同樣的操作。
實(shí)施例1
通過(guò)相關(guān)包圍盒信息,判斷瓦片是否位于視景體內(nèi),得到所有位于視景體內(nèi)的瓦片。瓦片在四叉樹(shù)中有相應(yīng)的(層-列-行)作為標(biāo)記信息,根據(jù)瓦片(層-列-行)的標(biāo)記,進(jìn)行鄰域判斷。對(duì)于一個(gè)瓦片,記錄其右鄰域和下鄰域。在保證瓦片層級(jí)間隔不超過(guò)1的情況下,鄰域可能有三種情況,上一層級(jí)、同層級(jí)、下一層級(jí),根據(jù)鄰接關(guān)系,判斷是同層、上層、下層,進(jìn)行鄰域同層賦值操作或者鄰域不同層賦值操作。如圖1所示,根據(jù)鄰接關(guān)系,判斷是同層、上層、下層,進(jìn)行鄰域同層賦值操作或者鄰域不同層賦值操作。如圖1所示,B-0-1的右鄰域是A-0-1,B-0-1下鄰域是B-1-1。則B-0-1、A-0-1按右鄰域不同層賦值進(jìn)行操作,B-0-1和B-1-1按下鄰域同層賦值操作,對(duì)所有位于視景體的瓦片進(jìn)行上述操作,消除視景體內(nèi)所有渲染瓦片邊緣的高度差,進(jìn)而進(jìn)行渲染。
總之,以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明申請(qǐng)專(zhuān)利范圍所作的均等變化與修飾,皆應(yīng)屬本發(fā)明專(zhuān)利的涵蓋范圍。