亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ArcGIS Engine的三維場景快速動態(tài)建模方法

        2015-03-29 06:33:58毛新光
        測繪通報 2015年6期
        關(guān)鍵詞:模型庫圖層頂點

        吳 鋒,毛新光

        (杭州電子科技大學(xué)信息與控制研究所,浙江 杭州310018)

        一、引 言

        三維地理信息系統(tǒng)(GIS)的應(yīng)用領(lǐng)域十分廣泛,如城市交通調(diào)度、地質(zhì)災(zāi)害定位、地下管線、廠礦生產(chǎn)過程模擬等,相比二維GIS不僅能再現(xiàn)直觀的、真實的事物間縱橫交錯、上下起伏的空間關(guān)系,具有較強(qiáng)的立體感和逼真感,而且能對構(gòu)建中的三維場景進(jìn)行三維空間的分析和操作等功能??梢哉f三維GIS的應(yīng)用開發(fā)已成為當(dāng)前GIS研究中的重點[1-3]。

        縱觀國內(nèi)外三維GIS的研發(fā)現(xiàn)狀,有3種途徑實現(xiàn)三維GIS:一是基于底層庫函數(shù)開發(fā)實現(xiàn),如OpenGL和VC++的開發(fā)方式[4];二是在三維可視化系統(tǒng)上以插件形式加載數(shù)據(jù)顯示和查詢功能模塊,如Vega工具軟件[5];三是在現(xiàn)有GIS平臺提供的API上進(jìn)行二次開發(fā),如ArcGIS的ArcObjects組件[6]。底層庫函數(shù)開發(fā)方式效率較高,但代碼編程量較大。三維可視化系統(tǒng)在模型制作方面具有較好的逼真性,但在GIS方面的功能較弱?,F(xiàn)有GIS平臺軟件中,三維可視化方面的功能較為欠缺,但隨著三維空間分析功能的日趨完善,在現(xiàn)有GIS軟件中進(jìn)行二次開發(fā)將是三維GIS系統(tǒng)研究、開發(fā)的主流方式。

        要實現(xiàn)三維GIS,必須解決三維場景如何建模和應(yīng)用支撐平臺的模型數(shù)據(jù)管理。從研究現(xiàn)狀來看,目前三維場景的快速動態(tài)建模主要有統(tǒng)一規(guī)范法、標(biāo)準(zhǔn)模型符號法、非仿真功能寫景法、二維GIS法和CAD方法等[7-11]。通過比較分析,這些方法或建模工作量大、效率低,或要求編寫大量的程序代碼,或建立的三維場景缺乏較好的空間查詢和分析功能。

        本文提出一種基于ArcGIS Engine組件技術(shù)和數(shù)據(jù)庫技術(shù)的快速動態(tài)建模方法,即預(yù)先建立對應(yīng)的三維場景模型庫并保存在ArcGIS Engine組件的數(shù)據(jù)庫中,通過地理描述和數(shù)據(jù)管理獲取模型構(gòu)件、組裝構(gòu)件而成需要的三維場景,從而大大降低三維場景建模的工作量;另外,將地理描述信息與場景精確模型結(jié)合起來,大大提高了場景模型的真實感,而且數(shù)據(jù)編輯、空間分析能力也得到了體現(xiàn)。

        二、三維對象模型庫的建立

        1.CAD模型與GIS的集成方法

        目前三維場景中的實體,大部分都是通過外部三維制作軟件制作好后以點、線、面的形式導(dǎo)入到三維場景中來,如3ds Max制作的三維實體。這種數(shù)據(jù)集成要求CAD模型與GIS二者之間的數(shù)據(jù)能夠相互轉(zhuǎn)換或在GIS中可以直接讀寫CAD文件。

        目前常見的數(shù)據(jù)集成有文件轉(zhuǎn)換、數(shù)據(jù)庫共享和直接訪問3種方式。文件轉(zhuǎn)換方式是指數(shù)據(jù)文件格式從一種到另一種的轉(zhuǎn)換,如ArcGISEngine的控件SceneControl支持SHP文件,3ds Max支持*.dwg文件,*.dwg和*.shp可以通過*.dxf(CAD格式)進(jìn)行轉(zhuǎn)換。數(shù)據(jù)庫共享方式通過在系統(tǒng)中嵌入應(yīng)用程序API接口訪問其他系統(tǒng)的數(shù)據(jù),如ArcSDE就具有識別CAD文件的擴(kuò)展程序,允許用戶在數(shù)據(jù)庫管理系統(tǒng)中存儲、提取CAD文件要素或GIS特征,這是一種新型方式。直接訪問方式則是直接讀入另一系統(tǒng)的數(shù)據(jù)而無須經(jīng)過中介,如ArcGIS直接讀取3ds Max制作的*.3ds文件來構(gòu)建三維場景,從而實現(xiàn)CAD與GIS的數(shù)據(jù)集成。直接訪問方式也是本文采用的主要集成方式。

        2.三維對象模型庫的組成

        三維場景中的實體結(jié)構(gòu)可以分為單一模型和組合模型。單一模型就是該模型結(jié)構(gòu)復(fù)雜,不能拆分為單一模型的組合,在向三維場景中添加模型時,作為單一的模型;組合模型就是場景中的三維模型可以拆分為單一的組合,從模型庫中調(diào)用該單一模型,組成該組合模型。

        依據(jù)三維場景中實體的分類表達(dá)規(guī)則和組成要素的不同,三維對象模型數(shù)據(jù)庫可分為以下幾類:建筑物模型庫、建筑物紋理庫、地面覆蓋模型庫、獨立對象模型庫。建筑物模型庫主要存儲以3ds Max軟件導(dǎo)出的*.3ds文件;建筑物紋理庫主要存儲建筑物墻面紋理、窗戶紋理等;地面覆蓋模型庫主要存儲地面江河、道路、植被的紋理庫;獨立對象模型庫主要存儲一些地面上設(shè)施如樹木、路燈、交通站臺、電話亭等標(biāo)志性建筑物。三維對象模型庫的組成結(jié)構(gòu)如圖1所示。

        圖1 三維對象模型庫的組成結(jié)構(gòu)

        各個對象模型庫的建立方法如下:

        1)典型建筑物模型庫和獨立對象模型庫:該模型庫主要存儲一些不能分解的結(jié)構(gòu)模型,對于結(jié)構(gòu)復(fù)雜的典型三維建筑和獨立對象,反復(fù)調(diào)用模型庫中的一些簡單實體,并通過組合方法建立起三維場景中的實體,從而達(dá)到簡捷、快速建模的目的。

        2)紋理庫的設(shè)計:對于一些結(jié)構(gòu)簡單、規(guī)則幾何體的三維實體如長方體、正方體等,利用多片來建立三維場景。但利用多片建立的只是三維場景幾何模型,還需要進(jìn)一步對模型的表面進(jìn)行貼圖、渲染。針對這種情況,需要建立建筑物紋理庫。該庫以大量圖片為基礎(chǔ),并配合圖片處理軟件如PhotoShop工具對圖片進(jìn)行預(yù)處理。

        3)地面覆蓋模型庫的設(shè)計:三維場景的地面覆蓋物模型庫主要存儲地表中的綠地、地形、水系類別的地面覆蓋物紋理。入庫的紋理數(shù)據(jù)文件,必須存在數(shù)據(jù)庫的表中,當(dāng)編輯或更新地面覆蓋物紋理時,直接從數(shù)據(jù)庫的數(shù)據(jù)表中調(diào)用相應(yīng)的數(shù)據(jù)紋理。

        三、基于ArcGISEngine的三維場景建模方法

        在完成建筑物數(shù)據(jù)庫、建筑物紋理庫、地面覆蓋紋理庫、獨立對象數(shù)據(jù)庫和數(shù)據(jù)采集的基礎(chǔ)上,結(jié)合.NET的編程環(huán)境與ArcGIS Engine中的Scene-Control、ToCControl、ToolbarControl、MapControl等控件進(jìn)行二次開發(fā),實現(xiàn)三維數(shù)據(jù)模型的快速建模。

        1.快速建模流程

        在三維場景構(gòu)建時,針對場景三維實體模型的不同,需要采取不同的模型方法。針對典型的模型,可直接調(diào)用典型模型數(shù)據(jù)庫中的典型模型;用組合模型構(gòu)建復(fù)雜三維建筑模型時,調(diào)用建筑模型數(shù)據(jù)庫中*.3ds中的數(shù)據(jù)模型;對于簡單的模型,可以Multipatch來構(gòu)建,調(diào)用紋理數(shù)據(jù)庫中的紋理圖片,進(jìn)行紋理貼圖,可以建模逼真的三維場景中的實體。根據(jù)三維場景中三維實體的不同情況,調(diào)用不同模型庫,起到快速建模三維場景的效果。三維場景快速建模流程如圖2所示。

        圖2 三維場景快速建模流程

        2.由二維矢量數(shù)據(jù)自動生成三維模型

        在ArcGIS Engine中可以通過二維的點、線、面二維要素和坐標(biāo)Z經(jīng)過拉伸來建模三維場景中的三維模型。通過對Z坐標(biāo)或要素屬性字段值進(jìn)行拉伸,點要素構(gòu)成三維場景中垂直的線,線要素構(gòu)成面,面要素構(gòu)成塊。而Multipatch對象,則通過該實體頂點在三維場景中X、Y、Z坐標(biāo)值來構(gòu)建三維實體各個面,再經(jīng)過貼圖來構(gòu)建三維場景中的實體。以下是二維矢量數(shù)據(jù)如何生成三維模型的算法:

        1)獲取三維場景要拉伸的圖層。

        2)添加紋理,即定義地理要素圖層對象并獲取圖層對象、創(chuàng)建要渲染的符號、創(chuàng)建要填充的紋理符號、從path變量中填充要填充紋理符號的紋理、設(shè)置要渲染的psimplerenderer的紋理符號。

        3)對要渲染的地理要素圖層對象pGeoFeature-Layer,設(shè)置為psimplerenderer并進(jìn)行渲染。

        4)設(shè)置矢量圖層基準(zhǔn)高,得到頂點空間坐標(biāo)

        式中,R為圓弧半徑;α為圓弧上各頂點與原點連線到x軸的角度;ProLayer3D.Zfactor為使矢量數(shù)據(jù)拉伸到某一固定值的拉伸因子。

        5)應(yīng)用三維屬性到ppLayer矢量圖層,使圖層具有三維顯示效果。

        3.由三維制作軟件生成模型的導(dǎo)入方法

        (1)典型單一模型和對象模型的重建方法

        針對三維場景中的獨立對象實體、典型標(biāo)志性建筑、結(jié)構(gòu)復(fù)雜而風(fēng)格獨特的建筑物,通過三維制作軟件3ds Max制作獨立的和典型的三維模型,包括相關(guān)紋理信息,一塊導(dǎo)出為*.3ds文件,然后入庫。在建立三維場景時,可以反復(fù)從建筑數(shù)據(jù)庫中調(diào)用該模型,加載到SceneControl控件中,從而達(dá)到快速建模的目的。具體算法的基本流程如下:

        1)創(chuàng)建一個新圖層,然后把新圖層添加到三維場景的SceneControl控件對象中。

        2)設(shè)立一個點的新元素,該點就是三維模型要加載的位置。

        3)利用IMarker3DSymbol創(chuàng)建一個接口對象,然后利用該對象方法CreateFromFile讀取數(shù)據(jù)庫中建筑物和獨立對象的模型對象。

        4)創(chuàng)建一個SceneControl控件容器對象,然后將該對象加載到在圖層對應(yīng)的容器中,起到動態(tài)加載三維場景的目的。

        (2)利用模型庫組合模型的建模方法

        在三維場景構(gòu)建中,非典型的建筑物具有相似的結(jié)構(gòu)和紋理。針對這種情況,先建立一個可以組成這種三維場景中建筑物的基本實體單位,并將這樣的單位實體入庫。在建模這樣的三維實體時,可直接調(diào)用模型庫中的單位實體模型。通過組合建模方法,達(dá)到快速構(gòu)建三維場景的目的。

        具體算法的基本流程如下:

        1)創(chuàng)建一個新圖層,然后把新圖層添加到三維場景的SceneControl控件對象中。

        2)設(shè)定一個點的新元素,該點就是三維模型要加載的位置。

        3)確定底層元素顯示的Symbol和Geometry:

        IPoint pt=new PointClass();

        double longtitude=double.Parse(textBox1.Text);

        double latitude=double.Parse(textBox2.Text);

        pt.PutCoords(longtitude,latitude);

        4)再分別確定中間層、頂層元素顯示的Symbol和Geometry。

        4.多片三維模型在三維場景的生成

        對于結(jié)構(gòu)簡單的、規(guī)則的、逼真度要求不是很高的三維場景中的實體,可以通過對規(guī)則三維模型如長方體、正方體等進(jìn)行貼圖來表示現(xiàn)實世界中的三維實體。通過多片Multipatch制作規(guī)則實體的大致模型,模型的位置通過輸入規(guī)則模型在平面的投影坐標(biāo)和實體模型的長、寬、高3個參數(shù)來確定三維實體模型各個頂點的坐標(biāo),然后通過對三維實體模型的前面、后面、左面、右面、頂部進(jìn)行紋理貼圖來構(gòu)造三維模型。

        用Multipatch構(gòu)建三維實體模型的基本算法如下:

        1)指定紋理對象。

        2)創(chuàng)建材質(zhì)列表。

        3)創(chuàng)建Multipatch第一面的各個頂點及其紋理頂點:

        IPoint pPoint1=new PointClass();

        pPoint1.X=x;

        pPoint1.Y=y;

        pPoint1.Z=0;

        4)繼續(xù)創(chuàng)建Multipatch其余面的各個頂點及其紋理頂點。

        5)給各個頂點的坐標(biāo)(X,Y,Z)賦值。

        6)創(chuàng)建其余的紋理坐標(biāo)頂點并賦值。

        7)創(chuàng)建其余面的頂點及其紋理頂點并賦值。

        8)給各個面的頂點指定頂點坐標(biāo)和需要紋理貼圖的各個頂點坐標(biāo):

        IGeneralMultiPatchCreator PCreator=new GeneralMulti-PatchCreatorClass();

        PCreator.Init(30,6,false,false,false,24,materialList);

        PCreator.SetPatchType(0,esriPatchType.esriPatchTypeRing);

        PCreator.SetPatchPointIndex(0,0);

        PCreator.SetMaterialIndex(0,0);

        PCreator.SetPatchTexturePointIndex(0,0);

        PCreator.SetPoint(0,pPoint1);

        利用規(guī)則幾何體如正方體、立方體,對三維幾何體的各個面進(jìn)行貼圖,利用Multipatch向三維場景添加幾何體。

        四、應(yīng)用實例

        隨著石化能源產(chǎn)業(yè)的高速增長、石化產(chǎn)品運輸量的不斷增高,石化產(chǎn)品交通運輸事故也日益增多。針對運輸安全問題,筆者以ArcGIS Engine為工具,結(jié)合GIS、GPS、3G等技術(shù),研發(fā)了基于GIS/GPS/3G的危險品運輸車輛監(jiān)控三維GIS系統(tǒng)。該系統(tǒng)提供了一個三維可視化平臺,幫助用戶從不同的角度來監(jiān)控三維場景中的地物,并實時獲取車輛的軌跡。

        對危險品車輛的監(jiān)控即實時跟蹤車輛位置。GPS發(fā)送的經(jīng)緯度存入數(shù)據(jù)庫,系統(tǒng)需要從數(shù)據(jù)庫實時解析GPS數(shù)據(jù)并顯示在三維虛擬場景中,如圖3所示的小圓點。根據(jù)圓點軌跡即可實時監(jiān)控危險品車輛在三維場景中的行駛狀況。

        圖3 實時顯示車輛軌跡的三維場景效果

        在車輛監(jiān)控三維GIS系統(tǒng)的開發(fā)中充分運用了快速動態(tài)建模方法:

        1)地形建模:地形表面主要由矢量數(shù)據(jù)生成的不規(guī)則三角網(wǎng)數(shù)據(jù)模型生成,為其他地物提供一個模擬表面。由于三維車輛監(jiān)控場景的地形高程為0,地形場景模擬可以用衛(wèi)星掃描的圖片進(jìn)行柵格配準(zhǔn)。

        2)復(fù)雜地物建模:對于典型而復(fù)雜的地表人工實體和獨立對象,采用建模軟件3ds Max來構(gòu)建三維實體模型,然后轉(zhuǎn)換為ArcGISEngine支持的格式來建模三維模型。

        3)規(guī)則幾何體建模:通過多片構(gòu)建規(guī)則三維實體模型,然后對三維外表進(jìn)行貼圖,逼真構(gòu)建三維場景中的對象實體。

        五、結(jié)束語

        本文提出了一種基于ArcGIS Engine的三維場景快速動態(tài)建模方法,該方法根據(jù)場景的地物分為點、線、面3類不同的特點,提出了聯(lián)合拉伸、模型庫、多片Multipatch等多種快速建模方法,從而實現(xiàn)了三維場景的快速生成和渲染。該方法的關(guān)鍵在于GIS組件技術(shù)的利用和基于數(shù)據(jù)庫技術(shù)的對象、紋理等模型庫的建立,它是快速建模三維場景的基礎(chǔ)。為大規(guī)模開發(fā)三維可視化系統(tǒng)提供了一種新的思路。該方法成功應(yīng)用于危險品運輸車輛監(jiān)控三維GIS的快速開發(fā),有效地提高了開發(fā)效率,降低了勞動強(qiáng)度和開發(fā)成本。

        本文主要側(cè)重基于ArcGIS組件的三維建模和數(shù)據(jù)顯示研究,下一步的工作是基于ArcGIS的空間分析工作。隨著現(xiàn)代空間數(shù)據(jù)定位與分析的需要,三維快速建模技術(shù)的應(yīng)用會越來越廣泛,相信基于GIS組件技術(shù)和數(shù)據(jù)庫技術(shù)的三維實體速建模方法會為其他行業(yè)三維GIS應(yīng)用提供一定的借鑒和參考。

        [1] 王金宏,朱軍,尹靈芝,等.基于線性參照系統(tǒng)的虛擬高速鐵路場景建模方法簡述[J].地球信息科學(xué)學(xué)報,2014,16(1):23-30.

        [2] TANG A Y,ADAMST M,USERY E L.A Spatial Data Model Design for Feature-based Geographical Information Systems[J].IJGIS,1996,10(5):643-659.

        [3] ROYAN J.Network-based Visualization of 3DLandscapes and City Models[J].IEEE Computer Graphics and Applications,2007,27(6):70-79.

        [4] SUN W T,LI Q,QIAN B.Track Simulation of Flexible Roll Forming Based on VC++and OpenGL[J].Advanced Materials Research,2012,457-458:304-307.

        [5] ZHOU X N.3D Campus Simulation Based on Vega and Creator[C]∥2010 International Conference on Computer and Communication Technologies in Agriculture Engineering,2010,3(12-13):512-514.

        [6] 張文元,付仲良.基于ArcGISEngine的綜合管線三維可視化研究[J].測繪通報,2008(8):28-31.

        [7] TIAN X.Quick 3D Modeling of Machining Environment by Means of On-machine Stereo Vision with Digital Decomposition[J].CIRP Annals-Manufacturing Technology,2007,56(1):411-414.

        [8] 何垂杰,鄧克裹,袁懷月.基于ArcGIS Engine的工業(yè)廠區(qū)快速三維建模與可視化[C]∥現(xiàn)代空間定位技術(shù)應(yīng)用研討交流會論文集.廣州:中國測繪學(xué)會,2007:264-274.

        [9] 高睿,劉修國,熊威.城市三維景觀可視化研究與應(yīng)用[J].計算機(jī)應(yīng)用研究,2005,22(3):160-164.

        [10] 劉玉春.應(yīng)急指揮信息系統(tǒng)中三維模型快速構(gòu)建方法研究[J].測繪科學(xué),2008,33(S1):117-119.

        [11] 鄧非,張祖勛,張劍清.基于序列影像的城市三維建模[J].計算機(jī)工程,2007,33(8):208-210.

        猜你喜歡
        模型庫圖層頂點
        過非等腰銳角三角形頂點和垂心的圓的性質(zhì)及應(yīng)用(下)
        關(guān)于頂點染色的一個猜想
        巧用混合圖層 制作抽象動感森林
        圖層法在地理區(qū)域圖讀圖中的應(yīng)用
        基于模型庫系統(tǒng)的金融體系流動性風(fēng)險預(yù)警機(jī)制研究
        基于模型庫的現(xiàn)代成本會計計量系統(tǒng)研究
        會計之友(2014年28期)2014-10-13 15:54:36
        淺析“遞層優(yōu)化法”在礦井制圖中的應(yīng)用
        河南科技(2014年6期)2014-04-04 08:00:42
        GIS地形分析模型庫管理系統(tǒng)的設(shè)計與實現(xiàn)
        測繪工程(2013年6期)2013-12-06 08:59:14
        Photoshop圖層的解讀
        數(shù)學(xué)問答
        国产精品三区四区亚洲av| 国产精品原创av片国产日韩| 区一区一日本高清视频在线观看| 国产精品一区二区三区四区亚洲| 国产精品99精品久久免费| 久久棈精品久久久久久噜噜| 97精品国产高清自在线看超| 久久综合亚洲鲁鲁五月天| 国产免码va在线观看免费| 国产剧情麻豆女教师在线观看| 亚洲天堂av免费在线看| 白色白在线观看免费2| 欧美国产亚洲日韩在线二区| 麻豆国产人妻欲求不满谁演的| 2020亚洲国产| 男人的精品天堂一区二区在线观看 | 中文字幕日本韩国精品免费观看 | 高清亚洲精品一区二区三区| 亚洲免费国产中文字幕久久久| 99久久精品国产一区二区三区| 久久综合网天天 | 大岛优香中文av在线字幕| 欧美激情视频一区二区三区免费| 亚洲av之男人的天堂网站| 亚洲国产一区二区三区在线视频| 偷拍视频这里只有精品| 强开少妇嫩苞又嫩又紧九色| 精品一区二区三区无码视频| 日本精品久久性大片日本| 久久99天堂av亚洲av| 曰韩无码二三区中文字幕| 日韩欧美在线播放视频| 亚洲综合一区二区三区久久| 看久久久久久a级毛片| 人人妻人人添人人爽日韩欧美| 少妇爽到爆视频网站免费| 精品久久av一区二区| 射死你天天日| 久久丁香花综合狼人| 加勒比精品视频在线播放| 国产激情久久久久影院老熟女免费 |