亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種移動(dòng)端室內(nèi)外一體化的三維可視化方法和裝置與流程

文檔序號(hào):11866003閱讀:396來(lái)源:國(guó)知局
一種移動(dòng)端室內(nèi)外一體化的三維可視化方法和裝置與流程

技術(shù)領(lǐng)域

本發(fā)明涉及一種移動(dòng)端室內(nèi)外三維簡(jiǎn)模一體化渲染的方法和裝置,尤其涉及一種移動(dòng)端室內(nèi)外一體化的三維可視化方法和裝置。



背景技術(shù):

隨著大眾對(duì)室內(nèi)導(dǎo)航需求的增強(qiáng),位置服務(wù)領(lǐng)域的研究熱點(diǎn)已從室外延伸到室內(nèi),室外導(dǎo)航技術(shù)已趨于成熟,室內(nèi)導(dǎo)航技術(shù)正蓬勃發(fā)展,與室內(nèi)導(dǎo)航相關(guān)的室內(nèi)外一體化三維可視化也因運(yùn)而生。

目前,國(guó)內(nèi)外研究成果在移動(dòng)端室內(nèi)外一體化上,缺乏一體化理念,不能很好的將室內(nèi)和室外有效結(jié)合起來(lái),移動(dòng)端室內(nèi)導(dǎo)航在地圖可視化問(wèn)題上,或側(cè)重于室內(nèi)二三維可視化而忽略室內(nèi)外一體,或存在室內(nèi)外數(shù)據(jù)建模不一致、室內(nèi)外可視化不統(tǒng)一等問(wèn)題。國(guó)內(nèi)外對(duì)于室內(nèi)外一體化數(shù)據(jù)模型組織和可視化方面有較少的研究,在室內(nèi)細(xì)節(jié)層次表現(xiàn)上研究成果甚少,相關(guān)研究還處于起步階段。



技術(shù)實(shí)現(xiàn)要素:

基于上述問(wèn)題,本發(fā)明顧及三維模型的快速構(gòu)建,提出樓梯拉伸算法,采用一種利用地圖縮放級(jí)別和地面分辨率控制模型的可見(jiàn)性來(lái)實(shí)現(xiàn)室內(nèi)外一體化的方法,能夠有效的實(shí)現(xiàn)室內(nèi)外一體化展示的效果。

本發(fā)明的上述技術(shù)問(wèn)題主要是通過(guò)下述技術(shù)方案得以解決的;

一種移動(dòng)端室內(nèi)外一體化的三維可視化方法,包括以下步驟:

步驟1,數(shù)據(jù)預(yù)處理;

所述步驟1中,對(duì)數(shù)據(jù)預(yù)處理的具體步驟如下:

步驟1.1,樓梯和手扶電梯的處理,是對(duì)圖形進(jìn)行裁剪和屬性賦值;所述的屬性賦值指高度范圍和抬升點(diǎn)索引的賦值,得到樓梯和手扶電梯數(shù)據(jù)A1;

步驟1.2,建筑物外輪廓處理,是對(duì)添加步驟1.1得到的樓梯和手扶電梯數(shù)據(jù)A1和其他室內(nèi)數(shù)據(jù)A2的閉包盒,得到建筑物外輪廓B;為了實(shí)現(xiàn)室內(nèi)外一體化效果,建筑物外輪廓、樓層外輪廓都是必須添加的;所述的建筑物外輪廓是所有樓層的幾何數(shù)據(jù)的閉包盒,所述的樓層外輪廓是每層樓層的幾何數(shù)據(jù)的閉包盒;

步驟2,建筑物立體拉伸;對(duì)步驟1得到的二維室內(nèi)建筑物數(shù)據(jù)進(jìn)行拉伸處理,通過(guò)立體拉伸算法構(gòu)建三維模型;

所述步驟2中,對(duì)步驟1得到的二維室內(nèi)建筑物數(shù)據(jù)進(jìn)行拉伸處理,得到室內(nèi)對(duì)象和建筑物外輪廓的三維模型,具體步驟如下:

步驟2.1,普通建筑物拉伸,對(duì)非樓梯和手扶電梯的室內(nèi)建筑物數(shù)據(jù)A2和建筑物外輪廓B進(jìn)行平面拉伸,得到非樓梯和手扶電梯的室內(nèi)建筑物數(shù)據(jù)A2的三維模型Ma2和建筑物外輪廓的三維模型Mb;

步驟2.2,樓梯和手扶電梯拉伸;得到樓梯和手扶電梯數(shù)據(jù)A1的三維模型Ma1;對(duì)于樓梯間平面,采用步驟2.1的方法進(jìn)行拉伸;對(duì)于樓梯斜面和手扶電梯斜面,在將二維點(diǎn)擴(kuò)展成三維點(diǎn)加入點(diǎn)鏈時(shí),對(duì)斜面低點(diǎn)和斜面高點(diǎn)的高度分別處理;

步驟3,室內(nèi)外一體化渲染;對(duì)步驟2得到的室內(nèi)對(duì)象和建筑物輪廓模型分開(kāi)處理,利用地圖縮放級(jí)別控制模型和地面分辨率控制模型的可見(jiàn)性來(lái)實(shí)現(xiàn)室內(nèi)外一體化;

步驟4,結(jié)束。

進(jìn)一步的,所述的步驟1.1中, 所述的圖形的裁剪具體的為:樓梯的二維平面圖形假設(shè)是一個(gè)長(zhǎng)方形、等規(guī)則形狀的樓梯;樓梯的處理是將這個(gè)整體圖像進(jìn)行裁剪,分成樓梯間平面、和兩個(gè)樓梯斜面兩部分;

手扶電梯只有一個(gè)斜面組成,將手扶電梯的二維平面圖形處理成一個(gè)長(zhǎng)方形;

所述的處理高度范圍具體的為:對(duì)裁剪后的二維平面圖形設(shè)置高度范圍屬性;

對(duì)于斜面來(lái)說(shuō),設(shè)定斜面中低的點(diǎn)的起始高度為minh,斜面中高的點(diǎn)的起始高度為h,拉伸高度為step;、斜面高點(diǎn)的高度范圍是[h,h+step],其他非高點(diǎn)即低點(diǎn)的高度范圍是[min,minh+step];

對(duì)于樓梯間平面,設(shè)定起始高度為minh,拉伸后高度為h;樓梯間平面的所有點(diǎn)高度一樣,高度范圍是[minh,h];

所述的記錄抬升點(diǎn)索引具體的為:對(duì)裁剪后的二維平面圖形記錄抬升點(diǎn)索引;對(duì)于斜面,存儲(chǔ)抬升點(diǎn)的索引,表明抬升點(diǎn)相對(duì)于其他點(diǎn)來(lái)說(shuō)是斜面中的高點(diǎn),其他點(diǎn)默認(rèn)都是低點(diǎn)。

進(jìn)一步的,所述的步驟2.1,普通建筑物拉伸具體步驟如下:

步驟2.1.1,復(fù)制點(diǎn);

將平面點(diǎn)(x,y)復(fù)制成兩個(gè)點(diǎn),分別是底(x,y,minh)和頂(x,y,h),并將兩點(diǎn)添加到新的結(jié)構(gòu)體點(diǎn)鏈中,得到點(diǎn)鏈L1;

平面坐標(biāo)系(x,y)采用的Web墨卡托投影坐標(biāo),高程h以地面為起點(diǎn),高于地面為正,低于地面為負(fù);為了強(qiáng)調(diào)樓層分布,高程采用相對(duì)坐標(biāo),將樓層間距放大,同時(shí)將樓層內(nèi)的建筑物高度縮?。?/p>

新的結(jié)構(gòu)體點(diǎn)鏈?zhǔn)侵该總€(gè)點(diǎn)鏈元素中存放著一個(gè)三維點(diǎn)(x,y,h);新的結(jié)構(gòu)體點(diǎn)鏈包括底面點(diǎn)鏈和頂面點(diǎn)鏈,所述的底面點(diǎn)鏈和頂面點(diǎn)鏈最終要放在一個(gè)點(diǎn)鏈中,為了構(gòu)造三角面片索引方便,添加一個(gè)底部點(diǎn)再添加一個(gè)頂部點(diǎn),點(diǎn)鏈中存儲(chǔ)順序是下上下上、先底后頂,形成Z字型索引的方式;

步驟2.1.2,構(gòu)建側(cè)面;

對(duì)步驟2.1.1中得到的L1點(diǎn)鏈中的點(diǎn)進(jìn)行側(cè)面三角面片索引的構(gòu)造;以當(dāng)前添加的底、頂和下一步要添加的底、頂?shù)乃膫€(gè)點(diǎn)作為基礎(chǔ),構(gòu)造兩個(gè)三角面片F(xiàn)1和F2,形成逆時(shí)針?lè)ň€向外的面片,確保前面面片可見(jiàn);

步驟2.1.3,奇偶邊存儲(chǔ);

對(duì)步驟2.1.2得到的三角面片F(xiàn)1和F2進(jìn)行奇偶邊判斷并存儲(chǔ)在對(duì)應(yīng)邊的索引數(shù)組中;為了突出立體效果,奇偶側(cè)邊的顏色根據(jù)光照要重新計(jì)算;指定起始邊為偶邊,每計(jì)算完一邊,翻轉(zhuǎn)其索引存儲(chǔ)的奇偶性,即相鄰兩邊的奇偶性不同,其三角索引分別放在不同的兩個(gè)索引數(shù)組中;

步驟2.1.4,構(gòu)建頂面;

對(duì)步驟2.1.1中得到的L1點(diǎn)鏈中的頂點(diǎn)進(jìn)行頂面面片構(gòu)建并存儲(chǔ)在頂邊索引數(shù)組中;根據(jù)頂邊頂點(diǎn)生成多邊形,所述的多邊形分簡(jiǎn)單多邊形和復(fù)雜多邊形兩種,對(duì)多邊形進(jìn)行三角分解;

步驟2.1.5,模型構(gòu)建;

L1點(diǎn)鏈中的點(diǎn)構(gòu)成了模型的頂點(diǎn)數(shù)據(jù),側(cè)面、頂面索引數(shù)組構(gòu)成模型的索引數(shù)據(jù),至此模型構(gòu)建完成。

進(jìn)一步的,所述的步驟2.2中,對(duì)于樓梯斜面和手扶電梯斜面的拉伸,包括下述步驟:

步驟2.2.1,復(fù)制點(diǎn);

對(duì)于輸入的二維圖形點(diǎn)(x,y),首先判斷其屬性中的抬升點(diǎn)是否為空,該字段存儲(chǔ)了高點(diǎn)索引信息;

如果為空,表明該點(diǎn)是平面點(diǎn),二維平面點(diǎn)(x,y)擴(kuò)展成兩個(gè)三維點(diǎn)低(x,y,minh)和頂(x,y,minh+step);

如果為非空,表明該點(diǎn)是斜面點(diǎn),再判斷該點(diǎn)索引是否在抬升點(diǎn)集合中;如果在,表明該點(diǎn)是高點(diǎn),二維斜面點(diǎn)(x,y)擴(kuò)展成兩個(gè)三維點(diǎn)底(x,y, h)和頂(x,y, h+step);如果不在,表明該點(diǎn)是低點(diǎn),二維斜面點(diǎn)(x,y)擴(kuò)展成兩個(gè)三維點(diǎn)底(x,y, minh)和頂(x,y, minh +step);

最后,將底和頂兩點(diǎn)添加到新的結(jié)構(gòu)體點(diǎn)鏈中,得到點(diǎn)鏈L2;

步驟2.2.2,構(gòu)建側(cè)面;

對(duì)步驟2.2.1得到的L2點(diǎn)鏈中的點(diǎn)進(jìn)行側(cè)面三角面片索引的構(gòu)造;以當(dāng)前添加的底、頂和下一步要添加的底、頂?shù)乃膫€(gè)點(diǎn)作為基礎(chǔ),構(gòu)造兩個(gè)三角面片F(xiàn)3和F4,形成逆時(shí)針?lè)ň€向外的面片,確保前面面片可見(jiàn);

步驟2.2.3,奇偶邊存儲(chǔ);

對(duì)步驟2.2.2得到的三角面片F(xiàn)3和F4進(jìn)行奇偶邊判斷并存儲(chǔ)在對(duì)應(yīng)邊的索引數(shù)組中;為了突出立體效果,奇偶側(cè)邊的顏色根據(jù)光照要重新計(jì)算;指定起始邊為偶邊,每計(jì)算完一邊,翻轉(zhuǎn)其索引存儲(chǔ)的奇偶性,即相鄰兩邊的奇偶性不同,其三角索引分別放在不同的兩個(gè)索引數(shù)組中;

步驟2.2.4,構(gòu)建頂面;

對(duì)步驟2.2.1得到的L2點(diǎn)鏈中的頂點(diǎn)進(jìn)行頂面面片構(gòu)建并存儲(chǔ)在頂邊索引數(shù)組中;根據(jù)頂邊頂點(diǎn)生成多邊形,即頂邊輪廓線圍成的多邊形,分簡(jiǎn)單多邊形和復(fù)雜多邊形兩種,對(duì)多邊形進(jìn)行三角分解;

步驟2.2.5,模型構(gòu)建;

L2點(diǎn)鏈中的點(diǎn)構(gòu)成了模型的頂點(diǎn)數(shù)據(jù),側(cè)面、頂面索引數(shù)組構(gòu)成模型的索引數(shù)據(jù),模型構(gòu)建完成。

進(jìn)一步的,所述的步驟3中,室內(nèi)外一體化渲染是對(duì)步驟2得到的室內(nèi)對(duì)象三維模型Ma1、Ma2和建筑物外輪廓模型Mb分開(kāi)處理,利用地圖縮放級(jí)別控制模型和地面分辨率控制模型的可見(jiàn)性來(lái)實(shí)現(xiàn)室內(nèi)外一體化。

進(jìn)一步的,所述的室內(nèi)外一體化渲染包括如下步驟:

步驟3.1,室內(nèi)外分開(kāi)渲染;

將整棟建筑物模型分為室內(nèi)對(duì)象和建筑物外輪廓兩部分,分別存放在兩個(gè)不同圖層,室內(nèi)對(duì)象圖層Ly1和建筑物外輪廓圖層Ly2,進(jìn)行分開(kāi)渲染;

步驟3.2,二三維切換;

根據(jù)縮放級(jí)別判斷室內(nèi)對(duì)象和建筑物外輪廓的二三維圖形可見(jiàn)性;地圖縮放級(jí)別大于閾值為三維可見(jiàn)二維不可見(jiàn),小于閾值為二維可見(jiàn)三維不可見(jiàn),是否可見(jiàn)的切換表現(xiàn)在二維平面拉伸為三維立體,所述的拉伸過(guò)程是瞬間動(dòng)畫(huà),根據(jù)分辨率提升二維平面高度為三維立體高度;

步驟3.2,室內(nèi)外切換;

當(dāng)步驟3.2,中將二維平面拉伸為三維立體后,再采用地面分辨率控制室內(nèi)對(duì)象和建筑物外輪廓模型的透明度,從而控制其可見(jiàn)性。

進(jìn)一步的,所述的閾值為地圖縮放級(jí)別的17級(jí)。

進(jìn)一步的,所述的采用地面分辨率控制室內(nèi)對(duì)象和建筑物外輪廓模型的透明度,具體的是:

對(duì)于建筑物外輪廓:在地面分辨率大于0.3時(shí),建筑物外輪廓完全不透明;在地面分辨率大于0.2小于0.3時(shí),建筑物外輪廓透明度0.9;在地面分辨率大于0.1小于0.2時(shí),建筑物外輪廓透明度0.6;在地面分辨率大于0.09小于0.1時(shí),建筑物外輪廓透明度0.3;在地面分辨率小于0.09時(shí),完全進(jìn)入室內(nèi),建筑物外輪廓完全透明不可見(jiàn);

對(duì)于室內(nèi)對(duì)象:在地面分辨率大于0.3時(shí),室內(nèi)對(duì)象幾乎透明不可見(jiàn);在地面分辨率大于0.2小于0.3時(shí),室內(nèi)對(duì)象透明度0.9;在地面分辨率大于0.1小于0.2時(shí),室內(nèi)對(duì)象透明度0.6;在地面分辨率小于0.1時(shí),完全進(jìn)入室內(nèi),室內(nèi)對(duì)象完全不透明。

一種移動(dòng)端室內(nèi)外一體化的三維可視化裝置,包括:

數(shù)據(jù)預(yù)處理模塊:用于樓梯和手扶電梯的處理;建筑物外輪廓處理;

建筑物立體拉伸模塊:用于對(duì)數(shù)據(jù)預(yù)處理模塊得到的二維室內(nèi)建筑物數(shù)據(jù)進(jìn)行拉伸處理,通過(guò)立體拉伸算法構(gòu)建三維模型;

包括用于對(duì)普通建筑物的拉伸;包括用于對(duì)樓梯和手扶電梯的拉伸;

室內(nèi)外一體化渲染模塊:用于對(duì)建筑物立體拉伸模塊得到的室內(nèi)對(duì)象和建筑物輪廓模型分開(kāi)處理,利用地圖縮放級(jí)別控制模型和地面分辨率控制模型的可見(jiàn)性來(lái)實(shí)現(xiàn)室內(nèi)外一體化。

綜上所述,本發(fā)明具有如下優(yōu)點(diǎn):

1.通過(guò)簡(jiǎn)化模型,采用立體拉伸算法,實(shí)現(xiàn)批量模型的快速構(gòu)建,特別是實(shí)現(xiàn)了樓梯等特殊建筑物的三維建模。

2.室內(nèi)對(duì)象和建筑物外輪廓分成兩個(gè)圖層,建筑物外輪廓的渲染和室內(nèi)對(duì)象的渲染互不影響,確保模塊間低耦合性和獨(dú)立性。

3.考慮到顯示效率的提高,在視野很遠(yuǎn)時(shí),不需要顯示室內(nèi)建筑物對(duì)象,也不需要將建筑物的三維輪廓,只要用二維平面表達(dá)形狀即可。當(dāng)視野拉近時(shí),從二維變?yōu)槿S立體建筑,用三維模型表達(dá)。

4.透過(guò)建筑物外輪廓可以看到室內(nèi)布局,室外環(huán)境以及室內(nèi)建筑物分布一覽無(wú)余。從室外到室內(nèi)透明化漸變過(guò)程,自動(dòng)將關(guān)注重點(diǎn)從建筑物輪廓切換到室內(nèi)對(duì)象,提升用戶體驗(yàn)。

附圖說(shuō)明

圖1是本發(fā)明的一種方法流程示意圖;

圖2是樓梯二維圖形處理過(guò)程示意圖;

圖3是立體拉伸過(guò)程示意圖;

圖4是Z字型索引存儲(chǔ)示意圖;

圖5是構(gòu)建側(cè)面過(guò)程示意圖;

圖6是奇偶邊存儲(chǔ)過(guò)程示意圖。

具體實(shí)施方式

下面通過(guò)實(shí)例,并結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步具體的說(shuō)明。

如圖1是本發(fā)明的一種方法流程示意圖,發(fā)明主要包括以下步驟:

1.一種移動(dòng)端室內(nèi)外一體化的三維可視化方法,其特征在于,包括以下步驟:

步驟1,數(shù)據(jù)預(yù)處理;針對(duì)二維室內(nèi)建筑物數(shù)據(jù)冗余、數(shù)據(jù)缺失的情況,分別進(jìn)行去除或補(bǔ)充操作。

所述步驟1中,對(duì)數(shù)據(jù)預(yù)處理的具體步驟如下:

步驟1.1,樓梯和手扶電梯的處理,即圖形的裁剪和屬性賦值,屬性賦值指高度范圍和抬升點(diǎn)索引的賦值,得到樓梯和手扶電梯數(shù)據(jù)A1,具體步驟如下:

所述的圖形的裁剪具體的為:樓梯的二維平面圖形假設(shè)是一個(gè)長(zhǎng)方形、等規(guī)則形狀的樓梯;樓梯的處理是將這個(gè)整體圖像進(jìn)行裁剪,分成樓梯間平面、和兩個(gè)樓梯斜面兩部分;

手扶電梯只有一個(gè)斜面組成,將手扶電梯的二維平面圖形處理成一個(gè)長(zhǎng)方形;

所述的處理高度范圍具體的為:對(duì)裁剪后的二維平面圖形設(shè)置高度范圍屬性;

對(duì)于斜面來(lái)說(shuō),設(shè)定斜面中低的點(diǎn)的起始高度為minh,斜面中高的點(diǎn)的起始高度為h,拉伸高度為step;斜面高點(diǎn)的高度范圍是[h,h+step],其他非高點(diǎn)即低點(diǎn)的高度范圍是[min,minh+step];

對(duì)于樓梯間平面,設(shè)定起始高度為minh,拉伸后高度為h;樓梯間平面的所有點(diǎn)高度一樣,高度范圍是[minh,h];

所述的記錄抬升點(diǎn)索引具體的為:

對(duì)裁剪后的二維平面圖形記錄抬升點(diǎn)索引;對(duì)于斜面,存儲(chǔ)抬升點(diǎn)的索引,表明抬升點(diǎn)相對(duì)于其他點(diǎn)來(lái)說(shuō)是傾斜面中的高點(diǎn),其他點(diǎn)默認(rèn)都是低點(diǎn);如圖2是樓梯二維圖形處理過(guò)程示意圖,其中斜面1中存儲(chǔ)的抬升點(diǎn)是[0:3],斜面2中存儲(chǔ)的抬升點(diǎn)是[2:3]。

步驟1.2,建筑物外輪廓處理,即添加步驟1.1得到的樓梯和手扶電梯數(shù)據(jù)A1和其他室內(nèi)數(shù)據(jù)A2的閉包盒,得到建筑物外輪廓B;為了實(shí)現(xiàn)室內(nèi)外一體化效果,建筑物外輪廓、樓層外輪廓都是必須添加的;所述的建筑物外輪廓是所有樓層的幾何數(shù)據(jù)的閉包盒,所述的樓層外輪廓是每層樓層的幾何數(shù)據(jù)的閉包盒。

步驟2,建筑物立體拉伸;對(duì)步驟1得到的二維室內(nèi)建筑物數(shù)據(jù)進(jìn)行拉伸處理,通過(guò)立體拉伸算法構(gòu)建三維模型;

所述步驟2中,對(duì)步驟1得到的二維室內(nèi)建筑物數(shù)據(jù)進(jìn)行拉伸處理,得到室內(nèi)對(duì)象和建筑物外輪廓的三維模型,具體步驟如下:

步驟2.1,普通建筑物拉伸,對(duì)非樓梯和手扶電梯的室內(nèi)建筑物數(shù)據(jù)A2和建筑物外輪廓B進(jìn)行平面拉伸,得到非樓梯和手扶電梯的室內(nèi)建筑物數(shù)據(jù)A2的三維模型Ma2和建筑物外輪廓的三維模型Mb;如圖3是立體拉伸過(guò)程示意圖,對(duì)于同一平面上的點(diǎn)高度一致的,拉伸為立體,一方面要復(fù)制一組平面上的點(diǎn),另一方面要對(duì)這些點(diǎn)的高度賦值,最后還要對(duì)這些點(diǎn)構(gòu)成的面進(jìn)行三角分解。拉伸步驟如下:

步驟2.1.1,復(fù)制點(diǎn);

將平面點(diǎn)(x,y)復(fù)制成兩個(gè)點(diǎn),分別是底(x,y,minh)和頂(x,y,h),并將兩點(diǎn)添加到新的結(jié)構(gòu)體點(diǎn)鏈中,得到點(diǎn)鏈L1;

平面坐標(biāo)系(x,y)采用的Web墨卡托投影坐標(biāo),高程h以地面為起點(diǎn),高于地面為正,低于地面為負(fù);為了強(qiáng)調(diào)樓層分布,高程采用相對(duì)坐標(biāo),將樓層間距放大,同時(shí)將樓層內(nèi)的建筑物高度縮??;

新的結(jié)構(gòu)體點(diǎn)鏈?zhǔn)侵该總€(gè)點(diǎn)鏈元素中存放著一個(gè)三維點(diǎn)(x,y,h);例如,在索引0位置1的點(diǎn)鏈元素中存放著一個(gè)三維點(diǎn)(x1,y1,h1),在位置2的點(diǎn)鏈元素中存放著一個(gè)三維點(diǎn)(x2,y2,h2)。

新的結(jié)構(gòu)體點(diǎn)鏈包括底面點(diǎn)鏈和頂面點(diǎn)鏈,所述的底面點(diǎn)鏈和頂面點(diǎn)鏈最終要放在一個(gè)點(diǎn)鏈中,為了構(gòu)造三角面片索引方便,添加一個(gè)底部點(diǎn)再添加一個(gè)頂部點(diǎn),點(diǎn)鏈中存儲(chǔ)順序是下上下上、先底后頂,形成Z字型索引的方式;如圖4是Z字型索引存儲(chǔ)示意圖,假設(shè)點(diǎn)鏈下標(biāo)從0開(kāi)始,將二維圖形復(fù)制成底面點(diǎn)鏈和頂面點(diǎn)鏈并最終放在一個(gè)點(diǎn)鏈后,底面點(diǎn)鏈在最終點(diǎn)鏈的位置是0,2,4,6…, 頂面點(diǎn)鏈在最終點(diǎn)鏈的位置是1,3,5,7…,構(gòu)造三角面片形成Z字型索引。

步驟2.1.2,構(gòu)建側(cè)面;

對(duì)步驟2.1.1中得到的L1點(diǎn)鏈中的點(diǎn)進(jìn)行側(cè)面三角面片索引的構(gòu)造;以當(dāng)前添加的底、頂和下一步要添加的底、頂?shù)乃膫€(gè)點(diǎn)作為基礎(chǔ),構(gòu)造兩個(gè)三角面片F(xiàn)1和F2,形成逆時(shí)針?lè)ň€向外的面片,確保前面面片可見(jiàn);如圖5是構(gòu)建側(cè)面過(guò)程示意圖,假設(shè)點(diǎn)鏈下標(biāo)從0開(kāi)始,側(cè)面已經(jīng)添加的底點(diǎn)0和頂點(diǎn)1,與下一步將要添加的底點(diǎn)2和頂點(diǎn)3,四個(gè)進(jìn)行逆時(shí)針構(gòu)建面片得到兩個(gè)三角面片索引分別是(0,2,1)和(1,2,3)。

步驟2.1.3,奇偶邊存儲(chǔ);

對(duì)步驟2.1.2得到的三角面片F(xiàn)1和F2進(jìn)行奇偶邊判斷并存儲(chǔ)在對(duì)應(yīng)邊的索引數(shù)組中;為了突出立體效果,奇偶側(cè)邊的顏色根據(jù)光照要重新計(jì)算;指定起始邊為偶邊,每計(jì)算完一邊,翻轉(zhuǎn)其索引存儲(chǔ)的奇偶性,即相鄰兩邊的奇偶性不同,其三角索引分別放在不同的兩個(gè)索引數(shù)組中。圖6是奇偶邊存儲(chǔ)過(guò)程示意圖, 假設(shè)點(diǎn)鏈下標(biāo)從0開(kāi)始,并從偶面開(kāi)始記錄,index[0]存儲(chǔ)偶邊索引,index[1]存儲(chǔ)奇邊索引,偶邊構(gòu)造的三角面片索引分別是(0,2,1)和(1,2,3),在偶邊索引數(shù)組中存儲(chǔ)為index[0]=[0,2,1,1,2,3], 奇邊構(gòu)造的三角面片索引分別是(2,4,3)和(3,4,5),在奇邊索引數(shù)組中存儲(chǔ)為index[1]=[2,4,3,3,4,5]。

步驟2.1.4,構(gòu)建頂面;

對(duì)步驟2.1.1中得到的L1點(diǎn)鏈中的頂點(diǎn)進(jìn)行頂面面片構(gòu)建并存儲(chǔ)在頂邊索引數(shù)組中;根據(jù)頂邊頂點(diǎn)生成多邊形,為頂邊輪廓線圍成的多邊形,所述的多邊形分簡(jiǎn)單多邊形和復(fù)雜多邊形兩種,對(duì)多邊形進(jìn)行三角分解;

步驟2.1.5,模型構(gòu)建;

L1點(diǎn)鏈中的點(diǎn)構(gòu)成了模型的頂點(diǎn)數(shù)據(jù),側(cè)面、頂面索引數(shù)組構(gòu)成模型的索引數(shù)據(jù),至此模型構(gòu)建完成;

在三維圖形技術(shù)中,模型都是由簡(jiǎn)單的三角形面片組成,模型頂點(diǎn)可以是幾個(gè)三角形共有的,在存儲(chǔ)這些頂點(diǎn)信息時(shí)可以用索引的方式來(lái)存儲(chǔ)這些頂點(diǎn)信息,節(jié)省存儲(chǔ)空間,提高渲染速度。通過(guò)頂點(diǎn)數(shù)據(jù)和索引數(shù)據(jù)創(chuàng)建頂點(diǎn)緩沖和索引緩沖將模型數(shù)據(jù)發(fā)送到顯卡,然后繪制三角形得到三維模型圖形。因此,頂點(diǎn)數(shù)據(jù)和索引數(shù)據(jù)是三維圖形渲染中重要組成部分,就如模型骨架,顏色或者紋理就如模型衣服。

步驟2.2,樓梯和手扶電梯拉伸;得到樓梯和手扶電梯數(shù)據(jù)A1的三維模型Ma1;對(duì)于樓梯間平面,同一平面上的點(diǎn)高度一致,拉伸為立體,一方面要復(fù)制一組平面上的點(diǎn),另一方面要對(duì)這些點(diǎn)的高度賦值,最后還要對(duì)這些點(diǎn)構(gòu)成的面進(jìn)行三角分解,這部分可采用步驟2.1的方法進(jìn)行拉伸;對(duì)于樓梯斜面和手扶電梯斜面,在將二維點(diǎn)擴(kuò)展成三維點(diǎn)加入點(diǎn)鏈時(shí),對(duì)斜面低點(diǎn)和斜面高點(diǎn)的高度分別處理;

所述的對(duì)于樓梯斜面和手扶電梯斜面的拉伸,包括下述步驟:

步驟2.2.1,復(fù)制點(diǎn);

對(duì)于輸入的二維圖形點(diǎn)(x,y),首先判斷其屬性中的抬升點(diǎn)是否為空,該字段存儲(chǔ)了高點(diǎn)索引信息;

如果為空,表明該點(diǎn)是平面點(diǎn),二維平面點(diǎn)(x,y)擴(kuò)展成兩個(gè)三維點(diǎn)低(x,y,minh)和頂(x,y,minh+step);

如果為非空,表明該點(diǎn)是斜面點(diǎn),再判斷該點(diǎn)索引是否在抬升點(diǎn)集合中;如果在,表明該點(diǎn)是高點(diǎn),二維斜面點(diǎn)(x,y)擴(kuò)展成兩個(gè)三維點(diǎn)底(x,y, h)和頂(x,y, h+step);如果不在,表明該點(diǎn)是低點(diǎn),二維斜面點(diǎn)(x,y)擴(kuò)展成兩個(gè)三維點(diǎn)底(x,y, minh)和頂(x,y, minh +step);

最后,將底和頂兩點(diǎn)添加到新的結(jié)構(gòu)體點(diǎn)鏈中,得到點(diǎn)鏈L2;

步驟2.2.2,構(gòu)建側(cè)面;

對(duì)步驟2.2.1得到的L2點(diǎn)鏈中的點(diǎn)進(jìn)行側(cè)面三角面片索引的構(gòu)造;以當(dāng)前添加的底、頂和下一步要添加的底、頂?shù)乃膫€(gè)點(diǎn)作為基礎(chǔ),構(gòu)造兩個(gè)三角面片F(xiàn)3和F4,形成逆時(shí)針?lè)ň€向外的面片,確保前面面片可見(jiàn);

步驟2.2.3,奇偶邊存儲(chǔ);

對(duì)步驟2.2.2得到的三角面片F(xiàn)3和F4進(jìn)行奇偶邊判斷并存儲(chǔ)在對(duì)應(yīng)邊的索引數(shù)組中;為了突出立體效果,奇偶側(cè)邊的顏色根據(jù)光照要重新計(jì)算;指定起始邊為偶邊,每計(jì)算完一邊,翻轉(zhuǎn)其索引存儲(chǔ)的奇偶性,即相鄰兩邊的奇偶性不同,其三角索引分別放在不同的兩個(gè)索引數(shù)組中;

步驟2.2.4,構(gòu)建頂面;

對(duì)步驟2.2.1得到的L2點(diǎn)鏈中的頂點(diǎn)進(jìn)行頂面面片構(gòu)建并存儲(chǔ)在頂邊索引數(shù)組中;根據(jù)頂邊頂點(diǎn)生成多邊形,即頂邊輪廓線圍成的多邊形,分簡(jiǎn)單多邊形和復(fù)雜多邊形兩種,對(duì)多邊形進(jìn)行三角分解;

步驟2.2.5,模型構(gòu)建;

L2點(diǎn)鏈中的點(diǎn)構(gòu)成了模型的頂點(diǎn)數(shù)據(jù),側(cè)面、頂面索引數(shù)組構(gòu)成模型的索引數(shù)據(jù),模型構(gòu)建完成。

步驟3,室內(nèi)外一體化渲染;對(duì)步驟2得到的室內(nèi)對(duì)象和建筑物輪廓模型分開(kāi)處理,利用地圖縮放級(jí)別控制模型和地面分辨率控制模型的可見(jiàn)性來(lái)實(shí)現(xiàn)室內(nèi)外一體化;

所述步驟3中,所述的室內(nèi)外一體化渲染是對(duì)步驟2得到的室內(nèi)對(duì)象三維模型Ma1、Ma2和建筑物外輪廓模型Mb分開(kāi)處理,利用地圖縮放級(jí)別控制模型和地面分辨率控制模型的可見(jiàn)性來(lái)實(shí)現(xiàn)室內(nèi)外一體化,包括如下步驟:

步驟3.1,室內(nèi)外分開(kāi)渲染;

將整棟建筑物模型分為室內(nèi)對(duì)象和建筑物外輪廓兩部分,分別存放在兩個(gè)不同圖層,室內(nèi)對(duì)象圖層Ly1和建筑物外輪廓圖層Ly2,進(jìn)行分開(kāi)渲染;

步驟3.2,二三維切換;

根據(jù)縮放級(jí)別判斷室內(nèi)對(duì)象和建筑物外輪廓的二三維圖形可見(jiàn)性;地圖縮放級(jí)別大于閾值為三維可見(jiàn)二維不可見(jiàn),小于閾值為二維可見(jiàn)三維不可見(jiàn),是否可見(jiàn)的切換表現(xiàn)在二維平面拉伸為三維立體,所述的拉伸過(guò)程是瞬間動(dòng)畫(huà),根據(jù)分辨率提升二維平面高度為三維立體高度;

具體的,所述的閾值為地圖縮放級(jí)別的17級(jí)。

建筑物外輪廓:在地圖縮放級(jí)別小于17級(jí)時(shí),建筑物外輪廓表現(xiàn)為二維平面輪廓,沒(méi)有三維建筑形象;在達(dá)到17級(jí)以后,二維平面外輪廓消失,三維立體建筑出現(xiàn);地圖縮放級(jí)別大于17級(jí)仍舊以此三維立體形象顯示,但是隨著視野拉近建筑物內(nèi),進(jìn)入室內(nèi)后,建筑物外輪廓逐漸不可見(jiàn)。

室內(nèi)對(duì)象:在地圖縮放級(jí)別小于17級(jí)時(shí),由于只有建筑物外輪廓,也達(dá)不到顯示室內(nèi)的程度,室內(nèi)二維平面輪廓不顯示,更不必顯示三維室內(nèi)對(duì)象;在地圖縮放級(jí)別達(dá)到17級(jí)以后,三維室內(nèi)對(duì)象構(gòu)建,但是不渲染;地圖縮放級(jí)別大于17級(jí)仍舊以此三維立體形象顯示,但是隨著視野拉近建筑物內(nèi),室內(nèi)對(duì)象逐漸可見(jiàn)。

步驟3.2,室內(nèi)外切換;

當(dāng)步驟3.2,中將二維平面拉伸為三維立體后,再采用地面分辨率控制室內(nèi)對(duì)象和建筑物外輪廓模型的透明度,從而控制其可見(jiàn)性;當(dāng)?shù)孛娣直媛瘦^低時(shí),建筑物外輪廓模型完全不透明,樓層、樓梯等室內(nèi)對(duì)象模型完全透明,此時(shí)并不能看到室內(nèi)的結(jié)構(gòu)環(huán)境;在地面分辨率提高的過(guò)程中,建筑物外輪廓模型逐漸透明,室內(nèi)對(duì)象模型逐漸不透明,室內(nèi)的房屋樓層布局逐漸凸顯;直到進(jìn)入室內(nèi)時(shí),室內(nèi)對(duì)象模型完全不透明,建筑物外輪廓模型完全透明。

具體的,建筑物外輪廓:在地面分辨率大于0.3時(shí),建筑物外輪廓完全不透明;在地面分辨率大于0.2小于0.3時(shí),建筑物外輪廓透明度0.9;在地面分辨率大于0.1小于0.2時(shí),建筑物外輪廓透明度0.6;在地面分辨率大于0.09小于0.1時(shí),建筑物外輪廓透明度0.3;在地面分辨率小于0.09時(shí),完全進(jìn)入室內(nèi),建筑物外輪廓完全透明不可見(jiàn);

室內(nèi)對(duì)象:在地面分辨率大于0.3時(shí),室內(nèi)對(duì)象幾乎透明不可見(jiàn);在地面分辨率大于0.2小于0.3時(shí),室內(nèi)對(duì)象透明度0.9;在地面分辨率大于0.1小于0.2時(shí),室內(nèi)對(duì)象透明度0.6;在地面分辨率小于0.1時(shí),完全進(jìn)入室內(nèi),室內(nèi)對(duì)象完全不透明。

步驟4,結(jié)束。

一種移動(dòng)端室內(nèi)外一體化的三維可視化裝置,包括:

數(shù)據(jù)預(yù)處理模塊:用于樓梯和手扶電梯的處理;建筑物外輪廓處理;

建筑物立體拉伸模塊:用于對(duì)數(shù)據(jù)預(yù)處理模塊得到的二維室內(nèi)建筑物數(shù)據(jù)進(jìn)行拉伸處理,通過(guò)立體拉伸算法構(gòu)建三維模型;

包括用于對(duì)普通建筑物的拉伸; 包括用于對(duì)樓梯和手扶電梯的拉伸;

室內(nèi)外一體化渲染模塊:用于對(duì)建筑物立體拉伸模塊得到的室內(nèi)對(duì)象和建筑物輪廓模型分開(kāi)處理,利用地圖縮放級(jí)別控制模型和地面分辨率控制模型的可見(jiàn)性來(lái)實(shí)現(xiàn)室內(nèi)外一體化。

本方法和裝置從數(shù)據(jù)處理出發(fā),增加建筑物外輪廓,裁剪編輯樓梯,剔除冗余數(shù)據(jù),是室內(nèi)外一體化表達(dá)的數(shù)據(jù)基礎(chǔ);采用立體拉伸算法,尤其樓梯的拉伸處理,實(shí)現(xiàn)模型的快速構(gòu)建,是室內(nèi)外一體化表達(dá)的算法基礎(chǔ);通過(guò)室內(nèi)外建筑物對(duì)象分成兩個(gè)圖層渲染,二三維切換和室內(nèi)外切換的設(shè)計(jì),最終實(shí)現(xiàn)透過(guò)建筑物外輪廓看到室內(nèi)三維布局,從室外到室內(nèi)的漸進(jìn)過(guò)渡等室內(nèi)外一體化表達(dá)效果。

本文中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神作舉例說(shuō)明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類(lèi)似的方式替代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書(shū)所定義的范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1