亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種三維地形建模方法及系統(tǒng)的制作方法

文檔序號(hào):6585505閱讀:196來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種三維地形建模方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及GIS技術(shù)領(lǐng)域,特別是涉及一種三維地形建模方法及系統(tǒng)。
背景技術(shù)
GIS即地理信息系統(tǒng)(Geographic Information System),是一種基于計(jì)算機(jī)的工 具,它可以對(duì)地球上存在的東西和發(fā)生的事件進(jìn)行成圖和分析。GIS技術(shù)把地圖這種獨(dú)特的 視覺(jué)化效果和地理分析功能與一般的數(shù)據(jù)庫(kù)操作(例如查詢(xún)和統(tǒng)計(jì)分析等)集成在一起。 這種能力使GIS與其他信息系統(tǒng)相區(qū)別,從而使其在廣泛的公眾和個(gè)人企事業(yè)單位中解釋 事件、預(yù)測(cè)結(jié)果、規(guī)劃戰(zhàn)略等中具有實(shí)用價(jià)值。地理信息系統(tǒng)廣泛應(yīng)用于資源調(diào)查、環(huán)境評(píng) 估、災(zāi)害預(yù)測(cè)、國(guó)土管理、城市規(guī)劃、郵電通訊、交通運(yùn)輸、軍事公安、水利電力、公共設(shè)施管 理、農(nóng)林牧業(yè)、統(tǒng)計(jì)、商業(yè)金融等幾乎所有領(lǐng)域。GIS中常使用三維建模技術(shù)。三維模型是物體的三維多邊形表示,通常用計(jì)算機(jī)或 者其它視頻設(shè)備進(jìn)行顯示。顯示的物體是可以是現(xiàn)實(shí)世界的實(shí)體,也可以是虛構(gòu)的東西,既 可以小到原子,也可以大到很大的尺寸。任何物理自然界存在的東西都可以用三維模型表 示。三維模型廣泛用于任何使用三維圖形的地方,如用于油田開(kāi)發(fā)、地質(zhì)研究等多個(gè)領(lǐng)域的 地理信息數(shù)據(jù)處理中。三維建模的方法有多種,常見(jiàn)的生成三維地形的方法是使用圖像處理。但是,使用 圖像處理來(lái)實(shí)現(xiàn)三維地形,需要自己構(gòu)建光照模型,因此需要計(jì)算大量的光照,影響了系統(tǒng) 效率。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種三維地形建模方法及系統(tǒng),以解決自己構(gòu) 建光照模型影響系統(tǒng)效率的問(wèn)題。為了解決上述問(wèn)題,本發(fā)明公開(kāi)了一種三維地形建模方法,包括讀取高度數(shù)據(jù);將高度數(shù)據(jù)轉(zhuǎn)換為三維空間坐標(biāo),建立三維模型;計(jì)算所述三維模型中每個(gè)頂點(diǎn)的顏色信息和法向量;對(duì)所述三維模型進(jìn)行渲染。優(yōu)選的,所述方法還包括將紋理數(shù)據(jù)映射到所述三維模型的渲染結(jié)果上,并輸出顯示。優(yōu)選的,使用D3D建立三維模型,并在建模過(guò)程中使用D3D提供的緩沖存儲(chǔ)建模數(shù) 據(jù)。優(yōu)選的,計(jì)算頂點(diǎn)的顏色信息包括通過(guò)插值預(yù)置高度數(shù)據(jù)與顏色值的對(duì)應(yīng)關(guān)系;根據(jù)所述對(duì)應(yīng)關(guān)系,查找頂點(diǎn)的顏色信息。優(yōu)選的,計(jì)算頂點(diǎn)的法向量包括
根據(jù)頂點(diǎn)的高度數(shù)據(jù)計(jì)算頂點(diǎn)的法向量;利用指數(shù)函數(shù),對(duì)所述法向量的χ分量和y分量分別進(jìn)行指數(shù)增強(qiáng)。優(yōu)選的,所述高度數(shù)據(jù)為SRTM數(shù)據(jù),所述SRTM數(shù)據(jù)以預(yù)定義的文件格式存儲(chǔ);并 且,所述SRTM數(shù)據(jù)按照經(jīng)緯度等分為數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的經(jīng)緯度間隔相等,每個(gè)SRTM數(shù) 據(jù)塊按照分辨率分為不同等級(jí)的多個(gè)SRTM文件;所述預(yù)定義的文件格式包括文件頭和數(shù)據(jù)部分,其中,文件頭用于描述SRTM數(shù)據(jù) 塊中所有點(diǎn)的信息,每個(gè)點(diǎn)的信息包括圖像寬度、圖像高度、1個(gè)像素點(diǎn)所占經(jīng)度范圍、1個(gè) 像素點(diǎn)所占緯度范圍、左下點(diǎn)經(jīng)度坐標(biāo)和左下點(diǎn)緯度坐標(biāo);數(shù)據(jù)部分用于按照先左后右、先 下后上的方式存儲(chǔ)文件頭所描述的所有點(diǎn)的高度信息。優(yōu)選的,所述讀取高度數(shù)據(jù)包括根據(jù)屏幕圖像上不同的位置,讀取不同等級(jí)的SRTM文件;根據(jù)以下計(jì)算式確定某個(gè)點(diǎn)(經(jīng)度坐標(biāo)為L(zhǎng),緯度坐標(biāo)為B)在所讀取的SRTM文件 數(shù)據(jù)部分的位置((B-m_dBLeftBottom)/m_dBPerPixel)*m_nffidth+(L-m_dLLeftBottom)/m_ dLPerPixel ;其中,m_dBLeftBottom表示左下點(diǎn)緯度坐標(biāo),m_dBPerPixel表示1個(gè)像素點(diǎn)所占 緯度范圍,m_nffidth表示圖像寬度,m_dLLeftBottom表示左下點(diǎn)經(jīng)度坐標(biāo),m_dLPerPixel 表示1個(gè)像素點(diǎn)所占經(jīng)度范圍。本發(fā)明還提供了一種三維地形建模系統(tǒng),包括數(shù)據(jù)讀取模塊,用于讀取高度數(shù)據(jù);模型構(gòu)建模塊,用于將高度數(shù)據(jù)轉(zhuǎn)換為三維空間坐標(biāo),建立三維模型;計(jì)算模塊,用于計(jì)算所述三維模型中每個(gè)頂點(diǎn)的顏色信息和法向量;
渲染模塊,用于對(duì)所述三維模型進(jìn)行渲染。優(yōu)選的,所述系統(tǒng)還包括紋理映射模塊,用于將紋理數(shù)據(jù)映射到所述三維模型的渲染結(jié)果上,并輸出顯示。優(yōu)選的,所述高度數(shù)據(jù)為SRTM數(shù)據(jù),所述SRTM數(shù)據(jù)以預(yù)定義的文件格式存儲(chǔ);并 且,所述SRTM數(shù)據(jù)按照經(jīng)緯度等分為數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的經(jīng)緯度間隔相等,每個(gè)SRTM數(shù) 據(jù)塊按照分辨率分為不同等級(jí)的多個(gè)SRTM文件;所述預(yù)定義的文件格式包括文件頭和數(shù)據(jù)部分,其中,文件頭用于描述SRTM數(shù)據(jù) 塊中所有點(diǎn)的信息,每個(gè)點(diǎn)的信息包括圖像寬度、圖像高度、1個(gè)像素點(diǎn)所占經(jīng)度范圍、1個(gè) 像素點(diǎn)所占緯度范圍、左下點(diǎn)經(jīng)度坐標(biāo)和左下點(diǎn)緯度坐標(biāo);數(shù)據(jù)部分用于按照先左后右、先 下后上的方式存儲(chǔ)文件頭所描述的所有點(diǎn)的高度信息。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)首先,本發(fā)明使用D3D三維引擎構(gòu)建三維模型,由于D3D三維引擎提供了建模、光 照等模擬,很好地符合了制作三維地形的要求,所以不需要自己構(gòu)建光照模型,提高了系統(tǒng)效率。其次,本發(fā)明讀取的高度數(shù)據(jù),是將原始SRTM數(shù)據(jù)轉(zhuǎn)換為預(yù)定義格式后存儲(chǔ)的數(shù) 據(jù),由于采用了這種預(yù)定義的文件格式,可以較快定位某個(gè)經(jīng)緯度點(diǎn)在屏幕圖像中的位置。 而且,還對(duì)格式轉(zhuǎn)換后的SRTM文件按照分辨率進(jìn)行了分級(jí),每一級(jí)別對(duì)應(yīng)一種分辨率,這種文件分級(jí)方法,可以滿(mǎn)足屏幕圖像中不同位置需要不同級(jí)別文件的要求,很好地符合了 非經(jīng)緯度線(xiàn)性投影模式下,不同位置需要不同分辨率精度的文件的需求。而且,世界范圍內(nèi) 同一級(jí)別的文件個(gè)數(shù)是相等的(即所有的LevelJK)級(jí)別的文件個(gè)數(shù)與所有的Level_01的 文件個(gè)數(shù)相等),不會(huì)導(dǎo)致小文件過(guò)多等問(wèn)題。再次,本發(fā)明通過(guò)高度數(shù)據(jù)來(lái)構(gòu)造頂點(diǎn)的顏色,根據(jù)顏色插值點(diǎn)構(gòu)造一個(gè)高度數(shù) 據(jù)與顏色信息一一對(duì)應(yīng)的顏色插值表,通過(guò)查表的方式來(lái)快速查詢(xún)每個(gè)頂點(diǎn)的顏色值。最后,本發(fā)明提出了一種改進(jìn)的法向量計(jì)算方法,該方法首先通過(guò)高度數(shù)據(jù)計(jì)算 法向量,然后進(jìn)一步對(duì)該法向量的X分量和y分量進(jìn)行增強(qiáng),從而增加了立體感,改善了顯 示效果。而且,本發(fā)明還提供了兩種增強(qiáng)方法,一種是線(xiàn)性增強(qiáng),另一種是指數(shù)增強(qiáng),其中后 者的增強(qiáng)效果更佳。


圖1是本發(fā)明實(shí)施例所述一種三維地形建模方法的流程圖;圖2是本發(fā)明實(shí)施例中利用高度數(shù)據(jù)建模的流程圖;圖3是本發(fā)明實(shí)施例中顏色與高度的對(duì)應(yīng)關(guān)系圖;圖4是本發(fā)明實(shí)施例中直接使用由高度數(shù)據(jù)計(jì)算出來(lái)的法向量作為頂點(diǎn)法向量 的顯示效果圖;圖5是本發(fā)明實(shí)施例中法向量計(jì)算示意圖;圖6是本發(fā)明實(shí)施例中對(duì)法向量進(jìn)行線(xiàn)性增強(qiáng)的顯示效果圖;圖7. 1和7. 2是本發(fā)明實(shí)施例中指數(shù)函數(shù)的曲線(xiàn)示意圖;圖8是本發(fā)明實(shí)施例中對(duì)法向量進(jìn)行指數(shù)增強(qiáng)的顯示效果圖;圖9是本發(fā)明實(shí)施例中紋理繪制的流程圖;圖10是本發(fā)明實(shí)施例中南半球投影下的中國(guó)地圖;圖11是本發(fā)明實(shí)施例所述一種三維地形建模系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。由于D3D三維引擎提供了建模、光照等模擬,很好地符合了制作三維地形的要求, 因此本發(fā)明使用D3D三維引擎構(gòu)建三維模型,不需要自己構(gòu)建光照模型,提高了系統(tǒng)效率。其中,Direct 3D(D3D)是微軟為提高3D游戲在WIN 95/98中的顯示性能而開(kāi)發(fā) 的顯示程序,是基于微軟的通用對(duì)象模式COMO^ommon ObjectMode)的3D圖形API。下面通過(guò)實(shí)施例進(jìn)行詳細(xì)說(shuō)明。參照?qǐng)D1,是本發(fā)明實(shí)施例所述一種三維地形建模方法的流程圖。在圖像顯示的過(guò)程中,每一幀的圖像都需要經(jīng)過(guò)高程建模、渲染、紋理繪制、輸出 顯示等過(guò)程,其中后一幀是對(duì)前一幀的更新。下面將以一幀圖像的整個(gè)建模過(guò)程為例進(jìn)行 說(shuō)明。在數(shù)據(jù)建模的過(guò)程中會(huì)使用到兩種數(shù)據(jù)塊一種是高度數(shù)據(jù),用來(lái)進(jìn)行建模;另 一種是紋理數(shù)據(jù),用于進(jìn)行紋理貼圖,從而美化其顯示效果。
步驟101,讀取高度數(shù)據(jù);步驟102,將高度數(shù)據(jù)轉(zhuǎn)換為三維空間坐標(biāo),建立三維模型;得到高度數(shù)據(jù)以后,用該高度數(shù)據(jù)建立三維網(wǎng)格,實(shí)踐證明,如果想要獲得好的顯 示效果,每個(gè)像素需要建立兩個(gè)三角面片。在建模過(guò)程中,可以使用D3D提供的緩沖區(qū)來(lái)緩 存當(dāng)前幀的所有建模數(shù)據(jù),這樣可以節(jié)約內(nèi)存(或顯存)。參照?qǐng)D2,以圖像大小720*576為例,詳細(xì)介紹建模過(guò)程步驟201,創(chuàng)建頂點(diǎn)緩沖區(qū);如果創(chuàng)建成功,則繼續(xù)步驟202 ;否則,結(jié)束。其中,所述頂點(diǎn)是指三角面片的頂點(diǎn)。因?yàn)樾枰⒌娜切螖?shù)量為720*576拉,這些三角形用到的頂點(diǎn)數(shù)量為 (720+1) * (576+1),所以創(chuàng)建的頂點(diǎn)緩沖區(qū)的大小為721*577。步驟202,創(chuàng)建索引緩沖區(qū);如果創(chuàng)建成功,則繼續(xù)步驟203 ;否則,結(jié)束。因?yàn)槊總€(gè)三角形需要三個(gè)頂點(diǎn),所以創(chuàng)建的索引緩沖區(qū)的大小為720*576*2*3。步驟203,計(jì)算頂點(diǎn)的三維坐標(biāo)。頂點(diǎn)的三維坐標(biāo)表示為(X,y,ζ),其中χ、y 相鄰兩個(gè)頂點(diǎn)的間距者設(shè)為1 ;ζ 計(jì)算出1個(gè)經(jīng)度在三維空間的平均跨度IDistance,由于赤道附近1經(jīng)度的跨 度大約為110000米,所以1米在三維空間的跨度約為lDintance/110000,如果讀取的高度 數(shù)據(jù)的大小為 shDem 米,則z = shDem*blDisntance/110000。上述過(guò)程中,對(duì)第一幀圖像建模時(shí)需要?jiǎng)?chuàng)建頂點(diǎn)緩沖區(qū)和索引緩沖區(qū),后續(xù)圖像 幀則不需要重新創(chuàng)建,只是更新頂點(diǎn)的三維坐標(biāo)即可。步驟103,計(jì)算所述三維模型中每個(gè)頂點(diǎn)的顏色信息;每個(gè)頂點(diǎn)都有高度信息,可以通過(guò)高度信息來(lái)構(gòu)造該頂點(diǎn)的顏色。參照?qǐng)D3所示, 添加幾個(gè)顏色插值點(diǎn),用線(xiàn)性插值的方法來(lái)計(jì)算所有高度所對(duì)應(yīng)的顏色值。由于高度數(shù)據(jù)都是short型,而且基本分布在0-8000米之間,為了快速計(jì)算顏色, 可以根據(jù)顏色插值點(diǎn)構(gòu)造一個(gè)顏色插值表,通過(guò)查表的方式來(lái)快速查詢(xún)每個(gè)頂點(diǎn)的顏色值。步驟104,計(jì)算所述三維模型中每個(gè)頂點(diǎn)的法向量;在運(yùn)用D3D渲染三維地形時(shí),如果直接使用通過(guò)高度數(shù)據(jù)計(jì)算出的法向量進(jìn)行渲 染,渲染出的三維立體效果會(huì)很差,參照?qǐng)D4所示。這是因?yàn)榈乇淼母叨绕鸱h(yuǎn)小于地面的 距離,比如泰山連綿200多公里,而其最高處也不過(guò)1500多米,這就導(dǎo)致了計(jì)算出的法向量 的χ分量和y分量過(guò)小。雖然通過(guò)高度數(shù)據(jù)計(jì)算出的是法向量的真實(shí)值,但渲染效果不佳, 因此需要對(duì)法向量的χ分量、y分量適當(dāng)增強(qiáng),從而增加立體感,改善顯示效果?;谏鲜龇治?,本實(shí)施例采用的頂點(diǎn)法向量計(jì)算方法如下第一步,通過(guò)高度數(shù)據(jù)計(jì)算頂點(diǎn)的法向量;參照?qǐng)D5,計(jì)算過(guò)程如下如果點(diǎn)(χ = i,y = j)的空間高度為Zij,則該點(diǎn)的三維坐標(biāo)為(χ = i,y = j,ζ =,該點(diǎn)的法向量跟其周?chē)?個(gè)點(diǎn)的空間位置相關(guān)。最簡(jiǎn)單的方式是構(gòu)造如圖所示的
7四個(gè)三角形(1,2,3,4),然后分別計(jì)算四個(gè)三角形的法向量,把這四個(gè)法向量平均,就可得到空間點(diǎn)(X—i,y—j,Z—Zij)的法向量。
其中,對(duì)于每個(gè)三角形的法向量計(jì)算,有個(gè)比較好的方法先計(jì)算出圖中四個(gè)箭頭的向量值,然后分別用箭頭的向量值兩兩叉乘,即可計(jì)算出四個(gè)三角形的法向量,這樣的計(jì)算量較小。當(dāng)然,圖中箭頭的方向也可以改變,但最終的目標(biāo)是計(jì)算出的四個(gè)三角形的法向量方向保持一致。
第二步,對(duì)所述法向量的X分量和y分量進(jìn)行增強(qiáng)。
本實(shí)施例提供了兩種增強(qiáng)方式,分別是線(xiàn)性增強(qiáng)和指數(shù)增強(qiáng),具體如下
l1線(xiàn)性增強(qiáng)
即利用線(xiàn)性函數(shù),對(duì)所述法向量的X分量和y分量進(jìn)行線(xiàn)性增強(qiáng)。
例如,令n。rmal.X表示法向量的X分量,令n。rmal.y表示法向量的y分量,令k表示調(diào)節(jié)系數(shù)
n。rmal.X—k*tl。rmal.X
]n。rmal.y—k*tl。rmal.y;
調(diào)節(jié)k的值,就可以增強(qiáng)渲染的立體感。
線(xiàn)性增強(qiáng)的顯示效果圖如圖6所示,是k一4的渲染顯示效果。
但是,從圖6中可以看出,圖像中有些地方的立體感依然不夠明顯(法向量過(guò)小),而有些地方卻過(guò)度曝光(法向量過(guò)大)。因此,要想獲得較好的顯示效果,線(xiàn)性增強(qiáng)的方式還不夠完善。因此,本實(shí)施例提出了第二種指數(shù)增強(qiáng)的方式。
21指數(shù)增強(qiáng)
即利用指數(shù)函數(shù),對(duì)所述法向量的X分量和y分量進(jìn)行指數(shù)增強(qiáng)。
從上述圖4和圖6的對(duì)比可知,希望得到的向量增強(qiáng)方式為在法向量值較小的地方,希望立體感增加的較為明顯;而在法向量值較大的地方,希望立體感增加的不要太明顯。而指數(shù)函數(shù)正符合這種要求。
指數(shù)函數(shù)大致如圖7.1所示
是分段指數(shù)函數(shù)
oo-I f(X)一k*(1一eXp(一X*d));(X>一o)
0]]f(X)一一k*(1一eXp(X*d));(X<o)
其中,k和d是調(diào)節(jié)系數(shù)。
圖7.1所示的指數(shù)函數(shù)很好地滿(mǎn)足了這種要求。通過(guò)設(shè)置不同的k和d值,就能得到不同的渲染結(jié)果。
而當(dāng)k—l,d—lo的時(shí)候,該函數(shù)的函數(shù)曲線(xiàn)如圖7.2所示。
使用所述指數(shù)函數(shù)分別對(duì)法向量的X分量和y分量進(jìn)行增強(qiáng),渲染結(jié)果如圖8所不。
將圖8分別與圖4和圖6比較,可以看出,圖8的渲染顯示效果最好。
步驟105,對(duì)所述三維模型進(jìn)行渲染;
完成上述步驟之后,就可以提交渲染了,即利用D3D三維引擎進(jìn)行渲染。
步驟106,將紋理數(shù)據(jù)映射到所述三維模型的渲染結(jié)果上,并輸出顯示。
地圖中除了高度信息以外,還需要國(guó)界1省界1河流等紋理數(shù)據(jù),再畫(huà)好這些紋理數(shù)據(jù),就可以得到絢麗的三維地圖了。高度建模只是為了將地貌的高度起伏變化呈現(xiàn)出來(lái), 而顯示效果主要是由紋理來(lái)表示。紋理數(shù)據(jù)主要是指航拍圖像或者其他的地形地貌圖像, 但還有一部數(shù)據(jù)是用戶(hù)定制數(shù)據(jù),這部分?jǐn)?shù)據(jù)會(huì)根據(jù)用戶(hù)的不同需求而臨時(shí)改變或后期產(chǎn) 生,如河流、國(guó)家邊界、區(qū)域著色等。參照?qǐng)D9,是本發(fā)明實(shí)施例中紋理繪制的流程圖。步驟901,讀取紋理文件信息;所述紋理文件通常為shape文件格式。Siapefile文件是美國(guó)環(huán)境系統(tǒng)研究所 (ESRI)所研制的GIS文件系統(tǒng)格式文件,是工業(yè)標(biāo)準(zhǔn)的矢量數(shù)據(jù)文件。Shapefile將空間特 征表中的非拓?fù)鋷缀螌?duì)象和屬性信息存儲(chǔ)在數(shù)據(jù)集中,特征表中的幾何對(duì)象存為以坐標(biāo)點(diǎn) 集表示的圖形文件-SHP文件,Shapefile文件并不含拓?fù)?Topological)數(shù)據(jù)結(jié)構(gòu)。一個(gè) Shape文件包括三個(gè)文件一個(gè)主文件(*. shp),一個(gè)索引文件(*. shx),和一個(gè)dBASE(*. dbf)表。主文件是一個(gè)直接存取、變長(zhǎng)度記錄的文件,其中每個(gè)記錄描述構(gòu)成一個(gè)地理特征 (Feature)的所有vertices坐標(biāo)值。在索引文件中,每條記錄包含對(duì)應(yīng)主文件記錄距離主 文件頭開(kāi)始的偏移量,dBASE表包含SHP文件中每一個(gè)!Mature的特征屬性,表中幾何記錄 和屬性數(shù)據(jù)之間的一一對(duì)應(yīng)關(guān)系是基于記錄數(shù)目的ID。在dBASE文件中的屬性記錄必須和 主文件中的記錄順序是相同的。圖形數(shù)據(jù)和屬性數(shù)據(jù)通過(guò)索引號(hào)建立一一對(duì)應(yīng)的關(guān)系。步驟902,將紋理數(shù)據(jù)轉(zhuǎn)換為三維空間坐標(biāo);步驟903,使用⑶1+(Graphics Device hterface,圖形設(shè)備接口)的方式繪制河 流、邊界等紋理;步驟904,將紋理映射到三維模型的渲染結(jié)果上,并輸出到顯示器。在本發(fā)明實(shí)施例中所述的高度數(shù)據(jù),是指SRTM數(shù)據(jù)。SRTM數(shù)據(jù)是一種存儲(chǔ)地表 高度信息的數(shù)據(jù)SRTM數(shù)據(jù)主要是由美國(guó)太空總署(NASA)和國(guó)防部國(guó)家測(cè)繪局(NIMA)聯(lián) 合測(cè)量的,SRTM的全稱(chēng)是Shuttle RadarTopography Mission,即航天飛機(jī)雷達(dá)地形測(cè)繪使 命。圖1中步驟101讀取的不是原始的SRTM數(shù)據(jù),而是經(jīng)過(guò)格式轉(zhuǎn)換及文件分級(jí)后存 儲(chǔ)的SRTM數(shù)據(jù)。在地圖制作過(guò)程中,為了滿(mǎn)足地圖制作系統(tǒng)的速度,需要較為快速的讀取 SRTM數(shù)據(jù)。而且,在制作地圖過(guò)程中,通常要改變投影模式,投影模式的轉(zhuǎn)換過(guò)程中也需要 快速查找SRTM數(shù)據(jù)。本發(fā)明實(shí)施例主要從兩個(gè)方面對(duì)原始SRTM數(shù)據(jù)進(jìn)行處理第一,將原始SRTM文件轉(zhuǎn)換為預(yù)定義的文件格式存儲(chǔ);這種文件結(jié)構(gòu),可以較快定位某個(gè)經(jīng)緯度點(diǎn)在屏幕圖像中的位置。第二,將SRTM數(shù)據(jù)按照分辨率進(jìn)行分級(jí),每個(gè)等級(jí)的數(shù)據(jù)分辨率不同。這種文件分級(jí)方法,可以滿(mǎn)足屏幕圖像中不同位置需要不同級(jí)別文件的要求,很 好地符合了非經(jīng)緯度線(xiàn)性投影模式下,不同位置需要不同分辨率精度的文件的需求。而且, 世界范圍內(nèi)同一級(jí)別的文件個(gè)數(shù)是相等的(即所有的LevelJK)級(jí)別的文件個(gè)數(shù)與所有的 Leveljn的文件個(gè)數(shù)相等),不會(huì)導(dǎo)致小文件過(guò)多等問(wèn)題。下面分別說(shuō)明這兩點(diǎn)。1、將原始SRTM文件轉(zhuǎn)換為預(yù)定義的文件格式存儲(chǔ)預(yù)定義的文件是按照經(jīng)緯度線(xiàn)性投影方式來(lái)存儲(chǔ)的,包括文件頭和數(shù)據(jù)部分。
其中,文件頭的定義如表1 :
4個(gè)字節(jié)(DWORD)文件版本號(hào)4個(gè)字節(jié)(INT)圖像寬度4個(gè)字節(jié)(INT)圖像高度8個(gè)字節(jié)(DOUBLE)1個(gè)像素點(diǎn)所占經(jīng)度范圍8個(gè)字節(jié)(DOUBLE)1個(gè)像素點(diǎn)所占緯度范圍8個(gè)字節(jié)(DOUBLE)左下點(diǎn)經(jīng)度坐標(biāo)8個(gè)字節(jié)(DOUBLE)左下點(diǎn)緯度坐標(biāo)4個(gè)字節(jié)(DWORD)保留14個(gè)字節(jié)(DWORD)保留2表1其中,“保留1”和“保留2”是預(yù)留的字節(jié),用于擴(kuò)展使用。預(yù)定義文件的數(shù)據(jù)部分存儲(chǔ)所有文件頭所描述的所有點(diǎn)的高度信息,每個(gè)點(diǎn)都是 一個(gè)short型,占兩位,按照先左后右、先下后上的方式存儲(chǔ)。以左下點(diǎn)經(jīng)度坐標(biāo)為85度, 緯度坐標(biāo)為30度,圖像高度為200,圖像寬度為200,1像素占經(jīng)度范圍為0. 025,1像素占緯 度范圍為0. 025為例,它的數(shù)據(jù)部分如表2
位置(字節(jié))數(shù)據(jù)類(lèi)型存儲(chǔ)內(nèi)容0-1short點(diǎn)(經(jīng)度85. 000,緯度30. 000)的高度2-3short點(diǎn)(經(jīng)度85. 025,緯度30. 000)的高度4-5short點(diǎn)(經(jīng)度85. 050,緯度30. 000)的高度200-201short點(diǎn)(經(jīng)度85. 000,緯度30. 025)的高度202-203short點(diǎn)(經(jīng)度85. 025,緯度30. 025)的高度204-205short點(diǎn)(經(jīng)度85. 050,緯度30. 025)的高度表 2
10
基于表1和表2,存儲(chǔ)左下點(diǎn)的經(jīng)度坐標(biāo)、左下點(diǎn)的緯度坐標(biāo)以及1個(gè)像素所占的 經(jīng)度范圍、緯度范圍,其主要目的是快速找到某個(gè)經(jīng)緯度點(diǎn)在文件數(shù)據(jù)部分中的位置。例如,若文件類(lèi)的成員變量如下UINT m_nffidth ;// 圖像寬度UINT m_nHeight ;// 圖像高度double m_dLPerPixel ;//每個(gè)像素所占的經(jīng)度double m_dBPerPixel ;//每個(gè)像素所占的緯度double m_dLLeftBottom ;//左下點(diǎn)的經(jīng)度坐標(biāo)double m_dBLeftBottom ;//左下點(diǎn)的緯度坐標(biāo)則點(diǎn)(經(jīng)度坐標(biāo)為L(zhǎng),緯度坐標(biāo)為B)在文件數(shù)據(jù)部分的位置為((B-m_dBLeftBottom)/m_dBPerPixel)*m_nffidth+(L-m_dLLeftBottom)/m_ dLPerPixelο通過(guò)以上計(jì)算式,就可以快速定位某個(gè)經(jīng)緯度點(diǎn)在屏幕圖像中的位置。2、將SRTM數(shù)據(jù)按照分辨率進(jìn)行分級(jí),每個(gè)等級(jí)的數(shù)據(jù)分辨率不同參照?qǐng)D10,是本發(fā)明實(shí)施例中南半球投影下的中國(guó)地圖。圖10中的灰色線(xiàn)代表間距為5度的經(jīng)緯線(xiàn),經(jīng)緯線(xiàn)把圖像分成很多個(gè)“方格”(即 數(shù)據(jù)塊),每個(gè)“方格”所覆蓋的經(jīng)緯度范圍是相同的,都為5經(jīng)度*5緯度。從圖10中可以 發(fā)現(xiàn),在圖像中不同的位置,每個(gè)“方格”所占的面積不等,也就表示,每個(gè)“方格”所需要的 數(shù)據(jù)文件的精度等級(jí)是不一樣的。如果對(duì)整幅圖像讀入同一精度等級(jí)的文件,如果按照最 高精度等級(jí)的文件來(lái)讀,則造成讀入的文件過(guò)大,影響效率、浪費(fèi)內(nèi)存;如果不按照最高精 度等級(jí)的文件來(lái)讀,則會(huì)造成圖像某些位置模糊不清。由于每個(gè)“方格”所需要的精度可以不一樣,所以有必要以每個(gè)方格為單位,進(jìn)行 分級(jí)。分級(jí)的方法為(1)以每個(gè)“方格”為單位進(jìn)行分級(jí);(2)每個(gè)“方格”的范圍都為5經(jīng)度*5緯度;(3)每個(gè)“方格”分為6個(gè)不同級(jí)別的文件,分別為L(zhǎng)evelJK)至LeVel_05。其中, Level_00的精度最低,Level_05的精度最高,下一級(jí)別的精度約為上一級(jí)別精度的2倍。每個(gè)級(jí)別文件的信息如表3
權(quán)利要求
1.一種三維地形建模方法,其特征在于,包括 讀取高度數(shù)據(jù);將高度數(shù)據(jù)轉(zhuǎn)換為三維空間坐標(biāo),建立三維模型; 計(jì)算所述三維模型中每個(gè)頂點(diǎn)的顏色信息和法向量; 對(duì)所述三維模型進(jìn)行渲染。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括 將紋理數(shù)據(jù)映射到所述三維模型的渲染結(jié)果上,并輸出顯示。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于使用D3D建立三維模型,并在建模過(guò)程中使用D3D提供的緩沖存儲(chǔ)建模數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,計(jì)算頂點(diǎn)的顏色信息包括 通過(guò)插值預(yù)置高度數(shù)據(jù)與顏色值的對(duì)應(yīng)關(guān)系; 根據(jù)所述對(duì)應(yīng)關(guān)系,查找頂點(diǎn)的顏色信息。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,計(jì)算頂點(diǎn)的法向量包括 根據(jù)頂點(diǎn)的高度數(shù)據(jù)計(jì)算頂點(diǎn)的法向量;利用指數(shù)函數(shù),對(duì)所述法向量的χ分量和y分量分別進(jìn)行指數(shù)增強(qiáng)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于所述高度數(shù)據(jù)為SRTM數(shù)據(jù),所述SRTM數(shù)據(jù)以預(yù)定義的文件格式存儲(chǔ);并且,所述SRTM 數(shù)據(jù)按照經(jīng)緯度等分為數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的經(jīng)緯度間隔相等,每個(gè)SRTM數(shù)據(jù)塊按照分辨 率分為不同等級(jí)的多個(gè)SRTM文件;所述預(yù)定義的文件格式包括文件頭和數(shù)據(jù)部分,其中,文件頭用于描述SRTM數(shù)據(jù)塊中 所有點(diǎn)的信息,每個(gè)點(diǎn)的信息包括圖像寬度、圖像高度、1個(gè)像素點(diǎn)所占經(jīng)度范圍、1個(gè)像素 點(diǎn)所占緯度范圍、左下點(diǎn)經(jīng)度坐標(biāo)和左下點(diǎn)緯度坐標(biāo);數(shù)據(jù)部分用于按照先左后右、先下后 上的方式存儲(chǔ)文件頭所描述的所有點(diǎn)的高度信息。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述讀取高度數(shù)據(jù)包括 根據(jù)屏幕圖像上不同的位置,讀取不同等級(jí)的SRTM文件;根據(jù)以下計(jì)算式確定某個(gè)點(diǎn)(經(jīng)度坐標(biāo)為L(zhǎng),緯度坐標(biāo)為B)在所讀取的SRTM文件數(shù)據(jù) 部分的位置((B-m_dBLeftBottom)/m_dBPerPixel)*m_nffidth+(L-m_dLLeftBottom)/m_ dLPerPixel ;其中,m_dBLeftBottom表示左下點(diǎn)緯度坐標(biāo),m_dBPerPixel表示1個(gè)像素點(diǎn)所占緯度 范圍,m_nffidth表示圖像寬度,m_dLLeftBottom表示左下點(diǎn)經(jīng)度坐標(biāo),m_dLPerPixel表示 1個(gè)像素點(diǎn)所占經(jīng)度范圍。
8.—種三維地形建模系統(tǒng),其特征在于,包括 數(shù)據(jù)讀取模塊,用于讀取高度數(shù)據(jù);模型構(gòu)建模塊,用于將高度數(shù)據(jù)轉(zhuǎn)換為三維空間坐標(biāo),建立三維模型; 計(jì)算模塊,用于計(jì)算所述三維模型中每個(gè)頂點(diǎn)的顏色信息和法向量; 渲染模塊,用于對(duì)所述三維模型進(jìn)行渲染。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,還包括紋理映射模塊,用于將紋理數(shù)據(jù)映射到所述三維模型的渲染結(jié)果上,并輸出顯示。
10.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于所述高度數(shù)據(jù)為SRTM數(shù)據(jù),所述SRTM數(shù)據(jù)以預(yù)定義的文件格式存儲(chǔ);并且,所述SRTM 數(shù)據(jù)按照經(jīng)緯度等分為數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的經(jīng)緯度間隔相等,每個(gè)SRTM數(shù)據(jù)塊按照分辨 率分為不同等級(jí)的多個(gè)SRTM文件;所述預(yù)定義的文件格式包括文件頭和數(shù)據(jù)部分,其中,文件頭用于描述SRTM數(shù)據(jù)塊中 所有點(diǎn)的信息,每個(gè)點(diǎn)的信息包括圖像寬度、圖像高度、1個(gè)像素點(diǎn)所占經(jīng)度范圍、1個(gè)像素 點(diǎn)所占緯度范圍、左下點(diǎn)經(jīng)度坐標(biāo)和左下點(diǎn)緯度坐標(biāo);數(shù)據(jù)部分用于按照先左后右、先下后 上的方式存儲(chǔ)文件頭所描述的所有點(diǎn)的高度信息。
全文摘要
本發(fā)明提供了一種三維地形建模方法及系統(tǒng),所述方法包括讀取高度數(shù)據(jù);將高度數(shù)據(jù)轉(zhuǎn)換為三維空間坐標(biāo),建立三維模型;計(jì)算所述三維模型中每個(gè)頂點(diǎn)的顏色信息和法向量;對(duì)所述三維模型進(jìn)行渲染。本發(fā)明使用D3D三維引擎構(gòu)建三維模型,由于D3D三維引擎提供了建模、光照等模擬,很好地符合了制作三維地形的要求,所以不需要自己構(gòu)建光照模型,提高了系統(tǒng)效率。
文檔編號(hào)G06T17/00GK102117497SQ20091024429
公開(kāi)日2011年7月6日 申請(qǐng)日期2009年12月30日 優(yōu)先權(quán)日2009年12月30日
發(fā)明者胡守剛 申請(qǐng)人:新奧特(北京)視頻技術(shù)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1