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

基于Android的三維地形建模和實時顯示技術

2017-10-11 07:25:16高林李潔蘇光義
現代計算機 2017年18期
關鍵詞:設備

高林,李潔,蘇光義

(中國民航大學中歐航空工程師學院,天津 300300)

基于Android的三維地形建模和實時顯示技術

高林,李潔,蘇光義

(中國民航大學中歐航空工程師學院,天津 300300)

以Android智能移動設備為研究對象,通過OpenGL ES嵌入式三維圖形接口實現移動端三維地形的建模和顯示。針對大規模地形場景渲染時,面元數目過多導致的繪制速率低下問題,使用LOD技術進行改進。通過面向對象編程,模擬ROAM算法的數據結構,設計分割判據確定其網格生成方式,在Android平臺上實現ROAM算法,有效減少面元數目。同時,對于ROAM算法生成的地形裂縫,研究產生原因并采用強制分割方法成功地將之消除。

三維地形建模;OpenGL ES;LOD技術;ROAM算法;裂縫消除

0 引言

近年來,手機、平板電腦等智能移動設備快速發展,其硬件性能、存儲能力、圖形繪制能力等不斷提升,移動應用中三維圖形交互的需求也不斷增加。其中,Android設備不僅具有市場第一的占有率,而且其平臺開源性可以大幅增加開發的效率和自由度[1]。三維地形作為最常見的三維場景,其在Android等智能移動設備上的建模和顯示技術成為了一個新的研究方向。

對于大規模三維地形的顯示技術,在PC端的研究已經趨近成熟,但是在移動端的研究依然稀少。目前,移動端三維圖形顯示大都使用遠程繪制方式,即依靠遠程計算機進行三維繪制生成圖像。隨著移動設備硬件性能的加強,已經能夠滿足本地繪制的需求,遠程繪制不再是唯一選擇。通過Java IO流可以將DEM地形數據從本地文件導入到程序中;基于地形數據,通過OpenGL ES接口可以實現在嵌入式移動設備上的三維地形建模。

另外,大規模地形場景繪制時,由于地形數據量龐大,面元數目的急劇增加導致了繪制速率的低下和顯示實時性的降低。目前解決該問題的主要思路通過LOD(Level of Details)技術,即多細節層次網格建模技術,來減少畫面中需要渲染的面元數目。不同于以往在所有區域使用相同密度網格的方式,LOD技術根據需求在不同區域繪制密度不同的網格,從而達到減少面元總數的目的[2]。ROAM(Real-time Optimally Adaptive Meshes)算法作為一種LOD技術,能夠根據視點位置實時更新各區域的網格密度,具有優秀的顯示實時性[3]。本文主要研究Android設備上的三維地形建模,并通過實現ROAM算法提升大規模地形的顯示實時性。

1 移動端三維地形建模

圖1 OpenGL ES三維建模流程

通過OpenGL ES圖形接口在Android設備上實現三維地形建模的主要流程如圖1所示,各步驟主要功能如下所述:

(1)三維模型描述是數據準備的階段。模型描述的數據主要有頂點三維數據,渲染紋理數據等。地形建模所用的DEM(Digital Elevation Model,數字高程模型)數據文件可從Google Earth中,通過高程值采樣提取并生成csv類型文件。使用Java IO流中的字符流可以讀取csv文件中的數據,以供程序后續建模使用。紋理數據則大都以圖片格式保存在應用的資源文件夾內,通過方法getResources()來調用。

模型變換過程通過頂點的坐標變換,實現三維地形的平移、旋轉、縮放等操作。OpenGL ES中以列矩陣(xyz1)T來表示頂點在三維空間中的位置,以矩陣變換的方式改變坐標。其中,平移變換和縮放變換分別如式(1),(2)所示,通過左乘相應的變換矩陣改變了點的坐標值,實現三維模型的平移和縮放。

(3)視圖變換,調整視圖設置可以改變觀察方式,從而改變模型最終顯示的效果。以拍照為例,模型變換相當于被拍攝物體自身的移動、旋轉等變換,而視圖變換則是調整照相機的位置、朝向等設置。只有結合模型變換和視圖變換,才能確定三維模型最終的顯示效果。

投影變換用于確定投影類型和可視范圍。投影類型有正視投影和透視投影兩種。前者的可視空間為長方體,投影效果沒有遠近區分,適用于三視圖繪制;后者可視空間為如圖2所示的錐形體,又稱視景體,以現實生活中投影空間為參考,投影具有近大遠小的真實透視效果。OpenGL ES中以方法glFrustum(left,right,bottom,top,zNear,zFar)來定義視景體。其中 left,right,bottom,top四個值定義了近裁剪平面的大小,zNear表示近裁剪平面到觀察點的距離,zFar表示遠裁剪平面到觀察點的距離。由這6個參數定義的6個裁剪平面在三維空間空間內形成了一個椎形體。只有當三維模型在視景體內時,經過投影變換后最后才會在屏幕上顯示出來,不在視景體內的部分將不會顯示到屏幕上。

(5)視口變換的目的是將投影變換后的物體顯示到設備二維屏幕上相應的區域,即視口內。視口通常為矩形,在 OpenGL ES中通過 glViewport(GLint x,GLint y,GLsizei width,GLsizei height)方法來定義視口。其中(x,y)確定了視口在整個屏幕中的位置,width和height則定義了視口的寬和高。由于移動設備屏幕較小,一般設置視口填滿整個屏幕,即(x,y)取(0,0),寬和高則設置為屏幕自身的寬度和高度值。

圖2 視景體

如圖3,采用左上角經緯度坐標(117.3121833

80 E,40.116748810 N)至右下角經緯度坐標(117.372608185 E,40.061817169 N)矩形區域內地形數據進行實驗,可得三維地形建模結果。紋理渲染后效果如圖4。

圖3 三維地形建模結果

圖4 紋理渲染效果

2 移動端ROAM算法實現

隨著繪制地形面積的增大,三維建模所使用的面元數目急劇增加,導致繪制速率降低。在同樣的設備性能前提下,提升繪制速率的一個方法就是減少面元數目。通過ROAM算法可以用更少的面元來描述同一個三維場景并保留地形特征,從而減少每一幀畫面渲染面元所需的總時間。本節重點闡述ROAM算法的思路及在移動端實現該算法的過程。

2.1 地形塊

大規模地形網格繪制時,首先將整個地形場景分割成地形塊[4],然后以各地形塊為單元,進行ROAM分割和網格繪制,從而提高網格生成的效率。如圖5,整個地形場景(LandScape)被分割成地形塊單元(Patch)。每個Patch內又分為左右基節點,如圖6,這些基節點就是ROAM算法的實際操作對象。地形場景生成時,遍歷所有Patch,對其左右基節點通過ROAM算法進行分割生成地形網格。

圖5 地形塊

圖6 左右基節點

2.2 節點分割

ROAM算法以二元三角樹為數據結構,該結構以等腰直角三角形為節點,以連接三角形節點直角頂點和斜邊中點為分割方式。如圖7,三角形ABC為第0層的節點,連接直角頂點A和斜邊BC的中點D,生成子節點ABC和ACD作為第1層的節點。如此遞歸分割得到細節層次更深的節點,從而生成密度更高的地形網格。

圖7 二元三角樹節點

同時,每個節點和其他節點的關系如圖8所示。以當前節點的直角頂點為基準,斜邊中垂線左右側分別為左、右子節點,左右腰相鄰的分別為左、右鄰居,斜邊相鄰的為基鄰居。此結構可以用內嵌類描述:

圖8 節點位置關系

每個三角節點TriTreeNode擁有5個成員變量,分別為其左子節點LeftChild,右子節點RightChild,基鄰居BaseNeighbor,左鄰居LeftNeighbor和右鄰居Right-Neighbor。同時這些成員亦皆為TriTreeNode類型。以該類結構進行實例化時,與每個TriTreeNode節點相關的節點皆可通過調用該對象的成員來描述和操作。節點分割判據的確定主要考慮地形粗糙度,到視點距離和整個地形的尺寸等三個因素。設閾值FrameVar為常數,當滿足條件分割判據TriVar>FrameVar時,則當前節點需要繼續進行下一次分割。為盡可能保留地形特征,在地形粗糙度(LocalVar)大的區域,選用密度更高的網格來描述[5]。距離觀察點遠的區域由于關注度減少,所需網格密度越低。地形場景越大,即地形尺寸MAP_SIZE越大,需要更多的圖元才能展現地形特征。綜上,分割判據TriVar可如式(3)計算。取a=2,b=1進行實驗,效果如圖9,可以發現ROAM算法生成的地形網格在保留局部特征的前提下,有效地減少了圖元總數。實驗數據顯示,面元數從原來的平均每幀32768減少到平均每幀9455,減少了71.15%。

2.3 裂縫消除

對ROAM生成的地形進行顏色渲染后,地形表面會出現黑色裂縫,如圖10。裂縫在細節層次(網格密度)突變處產生,即相鄰節點細節層次相差超過2時,在該相鄰邊上就會出現裂縫。如圖11,當BC左右兩側節點細節層次相差2時,OpenGLES對面元進行渲染時以三角形三個頂點相連所包圍的平面為目標,即三角形面ABC,BDE和CDE分別被渲染,節點BDE,CDE和節點ABC的公共邊BC處則會出現裂縫,如圖12。

圖9 ROAM地形網格

圖10 地形裂縫

圖11 裂縫產生處

圖12 裂縫示意圖

目前主要存在三種裂縫消除方式:(1)連接頂點A和頂點D,將節點ABC分割成ADC和ADB;(2)使用裙邊算法(Skirt)產生新的三角形面元來填充BDC裂縫[6];(3)強制分割至相鄰節點細節層次相差1以內。前兩種方式都將產生新的非二元三角樹結構內的數據,復雜化數據結構,相比之下對數據結構沒影響的強制分割方法更加適合計算處理性能有限的移動設備。

分析節點分割過程可以發現,當前節點與其基鄰居存在如下兩種情況時,對其分割不會產生裂縫:

(1)當前節點擁有基鄰居,且與其為基鄰居關系,形成菱形結構,由于ROAM算法在計算分割判據時以節點斜邊的中點為準,故此二節點會被同時分割。

(2)當前節點沒有基鄰居,即該節點在地形邊界上。

如圖13為強制分割過程,13(a)中節點1的判據滿足分割要求,需對其進行下一次分割時,檢測到其擁有基鄰居,且基鄰居節點2與其并不滿足互為基鄰居的關系,故需對節點2也進行分割;同理,節點3和4也需被分割;而分割節點4時,它和基鄰居節點5滿足互為基鄰居的關系,即條件1,所以同時分割節點4和節點5就能結束本次強制分割。遞歸返回分割的判定結果,并進行遞歸分割,圖13(d)所示網格即強制分割結果。

圖13 強制分割

強制分割后生成的地形網格如圖14,網格細節層次變化保持在相鄰變化小于等于1的范圍內。如圖15,強制分割后對地形進行顏色渲染,結果顯示裂縫已被消除。

圖14 強制分割ROAM網格

圖15 強制分割后渲染

4 結語

三維地形顯示技術作為一項三維場景繪制的基礎技術,具有極大的研究和應用價值。本文針對Android平臺智能移動設備,研究并實現了該平臺上三維地形的建模。同時,對大規模地形的加速繪制技術進行了探討,使用面向對象編程實現了ROAM算法,減少了地形繪制的面元數目,并用強制分割方法消除了地形裂縫。本文實驗都在Android 4.2.2操作系統的AVD虛擬機上進行,并且實驗結果顯示效果良好,在移動端三維地形建模和實時顯示技術方面具有一定參考意義。

[1]齊勝利.基于Android的移動電子海圖平臺研究[D].大連海事大學,2012.

[2]Jacek Zienkiewicz,Akis Tsiotsios,Andrew Davison.Monocular,Real-Time Surface Reconstruction using Dynamic Level of Detail[J].International Conference on 3D Vision,2016(4):37-47.

[3]Dichaineau,M.ROAMing:Real-time Optimally Adapting Meshes[C].Proceedings of IEEE Visualization,1997:81-88.

[4]魏楠,江南.ROAM算法及其在地形可視化中的應用[J].計算機工程與科學,2007(2):66-68.

[5]付慧.基于ROAM算法的動態地形可視化研究[J],計算機仿真,2007,5:210-213.

[6]萬明,梁霞,張鳳鳴.一種四叉樹地形渲染裂縫的改進消除算法[J],系統仿真學報,2015.7(7):1520-1524.

Abstract:

Takes the Android smart mobile device as the research object,realizes the 3D terrain modeling and display on mobile devices by OpenGL ES,a 3D graphics interface for embedded systems.For large-scale terrain scene rendering,the problems of low rate drawing caused by the large number of surface units are solved through the use of LOD technology.Through the object-oriented programming,simulates the data structure of ROAM algorithm,and determines its grid generation method by design of segmentation criteria.Eventually the ROAM algo?rithm is achieved on Android platform,effectively reduces the number of surface units.At the same time,for the terrain cracks generated by the ROAM algorithm,the cause is studied and cracks are successfully eliminated by the forced segmentation method.

Keywords:

3D Terrain Modeling;Opengl ES;LOD Technology;ROAM;Crack Elimination

3D Terrain Modeling and Real-Time Display Technology Based on Android

GAO Lin,LI Jie,SU Guang-yi
(Civil Aviation University of China,Sino-European Institute of Aviation Engineering,Tianjin 300300)

2017-04-10

2017-06-18

1007-1423(2017)18-0052-05

10.3969/j.issn.1007-1423.2017.18.013

高林(1992-),男,浙江杭州人,碩士研究生,研究方向為通航機載便攜式導航設備

李潔(1992-),女,河北保定人,碩士研究生,研究方向為嵌入式系統與軟件設計

蘇光義(1992-),男,浙江溫州人,碩士研究生,研究方向為機載電子與空管系統

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 欧美综合中文字幕久久| 思思热精品在线8| 丁香婷婷久久| 不卡无码网| 天天干天天色综合网| igao国产精品| 日本亚洲欧美在线| 日韩无码黄色| 少妇人妻无码首页| 久久久久88色偷偷| 中文无码伦av中文字幕| 激情国产精品一区| 亚洲人成影院在线观看| 2021国产精品自产拍在线观看 | 久久女人网| 日本爱爱精品一区二区| WWW丫丫国产成人精品| 亚洲欧美在线精品一区二区| 精品人妻AV区| 欧美日韩在线成人| 九月婷婷亚洲综合在线| 精品丝袜美腿国产一区| 国产成人精品免费视频大全五级| 午夜人性色福利无码视频在线观看| 中文字幕在线日韩91| 无码中文字幕精品推荐| 亚洲侵犯无码网址在线观看| 亚洲全网成人资源在线观看| 视频一本大道香蕉久在线播放| 青青热久免费精品视频6| 亚洲69视频| 男女男精品视频| 国产97区一区二区三区无码| 青青操视频在线| 免费播放毛片| 国产极品美女在线播放| 国产xx在线观看| 九九这里只有精品视频| 欧美精品不卡| 久久黄色一级视频| 欧美日在线观看| 国产色婷婷| 国内黄色精品| 五月婷婷亚洲综合| 欧美福利在线| 国产毛片高清一级国语| 久草热视频在线| 五月综合色婷婷| 亚洲综合色在线| 九色在线观看视频| 91原创视频在线| 动漫精品中文字幕无码| 日韩激情成人| 国产91丝袜| 日韩激情成人| 久久青草视频| 欧美在线综合视频| 婷婷亚洲视频| 日韩无码黄色网站| 日本精品视频一区二区| 国产成人永久免费视频| 伊人久久综在合线亚洲2019| 精品99在线观看| 午夜国产大片免费观看| 免费观看成人久久网免费观看| 亚洲swag精品自拍一区| 亚洲网综合| 欧美不卡在线视频| 欧美国产日韩在线观看| 亚洲福利视频一区二区| 久久国产精品电影| 日韩欧美一区在线观看| 国产精品自在在线午夜区app| 国产h视频免费观看| 美女扒开下面流白浆在线试听 | 99re经典视频在线| 91视频区| 中文天堂在线视频| 国产十八禁在线观看免费| 国产剧情国内精品原创| a欧美在线| 国产偷倩视频|