中國(guó)地理產(chǎn)業(yè)發(fā)展中心
論文來(lái)源:中國(guó)地理信息系統(tǒng)協(xié)會(huì)第三次代表大會(huì)暨第七屆年會(huì)論文集
摘要:本文在分析三維 GIS 渲染引擎特點(diǎn)的基礎(chǔ)上,探討了針對(duì)可交互的,大數(shù)據(jù)量復(fù)雜場(chǎng)景的實(shí)時(shí)三維GIS 渲染引擎中的關(guān)鍵技術(shù)。如場(chǎng)景圖,層次細(xì)節(jié),視錐體剔除,遮擋面剔除,渲染通道等,并介紹了在SuperMap 中的應(yīng)用情況。
關(guān)鍵詞: 三維GIS,渲染引擎,場(chǎng)景圖,層次細(xì)節(jié),視錐體剔除,遮擋面剔除,渲染通道
1. 引言
今年來(lái)傳統(tǒng)的二維地理信息系統(tǒng)得到了長(zhǎng)足的發(fā)展,她使用計(jì)算機(jī)技術(shù)將傳統(tǒng)的紙質(zhì)地圖變成計(jì)算機(jī)化的“電子地圖”,從而大大地簡(jiǎn)化了人們對(duì)地圖的使用,查詢和分析,但是二維的地理信息系統(tǒng)提供給用戶的僅僅是二維的平面圖形,在可視化程度方面比傳統(tǒng)的紙質(zhì)地圖并沒(méi)有實(shí)質(zhì)性的改善[1],遠(yuǎn)遠(yuǎn)不能滿足人們的視覺(jué)要求。計(jì)算機(jī)圖形學(xué)和各種圖形硬件技術(shù)的不斷發(fā)展以及人們對(duì)視覺(jué)要求的不斷提高,為三維 GIS 的發(fā)展創(chuàng)造了條件和動(dòng)力。
隨著人們數(shù)據(jù)采集能力的不斷提高,可供 GIS 處理的數(shù)據(jù)不斷膨脹,覆蓋全球的 1KM 分辨率的數(shù)據(jù)集已經(jīng)可從 Internet 上免費(fèi)獲取,能夠覆蓋全球大部分地區(qū)的 30 米分辨率的數(shù)據(jù)集也真準(zhǔn)備中(http://www.jpl.nasa.gov/srtm/)。這樣的數(shù)據(jù)量稱之為無(wú)限大也毫不為過(guò)[2]。
如此龐大的數(shù)據(jù)量大大的提高了場(chǎng)景的復(fù)雜度,要保證渲染的實(shí)時(shí)性(每秒鐘大約產(chǎn)生 20 幀左右的圖像[3]),除了依靠圖形硬件的不斷發(fā)展外,更多的還要從軟件著手,在三維 GIS 引擎中設(shè)計(jì)高效的算法,降低場(chǎng)景渲染的復(fù)雜度。
2. 三維 GIS 渲染引擎
三維 GIS 場(chǎng)景中一般包含各種可渲染的 3D 物體,天空(SkyDome/SkyBox),地形(DEM/TIN),各種房屋樓塊,復(fù)雜模型(通過(guò) 3DS 或者 CAD 數(shù)據(jù)導(dǎo)入),樹(shù)木,道路等。三維 GIS 渲染引擎,作為一個(gè)三維 GIS 系統(tǒng)的核心部分,必須滿足各種三維場(chǎng)景的需要。并且能方便的對(duì)場(chǎng)景進(jìn)行組織和交互。
數(shù)據(jù)量的增大和顯示的實(shí)時(shí)性為三維 GIS 渲染引擎的提出了挑戰(zhàn),這就要求必須在不影響視覺(jué)效果的情況下,盡可能的對(duì)場(chǎng)景進(jìn)行簡(jiǎn)化。本文將結(jié)合在 SuperMap 中的設(shè)計(jì)實(shí)踐,探討各種場(chǎng)景簡(jiǎn)化技術(shù)的應(yīng)用。
3. 場(chǎng)景圖
如前所述,GIS 場(chǎng)景中包含各種可渲染的 3D 物體,如房屋,建筑 道路等。隨著場(chǎng)景復(fù)雜度的不斷提高,必須對(duì)這些物體進(jìn)行合理的組織才能有效的對(duì)其進(jìn)行渲染。這也是一個(gè)三維 GIS 引擎中首要解決的問(wèn)題。場(chǎng)景圖是解決這個(gè)問(wèn)題的有效手段。
場(chǎng)景圖一般是樹(shù)形數(shù)據(jù)結(jié)構(gòu),以樹(shù)的方式對(duì)復(fù)雜的場(chǎng)景進(jìn)行有序組織,場(chǎng)景組織者可以根據(jù)自己的需要設(shè)計(jì)自己的具體結(jié)構(gòu),這種結(jié)構(gòu)特別適用于對(duì)層次化結(jié)構(gòu)場(chǎng)景的管理。在 Java3D 和 VRML 中已經(jīng)得到成功的應(yīng)用[4]。
SuperMap 把場(chǎng)景按照?qǐng)鼍爸锌射秩疚矬w的關(guān)系抽象成可重復(fù)劃分的空間,每一個(gè)可渲染的物體都對(duì)應(yīng)著一塊空間。每個(gè)空間通過(guò) SceneNode 來(lái)管理,SceneNode 處理空間的移動(dòng),旋轉(zhuǎn),縮放和空間相關(guān)的行為,最后把要渲染的物體連接到 SceneNode 對(duì)應(yīng)的空間上。
每個(gè) SceneNode 對(duì)應(yīng)著樹(shù)結(jié)構(gòu)里面的一個(gè)節(jié)點(diǎn)保存與父節(jié)點(diǎn)的相對(duì)位置和指向子節(jié)點(diǎn)的指針。
更多內(nèi)容請(qǐng)查看pdf