• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    基于OpenGL的瓦片地圖創建方法及裝置制造方法及圖紙

    技術編號:10325440 閱讀:235 留言:0更新日期:2014-08-14 12:07
    本發明專利技術公開了一種基于OpenGL的瓦片地圖創建方法及裝置,其中,一種基于OpenGL的瓦片地圖創建方法包括:獲取瓦片地圖文件;根據所述瓦片地圖文件計算各個瓦片的3D模型坐標;將所述各個瓦片的圖片轉化為紋理圖片;計算所述各個瓦片的紋理圖片的坐標;根據所述各個瓦片的3D模型坐標、紋理圖片以及紋理圖片的坐標,調用所述OpenGL的渲染函數分別對所述各個瓦片進行渲染,生成包含所述各個瓦片的瓦片地圖。本發明專利技術提供的技術方案能夠有效提高瓦片地圖的可移植性。

    【技術實現步驟摘要】
    基于OpenGL的瓦片地圖創建方法及裝置
    本專利技術涉及瓦片地圖
    ,具體涉及一種基于OpenGL的瓦片地圖創建方法及裝置。
    技術介紹
    目前,越來越多的地圖服務用到瓦片地圖技術,例如現在我國實行發布的天地圖服務就運用了瓦片地圖技術。瓦片地圖技術基于瓦片地圖金字塔模型,瓦片地圖金字塔模型是一種多分辨率層次模型,從瓦片金字塔的底層到頂層,分辨率越來越低,但表示的地理范圍不變。瓦片地圖金字塔模型的構建原理是:首先確定地圖服務平臺所要提供的縮放級別的數量N,把縮放級別最低、地圖比例尺最大的地圖圖片作為金字塔的底層,即第O層,并對其進行切片,從地圖圖片的左上角開始,從左至右、從上到下進行切割,分割成相同大小(比如256x256像素)的正方形地圖瓦片,形成第O層瓦片矩陣;在第O層地圖圖片的基礎上,按每2x2像素合成為一個像素的方法生成第I層地圖圖片,并對其進行切片,分割成與下一層相同大小的正方形地圖瓦片,形成第I層瓦片矩陣;采用同樣的方法生成第2層瓦片矩陣;以此類推,直到第N — I層,構成整個瓦片金字塔。目前,利用傳統技術開發的瓦片地圖的移植性較差,不支持跨平臺運行,比如,例如,一些經典的瓦片地圖游戲(例如超級瑪麗、魂斗羅等)只能運行在紅白機上,無法移植到智能設備(例如手機、平板電腦等)運行。
    技術實現思路
    本專利技術提供一種基于OpenGL的瓦片地圖創建方法及裝置,用于提高瓦片地圖的可移植性。本專利技術第一方面提供一種基于OpenGL的瓦片地圖創建方法,包括:獲取瓦片地圖文件;根據所述瓦片地圖文件計算各個瓦片的3D模型坐標;將所述各個瓦片的圖片轉化為紋理圖片;計算所述各個瓦片的紋理圖片的坐標;根據所述各個瓦片的3D模型坐標、紋理圖片以及紋理圖片的坐標,調用所述OpenGL的渲染函數分別對所述各個瓦片進行渲染,生成包含所述各個瓦片的瓦片地圖。本專利技術第二方面提供一種基于OpenGL的瓦片地圖創建裝置,包括:獲取單元,用于獲取瓦片地圖文件;第一計算單元,用于根據所述獲取單元獲取的瓦片地圖文件計算各個瓦片的3D模型坐標;轉化單元,用于將所述各個瓦片的圖片轉化為紋理圖片;第二計算單元,用于計算所述各個瓦片的紋理圖片的坐標;渲染單元,用于根據所述第一計算單元計算得到的各個瓦片的3D模型坐標、所述轉化單元轉化得到的各個瓦片的紋理圖片以及所述第二計算單元計算得到的所述各個瓦片的紋理圖片的坐標,調用所述OpenGL的渲染函數分別對所述各個瓦片進行渲染,生成包含所述各個瓦片的瓦片地圖。由上可見,本專利技術通過獲取瓦片地圖文件,根據瓦片地圖文件生成OpenGL渲染所需要的3D模型坐標、紋理圖片和紋理圖片坐標,最后通過OpenGL渲染接口生成包含各個瓦片的瓦片地圖,由于主流的智能設備均支持OpenGL,而OpenGL提供了跨編程語言、跨平臺的編程接口,因此,通過本專利技術技術方案生成的瓦片地圖能夠在支持OpenGL的所有智能設備上運行,極大提高了瓦片地圖的可移植性。【附圖說明】為了更清楚地說明本專利技術實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖Ι-a為本專利技術實施例提供的一種基于OpenGL的瓦片地圖創建方法流程示意圖;圖Ι-b為本專利技術實施例提供的一種瓦片地圖文件數據結構圖;圖Ι-c為本專利技術實施例提供的一種計算瓦片3D模型坐標方案的流程示意圖;圖2為本專利技術實施例提供的一種基于OpenGL的瓦片地圖創建裝置結構示意圖。【具體實施方式】為使得本專利技術的專利技術目的、特征、優點能夠更加的明顯和易懂,下面將結合本專利技術實施例中的附圖,對本專利技術實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本專利技術一部分實施例,而非全部實施例。基于本專利技術中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本專利技術保護的范圍。本專利技術實施例提供了一種基于OpenGL的瓦片地圖創建方法,包括:獲取瓦片地圖文件;根據所述瓦片地圖文件計算各個瓦片的3D模型坐標;將所述各個瓦片的圖片轉化為紋理圖片;計算所述各個瓦片的紋理圖片的坐標;根據所述各個瓦片的3D模型坐標、紋理圖片以及紋理圖片的坐標,調用所述OpenGL的渲染函數分別對所述各個瓦片進行渲染,生成包含所述各個瓦片的瓦片地圖。相應的,本專利技術實施例還提供了一種基于OpenGL的瓦片地圖創建裝置。以下分別進行詳細說明。如圖Ι-a所示,本專利技術實施例中的一種基于OpenGL的瓦片地圖創建方法包括:步驟101、獲取瓦片地圖文件;本專利技術實施例中,瓦片地圖文件預先通過瓦片地圖創建工具(例如TiledMapEdit)創建,具體的,瓦片地圖文件的創建方式可以參照現有的瓦片地圖文件的創建方案實現,此處不再贅述。通常情況下,瓦片地圖文件為一種針對Unicode的可變寬度字符編碼(例如UTF-8)的明碼文件,瓦片地圖文件的文件后綴為TMX,因此,瓦片地圖文件通常也被稱為TMX文件。具體的,本專利技術實施例中的瓦片地圖文件的數據結構可以參照圖l_b所示,在圖Ι-b中,“Title”用于描述瓦片地圖文件的基本屬性,包括:orientation(即瓦片的朝向信息)、width(即瓦片地圖的寬度信息,用于表示瓦片地圖在寬度方向上的瓦片個數,即表示瓦片地圖每行存在的瓦片個數)、height (即瓦片地圖的高度信息,用于表示瓦片地圖在高度方向上的瓦片個數,即表示瓦片地圖每列存在的瓦片個數)、tilewidth(即相鄰瓦片的中心點在寬度方向的間距信息)、tileheight (即相鄰瓦片的中心點在高度方向的間距信息);[N] tileset用于分別描述N個瓦片集的屬性信息(其中,N大于或等于I),包括:firstgid (即瓦片集中第一個瓦片的全局標識量)、name (即瓦片集的名稱)、tiIewidth (即瓦片集中瓦片的寬度信息)、tileheight (即瓦片集中瓦片的高度信息)、margin (即相鄰瓦片之間的間隔信息)、image (即瓦片集的圖片信息,包括描述圖片路徑的source屬性、描述圖片原始寬度的width屬性、描述圖片原始高度的height屬性);[M] layer用于分別描述M個層的屬性信息(其中,M大于或等于1),包括:name (即層的名稱)、width (即層的寬度信息)、height (即層的高度信息)、data(即層的所有瓦片的數據信息,包括enCoding(即編碼方式)compression(即壓縮方式)、數據(主要記錄層中所有瓦片依次對應的全局標識量))。下面對瓦片的全局標識量進行說明,瓦片的全局標識量又稱為瓦片的GID,通常,GID的范圍從正整數I開始,到瓦片地圖中瓦片的總量,舉例說明,假設如果瓦片地圖有5個不同的瓦片,那么,瓦片O的GID為1,瓦片I的GID為2,瓦片3的GID為3,以此類推,瓦片的GID為O被用來表示此瓦片為空。需要說明的是,圖Ι-b所示的瓦片地圖文件的數據結構只是一種示例,本專利技術實施例中的瓦片地圖文件的數據結構不限于圖l-b所示的數據結構。本專利技術實施例中,預先創本文檔來自技高網...
    基于OpenGL的瓦片地圖創建方法及裝置

    【技術保護點】
    一種基于OpenGL的瓦片地圖創建方法,其特征在于,包括:獲取瓦片地圖文件;根據所述瓦片地圖文件計算各個瓦片的3D模型坐標;將所述各個瓦片的圖片轉化為紋理圖片;計算所述各個瓦片的紋理圖片的坐標;根據所述各個瓦片的3D模型坐標、紋理圖片以及紋理圖片的坐標,調用所述OpenGL的渲染函數分別對所述各個瓦片進行渲染,生成包含所述各個瓦片的瓦片地圖。

    【技術特征摘要】
    1.一種基于OpenGL的瓦片地圖創建方法,其特征在于,包括: 獲取瓦片地圖文件; 根據所述瓦片地圖文件計算各個瓦片的3D模型坐標; 將所述各個瓦片的圖片轉化為紋理圖片; 計算所述各個瓦片的紋理圖片的坐標; 根據所述各個瓦片的3D模型坐標、紋理圖片以及紋理圖片的坐標,調用所述OpenGL的渲染函數分別對所述各個瓦片進行渲染,生成包含所述各個瓦片的瓦片地圖。2.根據權利要求1所述的方法,其特征在于, 所述瓦片地圖文件包括如下信息:瓦片的朝向信息、瓦片地圖的寬度信息、瓦片地圖的高度信息、瓦片地圖包含的所有瓦片集的屬性信息,瓦片地圖包含的所有層的屬性信息; 所述根據所述瓦片地圖文件計算各個瓦片的3D模型坐標包括: 針對瓦片地圖的每層,進行如下計算: 根據所述瓦片的 朝向信息,確定本層的第一塊瓦片的左下角頂點坐標; 根據所述瓦片的朝向 信息、所述瓦片地圖的寬度信息、所述瓦片地圖的高度信息,以及所述第一塊瓦片的左下角頂點坐標,計算本層中其它瓦片的左下角頂點坐標; 對本層中的每塊瓦片進行如下計算,得到本層中的每塊瓦片的3D模型坐標:根據確定的瓦片i的左下角頂點坐標、所述瓦片地圖的寬度信息以及瓦片地圖的高度信息,確定所述瓦片i的左上角頂點坐標、右上角頂點坐標和右下角頂點坐標;根據2D轉3D公式,計算所述瓦片i的4個頂點在3D環境中的絕對位置;將所述瓦片i的4個頂點在3D環境中的絕對位置減去所述瓦片i的模型位置,得到所述瓦片i的3D模型坐標,其中,所述瓦片i的模型位置等于所述瓦片i的4個頂點的平均坐標。3.根據權利要求2所述的方法,其特征在于,所述根據所述瓦片的朝向信息、所述瓦片地圖的寬度信息、所述瓦片地圖的高度信息,以及所述第一塊瓦片的左下角頂點坐標,計算本層中其它瓦片的左上角頂點坐標,包括: 若本層中瓦片的朝向為正交布局,則第m塊瓦片的左下角頂點坐標為TLff) *TTff, y1; o+ (m/TLff) *TTH); 若本層中瓦片的朝向為45度斜視角布局,則第m塊瓦片的左下角頂點坐標為(x1;0+((m% TLH) -m/TLff) *TTff/2, y1;0+ (m% TLH) +m/TLff) *TTH/2); 其中,和y1;。分別表示所述第一塊瓦片的左下角頂點橫坐標和左下角頂點縱坐標,TLW表示所述瓦片地圖在寬度方向上的瓦片個數,TLH表示所述瓦片地圖在高度方向上的瓦片個數,TTW表示相鄰瓦片的中心點在寬度方向的間距,TTH表示相鄰瓦片的中心點在高度方向的間距。4.根據權利要求2或3所述的方法,其特征在于,所述根據2D轉3D公式,計算所述瓦片i的4個頂點在3D環境中的絕對位置包括: 根據第一公式和第二公式,分別計算所述瓦片i的4個頂點在3D環境中的絕對位置; 其中,所述第一公式為:pos = ((2*Xi;a- (vx+vw)) /vw, (vy+vh-2*Yi;a) /vh, Z, I);所述第二公式為:P3d,i,a= (V_1*P_1*pos).getPosition (); 式中P3(U,a表示瓦片i的頂點a在3D環境中的絕對位置,vx, vy, Vw和Vh分別為視窗中瓦片地圖可繪區域的左上角頂點坐標、寬度和高度,和\a分別為所述瓦片i的頂點a的橫坐標和縱坐標,Z為預設值,P表示投影矩陣,V表示view矩陣,其中,P和V在所述OpenGL初始化時設定。5.根據權利要求2或3所述的方法,其特征在于,所述計算所述各個瓦片的紋理圖片的坐標包括: 根據所述瓦片地圖包含的所有瓦片集的屬性信息、第三公式、第四公式、第五公式和第六公式計算所述各個瓦片的紋理圖片的坐標; 其中,所述第三公式為:ts,j,Q = ((n/C*Tff)/Iff, (n% C*TH)/IH); 所述第四公式為=((n/C*Tff)/Iff, (n% C*TH+TH)/IH);所述第五公式為:ts,」,2 = ((n/C*Tff+Tff)/Iff, (n% C*TH)/IH);所述第六公式為:ts,」,3 = ((n/C*Tff+Tff)/Iff, (n% C*TH+TH)/IH); 其中,表示s層中瓦片j的紋理圖片的左上角頂點坐標,tyy表示s層中瓦片j的紋理圖片的左下角頂點坐標,t“2表示s層中瓦片j的紋理圖片的右上角頂點坐標,表示s層中瓦片j的紋理圖片的右下角頂點坐標,TW為s層中瓦片j對應的瓦片集的瓦片寬度,TH為s層中瓦片j對應的瓦片集的瓦片高度,IW為s層中瓦片j對應的瓦片集的圖片寬度,IH為s層中瓦片j對應的瓦片集的圖片高度,η為s層中瓦片j的全局標識量減去s層中瓦片j對應的瓦片集中第一個瓦片的全局標識量;其中,C = Iff/TW, R = IH/TH。6.一種基于OpenGL的瓦片地圖創建裝置,其特征在于,包括: 獲取單元,用...

    【專利技術屬性】
    技術研發人員:秦龍龍盧偉超
    申請(專利權)人:TCL集團股份有限公司
    類型:發明
    國別省市:廣東;44

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产精品无码翘臀在线观看 | 亚洲AV无码欧洲AV无码网站| 亚洲AV无码XXX麻豆艾秋| 亚洲爆乳无码专区www| 伊人无码精品久久一区二区| 精品久久久久久无码中文字幕漫画| 国产精品无码DVD在线观看| 乱人伦中文无码视频在线观看| 白嫩无码人妻丰满熟妇啪啪区百度| 亚洲国产成人片在线观看无码 | 午夜爽喷水无码成人18禁三级| 本免费AV无码专区一区| 最新中文字幕av无码专区 | 亚洲av永久无码精品网站 | 亚洲大尺度无码无码专线一区| 综合无码一区二区三区| 亚洲久热无码av中文字幕| 国产50部艳色禁片无码| 亚洲男人第一无码aⅴ网站| 亚洲av无码专区在线电影| 久久国产亚洲精品无码| 国产免费无码一区二区| 亚洲人成无码网WWW| 日韩美无码五月天| 无码专区国产无套粉嫩白浆内射| 人妻精品久久无码区洗澡| 久久精品中文字幕无码绿巨人| 国产免费无码AV片在线观看不卡| 久久无码精品一区二区三区 | 无码日韩人妻AV一区二区三区| 无码精品A∨在线观看免费 | 亚洲成A人片在线观看无码3D| 亚洲av无码成人影院一区| 99久久无码一区人妻a黑| 毛片免费全部播放无码| 人妻少妇看A偷人无码电影| 91精品久久久久久无码| 午夜无码熟熟妇丰满人妻| 性色AV无码中文AV有码VR| 亚洲AV中文无码乱人伦| 国产色综合久久无码有码|