• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于OSGEarth的城市三維場景構(gòu)建

      2013-06-26 13:15:58吳小東許捍衛(wèi)
      地理空間信息 2013年2期
      關(guān)鍵詞:瓦片結(jié)點建筑物

      吳小東,許捍衛(wèi)

      (1.河海大學(xué) 地球科學(xué)與工程學(xué)院,江蘇 南京 210098)

      城市三維場景構(gòu)建是“數(shù)字城市”建設(shè)[1]的關(guān)鍵技術(shù)之一。面對TB級以上的海量數(shù)據(jù),雖然隨著計算機(jī)硬件技術(shù)的發(fā)展,在一定程度上緩解了大規(guī)模數(shù)據(jù)渲染的問題,但是仍然無法從根本上解決 “有限的系統(tǒng)資源與無限大的數(shù)據(jù)量的矛盾”。目前常見的方法是細(xì)節(jié)層次技術(shù)(LOD)和數(shù)據(jù)分頁技術(shù)。

      OpenSceneGraph(簡稱OSG)是一個基于工業(yè)標(biāo)準(zhǔn)OpenGL跨平臺的三維開源場景圖形系統(tǒng)應(yīng)用程序開發(fā)接口(API)。作為一個高性能的圖形開發(fā)引擎,它在3D程序開發(fā)中扮演著重要角色。OSGEarth是Gleen等人在OSG的基礎(chǔ)上建立的一個開源項目。OSGEarth在GDAL與OGC的基礎(chǔ)上可以加載眾多來源的數(shù)據(jù),并且可以加載眾多類型的三維模型數(shù)據(jù),支持不同的數(shù)據(jù)格式,以插件的形式驅(qū)動。本文采用OSGEarth,結(jié)合LOD和數(shù)據(jù)分頁技術(shù)構(gòu)建城市三維場景,為“數(shù)字城市”建設(shè)提供基礎(chǔ)框架。

      1 OSGEarth數(shù)據(jù)基礎(chǔ)

      OSGEarth是基于標(biāo)準(zhǔn)C++和OSG開發(fā)的,采用實時的地形數(shù)據(jù)加載和渲染策略[2],具有良好的多源數(shù)據(jù)支持與數(shù)據(jù)管理功能。

      1.1 OSGEarth視圖

      OSGEarth目前支持2種類型的視圖:Geocentric是地球Globe視圖,類似Google Earth全球Globe視圖;Projected是平面投影坐標(biāo)系下的Flat視圖,支持多種地理坐標(biāo)和投影坐標(biāo)系統(tǒng)。

      1.2 OSGEarth數(shù)據(jù)支持

      OSGEarth采用驅(qū)動器的方式來支持各種GIS數(shù)據(jù)源,它自帶有多種驅(qū)動器,如GDAL驅(qū)動器,用于處理影像和DEM數(shù)據(jù);TMS驅(qū)動器,用于處理采用TMS協(xié)議的瓦片數(shù)據(jù)等。此外,OSGEarth的高擴(kuò)展性使得用戶可以根據(jù)需求自行擴(kuò)展其他類別的驅(qū)動器。表1為OSGEarth目前支持的各種驅(qū)動器。

      表1 OSGEarth的驅(qū)動器及其支持的數(shù)據(jù)格式統(tǒng)計表

      1.3 OSGEarth數(shù)據(jù)管理

      OSGEarth采用類似于ArcGIS中圖層的概念來進(jìn)行各類數(shù)據(jù)的管理,分別有影像層、高程層和模型矢量層等。不同圖層對應(yīng)不同的數(shù)據(jù)類型。這樣的方式更易于不同分辨率的影像、高程以及模型數(shù)據(jù)的疊加。

      2 LOD與數(shù)據(jù)分頁、動態(tài)調(diào)度

      2.1 LOD

      LOD(level of detail)是指根據(jù)物體模型的結(jié)點在顯示環(huán)境中所處的位置和重要度,決定物體渲染的資源分配,降低非重要物體的面數(shù)和細(xì)節(jié)度,從而獲得高效率的渲染運算[3]。在OSG的場景結(jié)點組織結(jié)構(gòu)中,專門提供了場景結(jié)點osg::LOD來表達(dá)不同的細(xì)節(jié)層次模型。其中,osg::LOD結(jié)點作為父結(jié)點,每個子結(jié)點作為一個細(xì)節(jié)層次,設(shè)置不同的視域,在不同的視域下顯示相應(yīng)的子結(jié)點。

      2.2 數(shù)據(jù)分頁與動態(tài)調(diào)度

      在城市三維場景中可以采用數(shù)據(jù)分頁的方式進(jìn)行動態(tài)調(diào)度[4]。這里“分頁”的意思是隨著視口范圍的變化,場景只加載和渲染當(dāng)前視口范圍內(nèi)數(shù)據(jù),并將離開視口范圍內(nèi)的數(shù)據(jù)清除出內(nèi)存(可以設(shè)定不同的數(shù)據(jù)卸載策略),不再渲染。保證內(nèi)存中只有有限的數(shù)據(jù)量,場景的每一幀也只有有限的數(shù)據(jù)被送到圖形渲染管道,從而提高渲染性能。OSG源代碼中提供PagedLOD來進(jìn)行模型的動態(tài)調(diào)度。在不同的視域下,PagedLOD動態(tài)讀取不同細(xì)節(jié)層次的結(jié)點模型,實現(xiàn)了分頁LOD顯示。OSG內(nèi)部采用osgDB::DatabasePager類來管理場景結(jié)點的動態(tài)調(diào)度,場景循環(huán)每一幀的時候,會將一段時間內(nèi)不在當(dāng)前視圖范圍內(nèi)的場景子樹卸載掉,并加載新進(jìn)入到當(dāng)前視圖范圍的新場景子樹。OSG采用了多線程的方式來完成上述工作。

      3 基于OSGEarth三維場景構(gòu)建方法

      3.1 海量三維地形組織與調(diào)度

      3.1.1 地形數(shù)據(jù)組織方式

      OSGEarth采用動態(tài)四叉樹LOD方式進(jìn)行地形數(shù)據(jù)的組織,地形數(shù)據(jù)被實時地劃分為不同LOD層次瓦片序列,基于視點進(jìn)行動態(tài)、分頁的調(diào)度和渲染。整個地形場景是一棵瓦片化的四叉樹(如圖1所示),四叉樹低層次(低精度)的影像是從高層次(高精度)的影像上實時重采樣獲取的,這種四叉樹的組織方式,理論上可以支持無限的數(shù)據(jù)量負(fù)載。

      圖1 基于四叉樹LOD地形設(shè)計

      3.1.2 數(shù)據(jù)的瓦片切割

      OSGEarth采用GDAL進(jìn)行影像數(shù)據(jù)的處理,當(dāng)影像數(shù)據(jù)達(dá)到GB級甚至TB級以上時,影像的實時處理(讀寫、坐標(biāo)變換、瓦片化等)就會變得異常緩慢,雖然可采用預(yù)設(shè)金字塔等方式來加快影像的處理,但仍不能滿足地形實時渲染的需求。為此,在進(jìn)行地形三維場景構(gòu)建時需要對影像和DEM數(shù)據(jù)進(jìn)行預(yù)先瓦片分割處理[6],瓦片切割的規(guī)范可以采用TMS、TileCache等。

      TMS即瓦片地圖服務(wù)(tile map server),是OSGeo(開源空間信息基金會)發(fā)布的一種地圖瓦片規(guī)范。它將影像按照瓦片切割的規(guī)則,按不同分辨率切分成一系列的地圖瓦片,以增強(qiáng)其訪問速度。圖2為TMS瓦片的切割方式。

      圖2 TMS瓦片的切割方式

      本文采用圖像瓦片切割軟件MapTiler對影像和DEM進(jìn)行TMS切割,切割的瓦片尺寸直接影響到地形動態(tài)創(chuàng)建的效率。一般影像瓦片大小設(shè)置為256×256,DEM瓦片大小設(shè)置為32×32。分割好的瓦片數(shù)據(jù)可以在本地或者基于Web的方式發(fā)布,供OSGEarth調(diào)用。如圖3所示,采用TMS瓦片切割方式,將切割后的TMS影像瓦片和DEM瓦片渲染為三維場景效果。

      圖3 三維地形

      3.2 海量地物的組織與調(diào)度

      地物建筑物模型的三維表達(dá)是城市三維可視化的一個重要組成部分,面對著海量的建筑物模型,需要合適的組織與調(diào)度才能實現(xiàn)流暢的渲染。

      基于“瓦片分割”的思想,本文將海量的地物建筑物數(shù)據(jù)進(jìn)行瓦片分割,按照矩形區(qū)域?qū)⒔ㄖ锬P蛣澐譃橐粋€個的矩形瓦片結(jié)點,并設(shè)置多個LOD層級,不同LOD層次對應(yīng)的瓦片結(jié)點的尺寸不同,上一LOD層次的瓦片結(jié)點尺寸為下一級的1倍。對應(yīng)的地物建筑物模型的細(xì)節(jié)層次也不同,瓦片結(jié)點尺寸越大,對應(yīng)的模型細(xì)節(jié)層次就越低。每一個瓦片結(jié)點對應(yīng)著一塊矩形區(qū)域,包含位于這個矩形區(qū)域的所有建筑物模型。不同層級的瓦片結(jié)點對應(yīng)著不同細(xì)節(jié)層次的建筑物模型,金字塔的頂端是最簡化的建筑物模型,金字塔底端對應(yīng)最精細(xì)的建筑物模型。

      圖4 地物瓦片劃分

      具體的算法步驟如下:

      1) 確定數(shù)據(jù)區(qū)域的矩形坐標(biāo)范圍,作為第1個細(xì)節(jié)層級的瓦片結(jié)點,讀取該LOD層次下的所有建筑物模型,設(shè)定該瓦片結(jié)點的視域范圍,如0~10 000 m。

      2)上一瓦片結(jié)點被細(xì)分成4個新的瓦片結(jié)點,如圖4左圖所示,分別確定4個瓦片結(jié)點的坐標(biāo)范圍,根據(jù)每個瓦片結(jié)點的坐標(biāo)范圍,讀取該LOD層次下的所有建筑物模型,并設(shè)定每個瓦片結(jié)點的視域,如0~8 000 m。

      3) 再次遞歸將上一級的4個瓦片結(jié)點分別細(xì)分成4個新的瓦片結(jié)點(共16個瓦片結(jié)點),如圖4右圖所示,重復(fù)上述操作,直到四叉樹劃分完畢。

      4) 將生成的四叉樹模型保存,程序結(jié)束。

      3.3 地形與地物融合

      在實際的城市三維可視化建設(shè)中,地物建筑物建模和地形建模一般是分開進(jìn)行的。地物建筑物的建模一般是根據(jù)底面精確的地理坐標(biāo)和模型的高度采用建模軟件或其他自動化建模方法完成[7],在建模的過程中沒有考慮地形的影響,也就是說模型底面是不帶高程的。而地形建模,無論是采用tin還是grid的方式,都只是對真實地形的一個近似模擬,在構(gòu)建地形的過程中一般也沒有考慮地表地物的影響。這樣,當(dāng)?shù)匦魏偷匚镞M(jìn)行匹配融合的時候就會造成地物建筑物模型陷入地面以下或者懸浮到空中。這就需要進(jìn)行地物與地形融合,具體流程如圖5所示。

      為了實現(xiàn)地物與地形的融合,需要獲取地物中心點XY坐標(biāo)下的地形高程Z值,然后根據(jù)Z值將地物抬高到地形表面。地物模型的中心點所處的高程Z值的獲取方法是射線求交[8],這種方法在三維場景虛擬現(xiàn)實中有大量的應(yīng)用,如碰撞檢測等[9],其原理如圖6所示。

      圖6 射線求交

      以地心A點(Flat場景下為地物中心正下方地下6 000 km一點)為起始點,連接地物建筑物中心點B,形成射線,與地形相交于C點,這個C點即為地物地面中心點的實際位置。通過坐標(biāo)變換矩陣,將地物的位置偏移抬高到C點,完成地物與地形的融合。

      4 應(yīng)用實例

      結(jié)合本文研究及泰州市相關(guān)數(shù)據(jù),集成OSGEarth與MFC,完成泰州市城市三維場景相關(guān)建設(shè),實現(xiàn)導(dǎo)航、鷹眼、距離測量、路徑漫游、汽車漫游、地球Globle漫游等三維場景漫游功能,場景光照、場景霧效、天空背景、場景顏色等場景管理功能及“布告板”技術(shù)下的文字地名標(biāo)注功能(如圖7所示)。該系統(tǒng)中一共加載了20 000多個3DS格式的城市建筑物模型、地形及影像數(shù)據(jù),在配置NVIDIA GT540M顯卡的機(jī)器下測試,平均幀速在40以上,而一般幀速達(dá)到15以上就可以流暢地渲染,取得了良好的渲染性能。

      圖7 泰州市城市三維場景

      5 結(jié) 語

      本文研究OSGEarth中三維地形與地物的組織與調(diào)度、地形與地物融合問題,并以泰州市為例,構(gòu)建了基于OSGEarth的城市三維場景,實現(xiàn)了大規(guī)模地形、地物的實時漫游顯示, 在此基礎(chǔ)上進(jìn)行空間數(shù)據(jù)的分析與查詢,便可建立真正的三維城市地理信息系統(tǒng), 如與ArcGIS Server相結(jié)合,構(gòu)建二三維一體化的GIS系統(tǒng),為“數(shù)字城市”和“數(shù)字地球”空間信息平臺的搭建提供基礎(chǔ)框架。

      [1]朱慶,李德仁,龔健雅,等.數(shù)碼城市GIS的設(shè)計與實現(xiàn)[J].武漢大學(xué)學(xué)報:信息科學(xué)版,2001,26(1):8-11,17

      [2]王銳,錢學(xué)雷.OpenSceneGraph 三維渲染引擎設(shè)計與實現(xiàn)[M].北京:清華大學(xué)出版社,2009

      [3]趙敬紅. 基于OpenSceneGraph的大地形可視化方法研究[D].長沙:中南大學(xué),2009

      [3]武玉國,杜瑩.大規(guī)模地形TIN模型的LOD算法設(shè)計與實現(xiàn)[J].系統(tǒng)仿真學(xué)報,2005,17(3) :665-669

      [4]翟巍. 三維GIS中大規(guī)模場景數(shù)據(jù)獲取、組織及調(diào)度方法的研究和實現(xiàn)[D]. 大連:大連理工大學(xué),2003

      [5]張昊.基于OSG的交通場景三維實時仿真平臺研究與實現(xiàn)[D].長沙:中南大學(xué),2010

      [6]伏寶光, 嚴(yán)紅平.OpenSceneGraph的大地形可視化方法研究[J].軟件導(dǎo)刊, 2010(3):176-178

      [7]許捍衛(wèi). 基于Sketchup的城市三維建模技術(shù)[J].測繪科學(xué),2011(1):213-214,189

      [8]張輝.基于地理坐標(biāo)框架下的地物與地形匹配解決方案研究[J].測繪科學(xué),2007(3):90-92,137

      [9]萬定生.基于OSG的水利工程三維可視化系統(tǒng)研究與應(yīng)用[J].計算機(jī)與數(shù)字工程,2009(4):135-137

      猜你喜歡
      瓦片結(jié)點建筑物
      鄰近既有建筑物全套管回轉(zhuǎn)鉆機(jī)拔樁技術(shù)
      一種基于主題時空價值的服務(wù)器端瓦片緩存算法
      描寫建筑物的詞語
      慣性
      揚子江(2019年1期)2019-03-08 02:52:34
      Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點個數(shù)估計
      火柴游戲
      建筑物的加固改造與鑒定評估
      河南科技(2014年24期)2014-02-27 14:19:47
      基于Raspberry PI為結(jié)點的天氣云測量網(wǎng)絡(luò)實現(xiàn)
      基于NoSQL數(shù)據(jù)庫的瓦片地圖服務(wù)
      基于DHT全分布式P2P-SIP網(wǎng)絡(luò)電話穩(wěn)定性研究與設(shè)計
      左贡县| 阜南县| 白城市| 莲花县| 临沧市| 大安市| 绥中县| 新闻| 高青县| 东明县| 惠水县| 新晃| 雅江县| 大名县| 绥中县| 英吉沙县| 鄂尔多斯市| 登封市| 靖西县| 甘谷县| 九寨沟县| 扶风县| 沙坪坝区| 冷水江市| 苍梧县| 芦山县| 津市市| 龙川县| 炉霍县| 保德县| 武威市| 陆丰市| 新邵县| 乐安县| 乌拉特前旗| 措勤县| 灵宝市| 衢州市| 黑水县| 肥乡县| 鄄城县|