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

        ?

        Unity3D支持的DEM地形三維可視化表達(dá)技術(shù)實(shí)現(xiàn)

        2018-02-01 12:53:53陳淑姝甘淑
        軟件導(dǎo)刊 2018年1期
        關(guān)鍵詞:高程可視化模型

        陳淑姝+甘淑

        摘要:近年來,三維地形可視化、三維空間分析已經(jīng)成為三維地理信息系統(tǒng)領(lǐng)域的前沿問題。為改正傳統(tǒng)GIS中面三維將高程坐標(biāo)僅僅作為附屬坐標(biāo)而導(dǎo)致無法構(gòu)建地形真三維模型,同時也無法提供地下信息的缺點(diǎn),基于Unity3D游戲引擎和ArcGIS平臺,采用任意地形灰度圖為數(shù)據(jù)源,將灰度圖轉(zhuǎn)化ASCII柵格文件讀入Unity3D中,最終利用Gameobject中Cube元素,實(shí)現(xiàn)了DEM中規(guī)則格網(wǎng)模型的真三維展示,利用Gameobject的Mesh元素,采用順時針?biāo)饕龜?shù)組實(shí)現(xiàn)了DEM中TIN的真三維展示,由于U3D引擎具有獨(dú)立的Y坐標(biāo)(在U3D中高程坐標(biāo)以Y軸表示)特性,使其能夠創(chuàng)建真正意義的真三維模型,同時可以在攝像頭上添加鏡頭旋轉(zhuǎn)腳本以實(shí)現(xiàn)模型的360度瀏覽。

        關(guān)鍵詞:地理信息系統(tǒng);三維;真三維;DEM;Unity3D

        DOIDOI:10.11907/rjdk.172439

        中圖分類號:TP317.4

        文獻(xiàn)標(biāo)識碼:A文章編號文章編號:1672-7800(2018)001-0208-04

        Abstract:In recent years, 3D terrain visualization and 3D spatial analysis have become the front problem of GIS. For solving the disadvantages in traditional GIS that elevation coordinates just as subsidiary coordinates. This causes the true 3D model of terrain can not be constructed and could not retrieve the information of underground. The DEM model is generated by Unity 3D and ArcGIS platform, turning random gray scale map into ASCII raster file then import it into Unity3D. The Grid of DEM is generated by the Cube of Gameobject and the mesh of Gameobject employs clockwise index array to create the TIN of DEM, due to Y coordinates in Unity 3D is independent (elevation coordinates are represent by the Y axis), the true 3D model can be constructed at the same time adds the camera rotation script to main camera can see the model 360 degree.

        Key Words:GIS; 3D; true 3D; DEM; Unity3D

        0引言

        隨著計算機(jī)技術(shù)、空間技術(shù)和現(xiàn)代信息基礎(chǔ)設(shè)施的發(fā)展,地理信息系統(tǒng)已拓展到測繪、土地、環(huán)境、交通等各個領(lǐng)域,發(fā)揮著日益重要的作用[1]。地形作為重要的自然景物,擁有數(shù)據(jù)結(jié)構(gòu)復(fù)雜、數(shù)據(jù)量龐大的特點(diǎn),地形的應(yīng)用在GIS中占有重要地位。隨著GIS應(yīng)用的不斷深入,作為第三維的高程信息顯得越來越重要[2]。一些二維GIS和圖象處理系統(tǒng)在處理高程信息時并未將高程變量作為單獨(dú)變量,而是將其作為附屬變量處理,這種做法雖然滿足了地表地形信息的表達(dá)要求但是造成了地下信息的缺失,因此它們在國際國內(nèi)也被俗稱為2.5維的系統(tǒng)[3]。出于嚴(yán)密性考慮可將此稱之為“地形面三維”或簡稱面三維。面三維的GIS實(shí)質(zhì)上是二維GIS系統(tǒng)[4]。在真三維中,一個空間物體是通過X、Y、Z三個坐標(biāo)軸加以定義的,Z值將不再是附屬,而是一個完全獨(dú)立的變量。真三維的優(yōu)點(diǎn)是具有連續(xù)的數(shù)據(jù)結(jié)構(gòu)和與之相應(yīng)的分析功能,由此帶來的好處是可以更直觀地展現(xiàn)模型并且從空間角度對其進(jìn)行相應(yīng)分析[5]。

        Unity3D作為一個近年來大熱的三維游戲引擎,具有兼容操作系統(tǒng)、跨平臺發(fā)布并部署、開發(fā)簡單易上手、人機(jī)交互功能強(qiáng)大、三維效果逼真、內(nèi)置網(wǎng)絡(luò)功能的特點(diǎn),被廣泛運(yùn)用于游戲開發(fā)和虛擬現(xiàn)實(shí)[6,7]。U3D本身自帶地形建模功能,可以通過畫筆或者導(dǎo)入高度圖的方式生成地形,本文將U3D運(yùn)用到系統(tǒng)仿真的同時把ArcGIS與Unity3D結(jié)合,以一種新的方式構(gòu)建相關(guān)真實(shí)地形,實(shí)現(xiàn)DEM的真三維顯示。

        1方案建立

        空間數(shù)據(jù)模型是對現(xiàn)實(shí)世界一種抽象、歸類及簡化的描述[8]。三維空間數(shù)據(jù)模型是研究三維空間幾何對象的數(shù)據(jù)組織、操作方法以及規(guī)則約束條件等內(nèi)容的集合[9]。三維模型的開發(fā)需要注意三方面問題:①明確要模擬的對象;②數(shù)據(jù)存儲與數(shù)據(jù)之間的邏輯關(guān)系;③模型顯示。本文以ASCII柵格文件為描述對象建立相關(guān)DEM模型,建立流程如圖1所示。

        2數(shù)據(jù)預(yù)處理

        將DEM數(shù)據(jù)(見圖2)加載到ArcGIS中,打開工具箱使用重采樣工具將其導(dǎo)出為100×100的DEM數(shù)據(jù),再使用工具箱中的數(shù)據(jù)轉(zhuǎn)換(柵格轉(zhuǎn)ASCII)將導(dǎo)出后的數(shù)據(jù)保存為txt格式,并命名為Grid.txt(見圖3)。

        3Grid模型生成

        生成Grid模型核心思想是利用StreamReader讀入文件,再用Split()函數(shù)將每個元素依次讀出,把每個象元值當(dāng)作高程,以100×100的規(guī)模利用Cube構(gòu)建出DEM(見圖4)。

        生成DEM的主要代碼為:

        list=ReadFile(Application.dataPath+"/Resources","Grid.txt");endprint

        for (int i=0; i

        {

        position=list[i].ToString().Split(new Char[]{' '});

        for (int j=0; j

        {

        cube=GameObject.CreatePrimitive(PrimitiveType.Cube);

        cube.transform.position=new Vector3(i, float.Parse(position[j])/20, j);

        cube.transform.localScale=new Vector3(1, float.Parse(position[j])/10,1);

        cube.GetComponent().material.color=getcolor(float.Parse(position[j]));

        }

        }

        為了使其更有層次感,設(shè)置getcolor函數(shù)返回不同高度立方體的顏色,代碼如下:

        private Color getcolor(float value)

        {

        if (value>0&&value<50)

        {return c1;}

        else if (value>50 && value<100)

        {

        return Color.blue;

        }

        else if (value>100 && value<150)

        {

        return Color.yellow;

        }

        else if (value>150 && value<200)

        {

        return Color.green;

        }

        else

        {

        return Color.white;

        }

        }

        4TIN生成

        TIN的建立思路是利用mesh生成TIN,依此遍歷ASCII文本的每個像元值,作為每個頂點(diǎn)的Y坐標(biāo),核心代碼為:

        list=ReadFile(Application.dataPath+"/Resources","Grid.txt");

        for (int i=0; i

        {

        position=list[i].ToString().Split(new char[]{' '});

        for (int j=0; j

        {

        ver[index]=new Vector3(i, float.Parse(position[j])/10, j);

        index++;

        }

        }

        確定了頂點(diǎn)以后,需要將頂點(diǎn)按照一定的次序排列進(jìn)組[10],索引數(shù)組存儲mesh頂點(diǎn)的索引值如圖5所示。

        每個矩形由2個三角形構(gòu)成,按順時針順序構(gòu)造三角形,核心代碼為:

        for (int c=0; c<99; c++)

        {

        for (int d=0; d<99; d++)

        {//三角形1

        tri[dex++]=c*100+d;

        tri[dex++]=(c+1)*100+d;

        tri[dex++]=(c+1)*100+d+1;

        //三角形2

        tri[dex++]=c*100+d;

        tri[dex++]=(c+1)*100+d+1;

        tri[dex++]=c*100+d+1;

        }

        }

        其中tri[]為索引數(shù)組,將tri的值賦給mesh.Triangles即可,之后添加一個Button,程序運(yùn)行時單擊Button即可看到TIN(見圖6)。

        DEM生成后,為了方便360度無死角觀察模型,還應(yīng)該添加一個鏡頭旋轉(zhuǎn)腳本[11],主要代碼為:

        void LateUpdate()

        {

        if (Input.GetAxis("Mouse ScrollWheel") !=0)

        {

        Distance-=Input.GetAxis("Mouse ScrollWheel")*mouseWheelSentive;

        }

        if (Input.GetMouseButton(0)

        {

        if (target)

        {

        AngleX+=Input.GetAxis("Mouse X")*xSpeed*0.02f;

        AngleY-=Input.GetAxis("Mouse Y")*ySpeed*0.02f;

        }

        }

        else

        {

        if (Input.GetKey(KeyCode.W))

        {

        AngleY-=0.5f;

        }

        else if (Input.GetKey(KeyCode.S))

        {

        AngleY+=0.5f;

        }

        if (Input.GetKey(KeyCode.D))

        {

        AngleX+=0.5f;

        }

        else if (Input.GetKey(KeyCode.A))

        {

        AngleX-=0.5f;

        }

        }

        Rotation=Quaternion.Euler(angleY, angleX, 0);

        Camera.transform.rotation=rotation;

        Position=rotation*new Vector3(0.0f,0.0f,-distance)+target.transform.position; Camera.transform.position=position;

        }

        腳本編寫完畢之后,將其掛在Main Camera之上便可以360度瀏覽模型,對Scene進(jìn)行發(fā)布,選擇相應(yīng)存儲位置,便可由任意用戶進(jìn)行瀏覽,如圖7和圖8所示。

        5結(jié)語

        地形構(gòu)建運(yùn)用十分廣泛,例如可以根據(jù)某一區(qū)域的歷史數(shù)據(jù)演變規(guī)律,結(jié)合GIS空間特性,進(jìn)行災(zāi)害模擬,為政府和有關(guān)機(jī)構(gòu)提供及時有效、準(zhǔn)確可靠的決策信息,使減災(zāi)、防災(zāi)、救災(zāi)等有更充分的科學(xué)依據(jù);同時地形構(gòu)建可用于軍事領(lǐng)域,如結(jié)合地形進(jìn)行可視域分析;地形構(gòu)建同樣也可應(yīng)用于游戲中?;赨nity平臺建立DEM將Unity3D和ArcGIS做了很好的結(jié)合,且將U3D引擎運(yùn)用到計算機(jī)仿真中,利用Cube實(shí)現(xiàn)了格網(wǎng)DEM的真三維展示,利用Mesh實(shí)現(xiàn)了TIN的真三維展示模型,筆者下一步將在地形模型基礎(chǔ)上進(jìn)一步研究流團(tuán)模型構(gòu)建算法,以此模擬泥石流運(yùn)動規(guī)律。

        參考文獻(xiàn):

        [1]黃應(yīng)全.淺談地理信息系統(tǒng)在測繪領(lǐng)域的擴(kuò)展應(yīng)用[J].企業(yè)技術(shù)開發(fā),2013,32(11):53-54.

        [2]師向東.基于場景圖的GIS三維可視化技術(shù)研究與實(shí)現(xiàn)[D].沈陽:東北大學(xué),2008.

        [3]房玉龍.可視化技術(shù)在地下管線信息系統(tǒng)中的應(yīng)用[D].南京:南京大學(xué),2005.

        [4]肖樂斌,鐘耳順,劉紀(jì)遠(yuǎn),等.三維GIS的基本問題探討[J].中國圖象圖形學(xué)報,2001,6(9):842-848.

        [5]姜小軼,孫運(yùn)生,王安.三維地理信息系統(tǒng)(3D-GIS)的發(fā)展現(xiàn)狀及趨勢[J].世界地質(zhì),1988,17(4):58-62.

        [6]馬龔麗,楊敏,支雄飛,等.基于Unity3D的三維海底地形建模[J].安徽電子信息職業(yè)技術(shù)學(xué)院學(xué)報,2013,12(69):24.

        [7]趙艷坤.基于Unity3D的欒川三維城市地理信息系統(tǒng)研究[D].鄭州:鄭州大學(xué),2016.

        [8]玉秀琴.VR-GIS技術(shù)在城市房產(chǎn)信息查詢系統(tǒng)中的應(yīng)用研究——以蘭州市七里河區(qū)西部歡樂園地區(qū)為例[D].蘭州:蘭州大學(xué),2005.

        [9]梁鵬飛.基于GPS/3DGIS技術(shù)的車輛定位監(jiān)控系統(tǒng)研究[D].福建:福建師范大學(xué),2009.

        [10]離火之靈.Unity3D Mesh創(chuàng)建中三角索引的算法[EB/OL].http://blog.csdn.net/lihuozhiling0101/article/details/43453435.com.

        [11]日久生情.Unity3D腳本:RPG的鏡頭跟隨腳本[EB/OL].http://www.manew.com.

        (責(zé)任編輯:何麗)endprint

        猜你喜歡
        高程可視化模型
        一半模型
        基于CiteSpace的足三里穴研究可視化分析
        基于Power BI的油田注水運(yùn)行動態(tài)分析與可視化展示
        云南化工(2021年8期)2021-12-21 06:37:54
        8848.86m珠峰新高程
        重要模型『一線三等角』
        基于CGAL和OpenGL的海底地形三維可視化
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        “融評”:黨媒評論的可視化創(chuàng)新
        傳媒評論(2019年4期)2019-07-13 05:49:14
        GPS控制網(wǎng)的高程異常擬合與應(yīng)用
        3D打印中的模型分割與打包
        男人和女人做爽爽视频| 国产美女高潮流的白浆久久| 亚洲精品中文字幕乱码| 日韩大片高清播放器大全| 丝袜美腿福利视频在线| 人妻少妇哀求别拔出来| 国产综合精品| 日日摸夜夜添无码无码av| 亚洲精品自拍视频在线观看| 美女叉开双腿让男人插| 91精品国产91综合久久蜜臀| 国产特级毛片aaaaaa视频| 国产真实夫妇交换视频| 无码毛片高潮一级一免费| 骚货人妻视频中文字幕| 亚洲丁香婷婷久久一区二区| 东北寡妇特级毛片免费| 狠狠色狠狠色综合网老熟女| 亚洲国产精品嫩草影院久久av| 18禁免费无码无遮挡不卡网站| 亚洲国产精品久久人人爱| 亚洲欲色欲香天天综合网| 久久久亚洲精品午夜福利| 亚洲av色香蕉第一区二区三区| 中文字幕亚洲乱码熟女1区| 欧美综合天天夜夜久久| 亚洲日韩精品国产一区二区三区| 中文字幕精品亚洲无线码二区| 国产一区二区三区在线大屁股| 午夜毛片不卡免费观看视频 | 91成人自拍视频网站| 日本一区二区三区四区啪啪啪| 国产xxx69麻豆国语对白| 精品国产福利一区二区在线| 免费一区二区三区av| 久久久久99人妻一区二区三区| 男女上下猛烈啪啪免费看| 成黄色片视频日本秘书丝袜| 国产精品自拍视频免费观看| 国产后入清纯学生妹| 亚洲欧美日韩高清专区一区|