999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Unity3D支持的DEM地形三維可視化表達技術實現

2018-02-01 12:53:53陳淑姝甘淑
軟件導刊 2018年1期
關鍵詞:可視化模型

陳淑姝+甘淑

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

關鍵詞:地理信息系統;三維;真三維;DEM;Unity3D

DOIDOI:10.11907/rjdk.172439

中圖分類號:TP317.4

文獻標識碼: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引言

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

Unity3D作為一個近年來大熱的三維游戲引擎,具有兼容操作系統、跨平臺發布并部署、開發簡單易上手、人機交互功能強大、三維效果逼真、內置網絡功能的特點,被廣泛運用于游戲開發和虛擬現實[6,7]。U3D本身自帶地形建模功能,可以通過畫筆或者導入高度圖的方式生成地形,本文將U3D運用到系統仿真的同時把ArcGIS與Unity3D結合,以一種新的方式構建相關真實地形,實現DEM的真三維顯示。

1方案建立

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

2數據預處理

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

3Grid模型生成

生成Grid模型核心思想是利用StreamReader讀入文件,再用Split()函數將每個元素依次讀出,把每個象元值當作高程,以100×100的規模利用Cube構建出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]));

}

}

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

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文本的每個像元值,作為每個頂點的Y坐標,核心代碼為:

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++;

}

}

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

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

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[]為索引數組,將tri的值賦給mesh.Triangles即可,之后添加一個Button,程序運行時單擊Button即可看到TIN(見圖6)。

DEM生成后,為了方便360度無死角觀察模型,還應該添加一個鏡頭旋轉腳本[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進行發布,選擇相應存儲位置,便可由任意用戶進行瀏覽,如圖7和圖8所示。

5結語

地形構建運用十分廣泛,例如可以根據某一區域的歷史數據演變規律,結合GIS空間特性,進行災害模擬,為政府和有關機構提供及時有效、準確可靠的決策信息,使減災、防災、救災等有更充分的科學依據;同時地形構建可用于軍事領域,如結合地形進行可視域分析;地形構建同樣也可應用于游戲中。基于Unity平臺建立DEM將Unity3D和ArcGIS做了很好的結合,且將U3D引擎運用到計算機仿真中,利用Cube實現了格網DEM的真三維展示,利用Mesh實現了TIN的真三維展示模型,筆者下一步將在地形模型基礎上進一步研究流團模型構建算法,以此模擬泥石流運動規律。

參考文獻:

[1]黃應全.淺談地理信息系統在測繪領域的擴展應用[J].企業技術開發,2013,32(11):53-54.

[2]師向東.基于場景圖的GIS三維可視化技術研究與實現[D].沈陽:東北大學,2008.

[3]房玉龍.可視化技術在地下管線信息系統中的應用[D].南京:南京大學,2005.

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

[5]姜小軼,孫運生,王安.三維地理信息系統(3D-GIS)的發展現狀及趨勢[J].世界地質,1988,17(4):58-62.

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

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

[8]玉秀琴.VR-GIS技術在城市房產信息查詢系統中的應用研究——以蘭州市七里河區西部歡樂園地區為例[D].蘭州:蘭州大學,2005.

[9]梁鵬飛.基于GPS/3DGIS技術的車輛定位監控系統研究[D].福建:福建師范大學,2009.

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

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

(責任編輯:何麗)endprint

猜你喜歡
可視化模型
一半模型
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
重要模型『一線三等角』
基于CGAL和OpenGL的海底地形三維可視化
重尾非線性自回歸模型自加權M-估計的漸近分布
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
3D打印中的模型分割與打包
主站蜘蛛池模板: 免费午夜无码18禁无码影院| 婷婷激情亚洲| 国产成人AV男人的天堂| 真人免费一级毛片一区二区| 欧美在线视频不卡第一页| 国产91高跟丝袜| 久久久波多野结衣av一区二区| 久久成人免费| 高清欧美性猛交XXXX黑人猛交| 全免费a级毛片免费看不卡| 日韩精品欧美国产在线| 免费国产小视频在线观看| 亚洲成人在线播放 | 亚洲精品成人福利在线电影| 精品一区二区无码av| 波多野结衣一区二区三区AV| 在线无码九区| 国产99视频精品免费视频7 | 亚洲综合第一页| 久久毛片基地| 一本大道香蕉高清久久| 99热在线只有精品| 中文字幕亚洲精品2页| 激情亚洲天堂| 欧美视频免费一区二区三区| 日韩欧美中文字幕在线精品| 97se亚洲| 欧美性天天| 日韩中文精品亚洲第三区| 久久黄色一级视频| 国产成a人片在线播放| 精品无码日韩国产不卡av| 999精品色在线观看| 成人午夜福利视频| 亚洲欧美日韩另类在线一| 一级毛片基地| 视频在线观看一区二区| 91精品国产91久久久久久三级| 啪啪国产视频| 精品国产免费观看| 国产亚洲精品无码专| 一本综合久久| 亚洲性一区| 国产精品自在拍首页视频8| 亚洲黄色视频在线观看一区| 亚洲AV无码不卡无码 | 国产特一级毛片| 亚洲精品无码在线播放网站| 伊人久久大香线蕉影院| 国产内射在线观看| 沈阳少妇高潮在线| 日韩亚洲综合在线| 久热精品免费| 欧美午夜网| 99视频在线观看免费| 国产91熟女高潮一区二区| 精品国产免费观看一区| 一个色综合久久| 亚洲欧洲一区二区三区| 欧美日韩免费在线视频| 欧美日韩国产在线播放| 欧美亚洲欧美区| 欧洲日本亚洲中文字幕| 日韩精品一区二区三区大桥未久| 欧美α片免费观看| 欧美视频在线播放观看免费福利资源| 亚洲综合中文字幕国产精品欧美| 欧美综合一区二区三区| 久久 午夜福利 张柏芝| 国产一区二区三区夜色| 一区二区三区成人| 日韩免费视频播播| 日韩av无码精品专区| 日本久久久久久免费网络| 亚洲av无码牛牛影视在线二区| 国产自在自线午夜精品视频| 97综合久久| 99视频国产精品| 欧美伦理一区| 免费看黄片一区二区三区| 国产精品分类视频分类一区| 午夜影院a级片|