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

基于OpenGL的3ds數據可視化

2014-04-18 03:20:28閆浩文張志華
地理空間信息 2014年5期
關鍵詞:可視化模型

肖 坤,閆浩文,張志華

(1.蘭州交通大學 測繪與地理信息學院,甘肅 蘭州,730070)

基于OpenGL的3ds數據可視化

肖 坤1,閆浩文1,張志華1

(1.蘭州交通大學 測繪與地理信息學院,甘肅 蘭州,730070)

探討了基于OpenGL的3ds文件讀取、繪制和控制方法,從三維模型在地形中移動的坡度和坡向問題入手,逼真地模擬了3ds文件模型在GRID地形中移動的交互控制過程。開發的三維模擬可視化實驗系統,在3ds文件模型和GRID地形的貼合程度方面效果良好。

OpenGL;3ds;三維可視化;交互控制

OpenGL是一個開源的三維圖形軟件包,作為一個性能優越的圖形應用程序設計界面,被廣泛地應用于各種計算機環境中,成為三維圖形開發的標準[1]。目前,GRID地形和三維模型的可視化已經被廣泛地應用于地形模擬和景觀仿真等方面,但模型運動的自主性不強,貼合度不好[2,3]。本文將建立的3ds文件利用Visual C++快速導入到實驗系統,通過研究該模型文件的讀取、繪制與控制方法,結合規則格網GRID模型的特點,實現了3ds文件模型在凸凹不平GRID地形的交互控制移動過程,以及三維模型與GRID地形的動態實時貼合。本文方法在模型的移動和位置關系的結合上,取得良好效果,可為三維動態模擬、三維模型之間的貼合以及場景快速構建等提供技術參考。

1 3ds文件結構

3ds文件是最常見的一種三維模型保存格式,具有獲取方式多樣、保存方便等特點。本文使用的3ds文件通過3ds max建模獲得,建模過程在此不再詳細說明。

3ds文件由許多“塊”組成,是一個塊的嵌套結構。每一個“塊”由兩部分組成:ID和下一個數據塊的位置[4]。基本塊包含兩個主塊,分別是3D編輯器塊和關鍵幀塊,前者ID是0x3D3D,后者ID是0xB000。在3D編輯器塊中,有圖形的頂點列表、三角形列表、面列表、材質、顏色等信息。接下來描述該塊的數據信息及其子塊,子塊的描述與上一級塊相同。但不是所有的塊都含有子塊,可以用塊的長度與偏移量(如表中的 6+n)比較來判斷是否包含子塊[5]。本文主要用到的是3D編輯器塊。“塊”的定義如表1。

表1 3ds文件結構

2 3ds文件的讀取和控制

2.1 數據結構

3ds文件都是按照塊模式存儲,因此可將塊結構定義如下:

struct t_Chunk

{

unsigned short int ID; //塊的ID

unsigned int length; //塊的ID

unsigned int bytes_Read; //塊讀入的字節數

};

在數據的讀取過程中抽象出二、三維點、面和材質信息結構模型,然后得出三維對象模型定義如下:

struct t_3DObject

{

int num_Verts; //點的個數

int num_Faces; //面的個數

int numTexVertex; //材質坐標的個數

int materialID; //材質的ID

char strName[255]; //對象的名稱

CVector3 *pVerts; //對象的頂點

CVector3 *pNormals; //對象的法線

CVector2 *pTexVerts; //紋理的UV坐標

t_Face *pFaces; //對象的面信息

};

然后再由對象模型抽象和繪制出整個場景,獲得整個場景的畫面。下面為三維模型的定義:

struct t_3DModel

{

int num_Objects; //對象的個數

int num_Materials; //材質的個數

vector<t_MaterialInfo> pMaterials;

//材料信息的列表(材質和顏色)

vector<t_3DObject> pObject;

//模型的對象列表

}

2.2 讀取流程

3ds文件由chunk構成,每一個chunk包括一個頭和一個主體,chunk的頭又由兩部分組成:塊的ID,chunk的長度[6]。chunk是相互嵌套的,這就要求必須以遞歸的方式進行讀取,主要涉及RGB顏色、燈光、頂點、面、UV坐標、材質、紋理坐標等,詳細讀取過程見圖1。

圖1 讀取流程

2.3 定 位

在GRID地形上模擬三維實體模型的行進過程,需要解決的關鍵問題是如何將其在凸凹不平的GRID地形上停放。本文將越野車作為三維實體進行研究,首先把越野車抽象成一個長方體,然后判斷長方體的下表面是否和地表該點的貼面重合,若重合則表明可以實現停放,亦即只要長方體下表面的法線方向和地面點的法線方向一致,就可實現停放。具體旋轉只需要知道該點地形的坡度和坡向的兩個角度值,就可以通過OpenGL中的旋轉矩陣實現。其中,越野車在GRID地形上行進時坡度和坡向的計算可分為以下3種情況(圖2)。

圖2 格網示意圖

1)當越野車(點5)到達一個正方形表面時(圖2a),可由正方形表面的法線方向得到坡度S和坡向A的信息。

2)當越野車(點5)到達兩個正方形邊界時(除頂點外)(圖2b),可以將兩個正方形表面的單位法線的平均值作為邊界上點的法線方向。可由點5的法線得到坡度S、坡向A。

3)當越野車到達四個正方形的共享頂點5時(圖2c),由于點5的坡度S、坡向A可以看作地形曲面函數Z = f ( x , y )在東西、南北方向上高程變化率的函數[7,8],即式中,fx和fy分別為東西、南北方向上的高程變化率。本文中fx和fy的計算由相鄰的2個點獲得其在2個方向上的變化率。例如圖中點5的變化率由點2和點8、點4和點6獲得其在東西、南北兩個方向上的變化率[9,10]。

一般情況下,車的動力是有限的,以我國現行最大坡度建議值[11]為例,若車速100 km/h,坡度建議值imax為5,坡度大于這個建議值時停止移動。

2.4 其他操作控制

本文對3ds模型在GRID地形中轉彎采用旋轉的方式進行控制。在坐標系統中,順時針為負,逆時針為正,在此設定一個角速度去控制它旋轉的角度,當角速度為正時為左轉彎,反之為右轉彎。此外還實現了勻速、加速行駛等功能,加速采用設定加速度累加方式實現,設定最大速度進行限制。

整個場景的放大、縮小、改變視角旋轉等操作都是通過相應的矩陣進行控制[3-4]。

3 實 驗

本文的實驗系統首先讀入一個越野車模型的3ds文件,然后對其添加控制,使之可以隨GRID地表起伏,對正常的行進過程進行模擬。在此把越野車模型抽象為一個長方形,在模擬地形上移動過程時對其左右方向進行旋轉控制(左轉彎和右轉彎),對車頭和車尾隨地表起伏上下偏移進行旋轉控制,然后在移動過程中確定越野車模型在每個點的位置和旋轉狀態,并進行顯示。整體效果如圖3所示。

圖3 系統整體效果圖

4 結 語

本文基于OpenGL技術在VC中實現3ds文件的瀏覽和交互控制,并實現越野車模型在簡單GRID地形中的正常移動,著重講解了3ds文件的讀取過程和模型在其中的控制方法,及其坡度坡向對模型在移動過程中的影響。該技術可以有效地模擬三維模型的構建,

及其動態顯示和移動過程,方法簡單直觀,與地形表面的貼合程度效果好,效率較高,極大地縮短了三維開發的周期,對三維建模及動態交互控制方面的研究具有借鑒意義。

[1] Shreiner D.OpenGL Programming Guide:the Official Guide to Learning OpenGL,Versions 3.0 and 3.1[M]. Boston:Pearson Education,2009

[2] 閆志剛. GIS 專業地學可視化課程的建設與教學實踐[J]. 地理空間信息, 2011, 9(4): 159-161

[3] 劉芳,劉賢梅.3DS文件讀取、繪制與控制方法的研究與應用[J].計算機工程與設計,2009,30(19): 4 575-4 578

[4] 殷素峰,高雪強,楊勝強.在OpenGL環境下開發3DS文件瀏覽器[J].工程圖學學報,2005,26(6): 22-24

[5] 蔡強,李海生,陳誼.3DS文件瀏覽器的設計與實現[J].系統仿真學報,2008, 20(增刊): 147-149

[6] 劉虎, 陳漢文. 基于 3DS MAX 的校園三維模型室內外一體化制作[J]. 地理空間信息, 2013 (2): 53-54

[7] 郭仁忠.空間分析[M].北京:高等教育出版社,2001

[8] Spatial Analysis and GIS[M]. Cleveland, Ohio: CRC Press,2004

[9] 湯國安,李軍鋒.規則格網DEM坡度坡向算法的比較分析[J].干旱區地理,2004,1(9): 398-403

[10] 洪瑩, 王繼周, 李昂. 地形特征提取的一種簡易算法[J]. 測繪科學, 2009, 34(6): 125-127

[11] 裴玉龍,邢恩輝.高等級公路縱坡的坡度、坡長限制分析[J].哈爾濱工業大學學報,2005,37(5): 629-632

P208

B

1672-4623(2014)05-0082-03

10.3969/j.issn.1672-4623.2014.05.029

肖坤,碩士,主要從事三維GIS的開發工作。

2014-03-24。

項目來源:國家科技支撐計劃資助項目(2013BAB05B01)。

猜你喜歡
可視化模型
一半模型
自然資源可視化決策系統
北京測繪(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打印中的模型分割與打包
主站蜘蛛池模板: 亚洲综合狠狠| 狠狠做深爱婷婷综合一区| 亚洲无线国产观看| 色老头综合网| 国产精品美女免费视频大全| 国产剧情伊人| 久久综合激情网| 在线毛片网站| 国产女人喷水视频| 欧洲亚洲一区| 国产网友愉拍精品| 亚洲国产中文欧美在线人成大黄瓜| 色婷婷色丁香| 色天天综合| 久热re国产手机在线观看| 亚洲视屏在线观看| 国产欧美日韩在线一区| 国产成人无码综合亚洲日韩不卡| 熟妇人妻无乱码中文字幕真矢织江 | 久久99蜜桃精品久久久久小说| 五月综合色婷婷| 久久精品电影| 国产免费羞羞视频| 亚洲中文字幕在线观看| 国产一区二区精品高清在线观看| a毛片在线| 国产成人av一区二区三区| 亚洲全网成人资源在线观看| 国产福利2021最新在线观看| 国产成人精品在线| 国产网站黄| 亚洲精品第一页不卡| 毛片网站观看| 亚洲一区无码在线| 中文字幕亚洲精品2页| 青青操视频在线| 国产97视频在线| 久久综合色播五月男人的天堂| 午夜毛片福利| a级毛片一区二区免费视频| 国产成人AV男人的天堂| 日韩小视频在线播放| 在线观看亚洲精品福利片| 午夜免费小视频| 91精品国产自产在线老师啪l| 国产精品免费入口视频| 婷婷色狠狠干| 久久综合九色综合97婷婷| 日韩精品欧美国产在线| 欧美色视频网站| 久久免费看片| 亚洲男人天堂久久| 欧美五月婷婷| 国产高潮视频在线观看| 亚洲欧美日韩中文字幕在线| 思思99热精品在线| 青草视频网站在线观看| 怡春院欧美一区二区三区免费| 国产精选自拍| 亚洲天堂精品在线| 成年看免费观看视频拍拍| 免费 国产 无码久久久| 2021天堂在线亚洲精品专区| 日韩欧美亚洲国产成人综合| 成人午夜久久| 亚洲美女久久| 男女男免费视频网站国产| 亚洲永久免费网站| 91小视频在线观看免费版高清| 国产成人亚洲欧美激情| 88av在线| 久久频这里精品99香蕉久网址| 国产乱人伦偷精品视频AAA| 强奷白丝美女在线观看| 午夜精品久久久久久久99热下载| 婷五月综合| 99热最新网址| 国产女人在线视频| 污污网站在线观看| 麻豆精品国产自产在线| 国产一线在线| 四虎影院国产|