国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于GPU的全球地形數(shù)據(jù)加速繪制技術(shù)研究

2015-08-18 00:34:51李浩相恒茂孫久虎
山東國土資源 2015年7期
關(guān)鍵詞:格網(wǎng)頂點(diǎn)繪制

李浩,相恒茂,孫久虎

(山東省國土測繪院,山東 濟(jì)南 250102)

?

基于GPU的全球地形數(shù)據(jù)加速繪制技術(shù)研究

李浩,相恒茂,孫久虎

(山東省國土測繪院,山東 濟(jì)南250102)

在對基于GPU大規(guī)模地形數(shù)據(jù)快速繪制方法的研究基礎(chǔ)上,針對GPU的批量繪制的特點(diǎn),提出了改進(jìn)的幾何體實(shí)例化方法,把它用在全球格網(wǎng)的快速繪制上。把地形數(shù)據(jù)通過重新編碼存儲在高度圖中,再結(jié)合Shader Model 3.0引入的頂點(diǎn)紋理拾取技術(shù),在GPU中進(jìn)行解碼,得到原始的DEM數(shù)據(jù),避免了在CPU上執(zhí)行頂點(diǎn)緩存的更新。實(shí)驗(yàn)證明該算法充分利用了新一代GPU的特性,降低了CPU的負(fù)擔(dān),能達(dá)到實(shí)時(shí)繪制的要求。

圖形處理器;實(shí)時(shí)繪制;四叉樹;瓦片塊;高度圖

引文格式:李浩,相恒茂,孫久虎.基于GPU的全球地形數(shù)據(jù)加速繪制技術(shù)研究[J].山東國土資源,2015,31(7):59-64.LI Hao, XIANG Hengmao, SUN Jiuhu.Research on Accelerated Rendering Technique of Global Terrain Based on GPU[J].Shandong Land and Resources,2015,31(7):59-64.

0 引言

海量地形數(shù)據(jù)實(shí)時(shí)繪制技術(shù)在GIS、虛擬現(xiàn)實(shí)、以及三維游戲中有非常重要的應(yīng)用,一直是國內(nèi)外研究的熱點(diǎn)。在GPU加速繪制技術(shù)出現(xiàn)之前,大規(guī)模地形繪制算法的研究主要集中在地形數(shù)據(jù)的簡化和裁剪技術(shù)。但是隨著地形數(shù)據(jù)的增加和現(xiàn)實(shí)需求對清晰度和真實(shí)感的要求,基于CPU的數(shù)據(jù)簡化和裁剪技術(shù)已不能滿足大規(guī)模地形實(shí)時(shí)繪制的需求。人們對于繪制地形的范圍、速度和效果的要求也隨之不斷提高。加上“數(shù)字地球”和“全球信息網(wǎng)格”[1]概念的相繼提出,建立具有多分辨率、海量數(shù)據(jù)的大規(guī)模虛擬地形場景受到越來越多的關(guān)注,其中大規(guī)模地形、海量數(shù)據(jù)的實(shí)時(shí)繪制算法對整個(gè)系統(tǒng)有著至關(guān)重要的影響。

傳統(tǒng)的地形繪制系統(tǒng)大都是基于CPU的地形繪制方法,地形數(shù)據(jù)也是通過CPU來采樣,并沒有充分發(fā)揮現(xiàn)代圖形處理器GPU的性能。因此研究如何充分利用當(dāng)前圖形硬件的特點(diǎn),使繪制算法更淋漓盡致地發(fā)揮GPU的性能,即研究面向GPU的繪制算法,對于提高大規(guī)模虛擬自然場景的實(shí)時(shí)繪制速率是非常有意義的。

2008年的SIGGRAPH會議[2]上,著名的顯卡生產(chǎn)商N(yùn)VIDIA公司根據(jù)GPU的最新特性,實(shí)現(xiàn)了基于GPU的Chunked LOD的地形繪制算法,減少了CPU的負(fù)荷,通過圖形處理器GPU使得地形繪制算法得到了很大的改進(jìn)。

2010年Filip Strugar[3]提出了CDLOD(Continuous Distance-Dependent Level of Detail for Rendering Heightmaps) 繪制地形的方法,實(shí)現(xiàn)了一種基于GPU采樣高度圖來渲染地形的技術(shù),這種方法改進(jìn)了以往依據(jù)觀察者到目標(biāo)點(diǎn)距離為基礎(chǔ)的LOD方法。

全球地形可視化框架的建立,除了海量數(shù)據(jù)的存儲、調(diào)度、繪制以外,還涉及到許多其他方面的問題。該文的研究重點(diǎn)針對以下問題:

(1)由于地形可視化算法的要求,將原始地形數(shù)據(jù)處理到符合地形繪制要求的數(shù)據(jù),往往要經(jīng)過一個(gè)數(shù)據(jù)預(yù)處理過程,主要是把大規(guī)模的地形數(shù)據(jù)處理成高度圖,利用Shader Model 3.0[4]引入的頂點(diǎn)紋理拾取技術(shù),對高度圖進(jìn)行采樣,這種利用GPU采樣的技術(shù)減輕了CPU的壓力。

(2)在數(shù)據(jù)繪制中由于圖形硬件的特殊性,“海量”數(shù)據(jù)渲染的數(shù)據(jù)級別比管理和調(diào)度中的數(shù)據(jù)級別要小得多,為了高效地管理、調(diào)度、繪制數(shù)據(jù),必須設(shè)計(jì)一種科學(xué)合理的數(shù)據(jù)組織方案,能夠快速地根據(jù)需要索引和調(diào)度數(shù)據(jù),節(jié)約數(shù)據(jù)裝配的時(shí)間,提高數(shù)據(jù)索引的速度,構(gòu)建適合于GPU框架下的地形LOD數(shù)據(jù)模型。在此基礎(chǔ)之上必須設(shè)計(jì)適應(yīng)性強(qiáng)、效率高的數(shù)據(jù)引擎,該數(shù)據(jù)引擎能根據(jù)需要從文件系統(tǒng)或者數(shù)據(jù)庫系統(tǒng)中快速索引和裝配數(shù)據(jù),滿足實(shí)時(shí)的可視化需求[5-6]。

1 基于高度圖的地形組織方法

高度圖是一個(gè)數(shù)組,數(shù)組中的每個(gè)成員指定地形頂點(diǎn)描述中的高度信息??梢园迅叨葓D想像成一個(gè)矩陣,因?yàn)槊總€(gè)元素都一一對應(yīng)于每個(gè)地形網(wǎng)格中的頂點(diǎn)。

當(dāng)保存高度圖到磁盤上時(shí),通常為高度圖的每個(gè)元素分配1個(gè)byte的內(nèi)存,所以高度的范圍是0~255,0~255的范圍對于地形的高度之間保持平滑過渡是足夠用的。但為了在程序中匹配3D世界中的物體,可能需要的范圍在0~255以外。例如,當(dāng)研究整個(gè)地球時(shí),最大的海拔高度8848.13m,那么0~255的范圍對于表示復(fù)雜的地形表面是完全不夠用的。因此,當(dāng)讀取數(shù)據(jù)進(jìn)應(yīng)用程序時(shí),給每個(gè)高度元素分配一個(gè)整型數(shù)(或浮點(diǎn)型),它允許縮放0~255范圍之外的任何大小的物品。這樣就可以有效地?cái)U(kuò)大高度圖的應(yīng)用范圍。

高度圖圖形表示法之一是灰度圖(grayscale map)。較黑的值表示地形中較低的地方,較白的值表現(xiàn)地形中較高的地方。

在Shader Model 3.0以前,雖然有很多學(xué)者把地形數(shù)據(jù)處理成高度圖,但還都是利用CPU進(jìn)行采樣獲取地形數(shù)據(jù),效率并沒有明顯的改善。但是隨著GPU的不斷更新, Shader Model 3.0的出現(xiàn),完全改變了現(xiàn)狀,Shader Model 3.0引入的頂點(diǎn)紋理拾取技術(shù),可以直接使用GPU的光柵化管道來進(jìn)行處理高度圖,將高程值存儲在頂點(diǎn)紋理中,在頂點(diǎn)著色器里查找并獲取頂點(diǎn)的高程值,避免了在CPU上執(zhí)行頂點(diǎn)緩存的更新,這樣可以節(jié)省大量的CPU資源。

其實(shí)高度圖是一個(gè)很靈活的數(shù)據(jù)格式,為了應(yīng)用的方便和需要,可以定義自己的高度圖。論文中就是自定義的高度圖,把高度圖保存成PNG。因?yàn)镻NG有4個(gè)通道,而GPU中的vector也是四維的,剛好對應(yīng)起來。

由于地形高度一般都是float,所以假設(shè)地形高度為h(單位為m),把h分成兩部分,整數(shù)部分為m,小數(shù)點(diǎn)后的四位記為n(其中n為四位數(shù),)例如h=341.34982,則m=341,n=3498。這樣做是可行的,精度可以達(dá)到0.1mm,完全能夠滿足實(shí)際應(yīng)用的需要。為了方便GPU進(jìn)行采樣對地形高程數(shù)據(jù)進(jìn)行編碼,計(jì)算r,g,b,a(其中r,g,b,a為PNG的4個(gè)通道):r=m/255;b=m% 255;g=n/255;a=n%255。

按照此編碼,用GPU進(jìn)行采樣,通過逆運(yùn)算,就可以得到原始的高程值。此過程是在GPU中并行計(jì)算的,可以充分發(fā)揮GPU的并行高效計(jì)算特性,可以加速采樣的速率,最終會提高整個(gè)系統(tǒng)的效率。

基于上述高度圖的特點(diǎn)和實(shí)際應(yīng)用的需要,同時(shí)也為了適應(yīng)全球框架下的系統(tǒng)結(jié)構(gòu),利用高度圖把全球的DEM數(shù)據(jù)進(jìn)行了重新的組織,高度圖也采用了類似于影像數(shù)據(jù)的分層分塊的思想,把全球的DEM數(shù)據(jù)劃分成瓦片塊,同時(shí)采用了四叉樹的調(diào)度方式,能夠快速的索引和調(diào)度到所需要的地形塊數(shù)據(jù),很好地適應(yīng)當(dāng)前大規(guī)模數(shù)據(jù)量的要求,能夠達(dá)到一個(gè)很好的效果。

2 地形繪制算法和客戶端繪制流程

該文采用Geometry Instancing[7]的思想,充分發(fā)揮GPU批量繪制的特性,來解決大規(guī)模地形實(shí)時(shí)高效繪制的問題,針對該文的基于GPU的地形繪制算法詳細(xì)情況如下:①創(chuàng)建一個(gè)頂點(diǎn)緩存和一個(gè)索引緩存,用來存儲實(shí)例模板;②根據(jù)視點(diǎn)的位置和視錐體的范圍,確定視野范圍內(nèi)的所有地形塊,并把它們起始點(diǎn)的經(jīng)緯度、每個(gè)網(wǎng)格的跨度、起始點(diǎn)的紋理坐標(biāo)的偏移以及層數(shù)等信息,作為實(shí)例的值傳給GPU;③在GPU中,通過每個(gè)實(shí)例的值,對原始的實(shí)例模板進(jìn)行矩陣變換(平移、縮放、旋轉(zhuǎn)等),得到每一個(gè)瓦片塊的真實(shí)的值;④在GPU中,根據(jù)紋理坐標(biāo)利用HLSL里面的采樣器對高度圖進(jìn)行采樣,并對采樣的結(jié)果進(jìn)行逆運(yùn)算,就是地形的高度值;⑤上述的信息都準(zhǔn)備好后,下一步就是渲染,把所有的實(shí)例送進(jìn)渲染管道,進(jìn)行批次渲染;⑥在漫游過程中,通過②的判斷,傳給GPU新的實(shí)例的值,循環(huán)利用上述步驟進(jìn)行計(jì)算和渲染[8-10]。該系統(tǒng)是采用C/S架構(gòu)的網(wǎng)絡(luò)三維地理信息系統(tǒng)平臺,因此要是把采集到的地形數(shù)據(jù)處理成高度圖,存放在服務(wù)端,經(jīng)過服務(wù)器,傳輸?shù)娇蛻舳?,并在客戶端進(jìn)行數(shù)據(jù)操作,最后實(shí)現(xiàn)在顯卡上繪制的過程(圖1)。

圖1 繪制流程

3 不同LOD之間的裂縫處理技術(shù)

大規(guī)模地形繪制算法中,相鄰的不同LOD瓦片塊之間會出現(xiàn)裂縫問題。對于不同的地形繪制算法,由于數(shù)據(jù)組織和調(diào)度的不同,裂縫的處理也不盡相同。根據(jù)實(shí)際需要利用morphing技術(shù)來消除相鄰的不同LOD瓦片塊之間產(chǎn)生的裂縫問題,得到了很好的效果。這樣做改善了傳統(tǒng)的繪制“裙邊”的方法,因?yàn)椤叭惯叀痹谀承┣闆r下并不適用,比如要繪制地下管道,繪制“裙邊”是一個(gè)致命的缺點(diǎn)。

Morphing漸變[11]是20世紀(jì)90年代出現(xiàn)的一種革命性的計(jì)算機(jī)圖形技術(shù),該技術(shù)使得動畫序列平滑且易于處理,即使在低檔配置的計(jì)算機(jī)系統(tǒng)上也能正常運(yùn)行。漸變是指隨著時(shí)間或距離的變化把一個(gè)形狀改變?yōu)榱硪粋€(gè)形狀,可以稱是Mesh網(wǎng)格模型。漸變網(wǎng)格模型的處理就是以時(shí)間軸或距離軸為基準(zhǔn),逐漸地改變網(wǎng)格模型頂點(diǎn)的坐標(biāo),從一個(gè)格網(wǎng)模型的形狀漸變?yōu)榱硗庖粋€(gè)(圖2)。

圖2 morphing的過程

用這種方法,每一個(gè)頂點(diǎn)依據(jù)它自己的LOD的級別進(jìn)行morphing運(yùn)算,morphing發(fā)生在每一塊或每一個(gè)節(jié)點(diǎn)之間。每個(gè)節(jié)點(diǎn)都支持不同LOD層次(它自身和高細(xì)節(jié)層次或低細(xì)節(jié)層次)之間的轉(zhuǎn)換。Morphing操作是通過頂點(diǎn)著色器把高細(xì)節(jié)層次的每8個(gè)三角形平滑過渡到低細(xì)節(jié)層次的2個(gè)三角形,其余的6個(gè)三角形則轉(zhuǎn)換為退化三角形而未被柵格化出來。這個(gè)過程可以在不同的LOD之間平滑的過渡,不會產(chǎn)生裂縫和T鏈接(圖3)。

圖3 morphing的實(shí)質(zhì)

首先,通過計(jì)算觀察者和頂點(diǎn)之間的距離來確定所需的morphing的漸變量。利用頂點(diǎn)位置來計(jì)算距離可以非常的接近,只要這個(gè)逼近函數(shù)在整個(gè)數(shù)據(jù)集域里是一致的。為了防止裂縫的產(chǎn)生,有必要使這個(gè)格網(wǎng)邊界的節(jié)點(diǎn)和鄰近格網(wǎng)的節(jié)點(diǎn)有一定的重復(fù)。在該系統(tǒng)中,x代表緯度和y代表經(jīng)度,通過它們可以變化到世界空間坐標(biāo)系下,z代表高程值,是通過采樣高度圖得到的,并用了統(tǒng)一的過濾器。

在該系統(tǒng)中漸變量用morphK表示,范圍為0~1,其中0表示沒有用morphing,具有很高的細(xì)節(jié)層次格網(wǎng),1表示完全的morphing,具有只有原來1/4的三角形個(gè)數(shù),morphK被用來逐漸地從一個(gè)漸變格網(wǎng)頂點(diǎn)過渡到對應(yīng)的沒有漸變的格網(wǎng)。假設(shè)格網(wǎng)索引為(i,j),如果i和j中至少有一個(gè)是奇數(shù),則這個(gè)點(diǎn)就被標(biāo)示為過渡頂點(diǎn),同時(shí)也可以得到它們附近的坐標(biāo)為(i-i/2,j-j/2)的點(diǎn)屬于非過渡頂點(diǎn)。

下面是用HLSL語言寫的過渡頂點(diǎn)的代碼:

const float2 g_gridDim = float2(32,32);

float2 morphVertex(float2 gridPos,float2 vertex,float morphK){

float2 fracPart = frac( gridPos.xy * g_gridDim.xy * 0.5 ) * 2.0 / g_gridDim.xy;

return vertex.xy - fracPart * g_quadScale.xy * morphK;

}

最后,z是根據(jù)紋理坐標(biāo)通過GPU采樣高度圖獲得的,紋理坐標(biāo)是利用二次線性插值計(jì)算出來的,當(dāng)一個(gè)節(jié)點(diǎn)的所有頂點(diǎn)都過渡到低細(xì)節(jié)層次的頂點(diǎn)時(shí),網(wǎng)格則有效地包含原來1/4的和低細(xì)節(jié)層次相匹配的三角形,因此可以無縫的取代它。

4 基于GPU的硬件裁剪和背面剔除技術(shù)

早期的游戲直接用包含三角形列表表示場景,盡管大部分三角形對當(dāng)前畫面沒有貢獻(xiàn),但每幀繪制時(shí)必須全部處理它們??紤]到游戲角色只能位于某個(gè)房間中,如果房門是關(guān)閉的,游戲角色可見的三角形全部位于當(dāng)前的房間中,只占到全部三角形數(shù)目的1%。一個(gè)自然的想法是剔除那些明顯不可見的99%的三角形。因此,除了場景組織外,還需要考慮裁剪的問題,主要包括視域裁剪(View-Frustum Culling)技術(shù)、背面裁剪(Back-Face Culling)技術(shù)和遮擋裁剪(Occlusion Culling)技術(shù)[12](圖4)。

圖4 裁剪技術(shù)

5 系統(tǒng)性能分析

該系統(tǒng)是在局域網(wǎng)中實(shí)現(xiàn)的C/S模式,實(shí)驗(yàn)是基于全球的地形數(shù)據(jù)進(jìn)行測試。

服務(wù)器的配置:戴爾Precision T1500;RAM 6.00GB;CPU Intel(R) Core(TM) i3 540 3.07GHz 四核處理器; Apache HTTP Server 2.2.17。

客戶端的配置:CPU Intel(R)Core(TM) i5 2.67GHz;RAM 2.98G;NVIDIA NVS 3100M顯卡。

開發(fā)環(huán)境:VS2005,DirectX 9.0,HLSL。

實(shí)驗(yàn)數(shù)據(jù):全球DEM數(shù)據(jù)采用90m分辨率的SRTM數(shù)據(jù)和全球影像數(shù)據(jù)。

以下是該系統(tǒng)的一些效果圖對比情況。

該系統(tǒng)整合了全球的影像數(shù)據(jù),采用了分層分塊的金字塔的組織方式進(jìn)行存儲和管理,無論漫游到任何一個(gè)地方,該系統(tǒng)都會快速的索引和調(diào)度到所需要的數(shù)據(jù)。同時(shí)利用高度圖把全球的DEM數(shù)據(jù)進(jìn)行了重新的組織,高度圖也采用了類似于影像數(shù)據(jù)的分層分塊的思想。不論是影像還是地形,采用了四叉樹的調(diào)度方式,能夠很好的適應(yīng)當(dāng)前大規(guī)模數(shù)據(jù)量的要求,能夠達(dá)到一個(gè)很好的效果。

圖5所示,地形格網(wǎng)以線框模式進(jìn)行繪制,可以很清晰地看到地形的格網(wǎng)構(gòu)成,這就是利用GPU采樣高度圖還原原始地形后的結(jié)果,其中顏色較亮的部分為地形高度較高的地方,顏色較暗的部分為地形高度較低的地方。這也證明了利用高度圖來組織地形數(shù)據(jù)、通過GPU進(jìn)行采樣的可行性和有效性。

圖5 地形格網(wǎng)模式

圖6所示,地形格網(wǎng)以填充模式進(jìn)行繪制,貼上影像紋理,可以顯示地表外貌。當(dāng)在系統(tǒng)的漫游的過程中,你會感受到地形的高低起伏的變化和清晰可見的影像數(shù)據(jù),同時(shí)還增加了光照計(jì)算,讓周圍的環(huán)境更像現(xiàn)實(shí)世界,增強(qiáng)了系統(tǒng)的可視化的效果。

圖6 地形填充模式

圖7所示,為裂縫處理前的效果,箭頭所指的地方可以清晰的看到不同LOD之間產(chǎn)生的裂縫。由于采用的是四叉樹和分層分塊的組織方法,不可避免地出現(xiàn)這種裂縫的情況,因?yàn)椴豢赡苋蛑粍?chuàng)建一個(gè)巨大網(wǎng)格,把所有的數(shù)據(jù)都存放在這個(gè)網(wǎng)格上。因此產(chǎn)生了如圖8所示的效果。

圖7 裂縫消除前

對于裂縫的處理,很多學(xué)者都有自己的方法,其中最常用的就是通過在不同的LOD之間繪制“裙邊”來消除裂縫,但是繪制“裙邊”并不是一個(gè)萬能的方案,當(dāng)需要繪制地形的物體時(shí),比如目前研究很多的地下管道的繪制問題,繪制“裙邊”是一個(gè)致命的缺點(diǎn)。該文把morphing技術(shù)的思想用來解決裂縫問題,雖然稍微增加了一點(diǎn)計(jì)算量,但是達(dá)到了很好的效果,如圖8所示,裂縫明顯的消除了,而且如果要繪制地下的物體,這樣做更有必要了。因此morphing技術(shù)來解決地形的裂縫是一個(gè)很好的選擇。

圖8 裂縫消除后

圖9顯示的是隨著每一幀繪制的三角形面片的增多,幀率的變化情況。隨著每幀繪制的三角形數(shù)量的增加,無論是原來基于CPU的算法還是基于GPU改進(jìn)的算法幀率都會下降。如圖10所示,在3萬個(gè)面片之內(nèi),幀率可以達(dá)到40幀以上,完全可以滿足漫游過程中實(shí)時(shí)顯示的需求,不會有任何的延遲。結(jié)合Geometry Instancing的思想,把創(chuàng)建原始的一個(gè)頂點(diǎn)緩存和一個(gè)索引緩存,通過矩陣變換(平移、縮放、旋轉(zhuǎn)等),便可以得到視野范圍內(nèi)的所有的地形塊,在傳輸帶寬不會造成系統(tǒng)瓶頸,充分利用現(xiàn)代顯卡高速并行計(jì)算的特點(diǎn),大大地減少了頂點(diǎn)緩存和索引緩存的創(chuàng)建,降低了CPU的負(fù)擔(dān)。所以要權(quán)衡利弊,實(shí)現(xiàn)GPU和CPU之間的負(fù)載均衡,這樣不僅可以利用GPU的特性,更能把CPU從復(fù)雜的浮點(diǎn)計(jì)算中解放出來,集中精力處理其他的一些問題,這樣會得到更好的結(jié)果。

圖9 三角形面片與幀率的關(guān)系

圖10 渲染幀率對比

圖9給出了在不同分辨率大小的情況下,基于GPU的Geometry Instancing算法和原始的基于CPU的算法的幀率對比。從實(shí)驗(yàn)數(shù)據(jù)可以清晰的分析出,GPU的計(jì)算時(shí)間要遠(yuǎn)小于CPU的計(jì)算時(shí)間。從圖10中曲線的分布可以清晰的看出,比原始的基于CPU的地形繪制算法快一倍,效果也比較好,動態(tài)漫游能夠達(dá)到50幀每秒左右,而且節(jié)省了很多的CPU資源,隨著計(jì)算量的增大,GPU表現(xiàn)出更加優(yōu)越的性能。

6 結(jié)論

(1)在大規(guī)模地形場景下為了滿足實(shí)時(shí)繪制的要求,該系統(tǒng)采用了金字塔(先分層后分塊)的方式來組織地形數(shù)據(jù),把地形數(shù)據(jù)存儲為高度圖,并且該文采用了靈活的方式對高度圖進(jìn)行編碼,可以在GPU中快速解碼還原得到原始的地形數(shù)據(jù)。

(2)為了充分利用現(xiàn)代GPU圖形硬件的高速計(jì)算能力,減輕CPU的負(fù)載,該文在繪制方法上進(jìn)行了改進(jìn),原來需要創(chuàng)建可視區(qū)內(nèi)的所有格網(wǎng),采用了Geometry Instancing地形繪制方法,只需要創(chuàng)建一個(gè)模板格網(wǎng),然后通過偏移和縮放就能夠得到整個(gè)可視區(qū)內(nèi)的所有其他格網(wǎng)信息,大大減少了構(gòu)建格網(wǎng)所花費(fèi)的時(shí)間,提高了繪制速度。

(3)隨著圖形硬件的發(fā)展,使得GPU資源相比于CPU非常的豐富,所以盡量把計(jì)算消耗比較大的處理操作交給GPU來處理:結(jié)合Shader Model 3.0引入的頂點(diǎn)紋理拾取技術(shù),將高程值存儲在頂點(diǎn)紋理中,在頂點(diǎn)著色器里查找并獲取頂點(diǎn)的高程值,避免了在CPU上執(zhí)行頂點(diǎn)緩存的更新;在構(gòu)建模板格網(wǎng)時(shí)就預(yù)留了裂縫處理信息,所以可以在GPU中直接縫合裂縫,無需其他的操作;利用GPU硬件實(shí)現(xiàn)裁剪和背面剔除,減少不必要的數(shù)據(jù)繪制,加速可視化;為了得到更加逼真的效果,最后給出了光照和法線的動態(tài)計(jì)算,以往有很多地形繪制算法中都是通過法線圖來獲得頂點(diǎn)的法線信息,而在網(wǎng)絡(luò)的環(huán)境下,通過傳輸法線圖來獲得數(shù)據(jù),一定會增加網(wǎng)絡(luò)傳輸?shù)膲毫Γ罱K將影響繪制的效率,由于高速并行圖形處理器GPU的出現(xiàn),完全可以把法線在GPU上動態(tài)生成,然后把法線映射到對應(yīng)的點(diǎn)上,而且法線動態(tài)計(jì)算對GPU負(fù)載的增加很小,不會影響繪制性能。

7 展望

通過對大規(guī)模地形實(shí)時(shí)繪制算法的討論,提出了自己的算法,在一定程度上提高了實(shí)時(shí)繪制效率,增強(qiáng)了繪制效果,但仍然存在許多問題,有待進(jìn)一步深入研究。另外隨著圖形硬件的飛速發(fā)展,虛擬現(xiàn)實(shí)技術(shù)的不斷成熟,新的算法、理論和應(yīng)用層出不窮,面對日新月異的技術(shù)更新,更需要不斷探索實(shí)踐。在網(wǎng)絡(luò)大規(guī)模地形實(shí)時(shí)繪制過程中,要保證實(shí)時(shí)性和繪制效果的真實(shí)性,不僅要考慮客戶端繪制速度,還要考慮網(wǎng)絡(luò)帶寬、數(shù)據(jù)安全性和穩(wěn)定性,服務(wù)器負(fù)載等方面才能達(dá)到真正實(shí)時(shí)繪制的要求,該文將在以下幾個(gè)方面進(jìn)一步深入的研究:

(1)依據(jù)網(wǎng)絡(luò)帶寬,要采用合理的地形數(shù)據(jù)存儲方式和壓縮方法,保證網(wǎng)絡(luò)傳輸?shù)募皶r(shí)性,同時(shí)采用合理的緩存機(jī)制和預(yù)取策略,對數(shù)據(jù)進(jìn)行預(yù)取和緩存,保證繪制的實(shí)時(shí)性,滿足漫游者的需求。

(2)該文的剖分算法是基于球體的,但是球體剖分有一個(gè)很大的缺點(diǎn)就是兩極的誤差會很大,如果有需要兩極方面的精確應(yīng)用時(shí),就不能很好的滿足實(shí)際需要。因此需要進(jìn)一步研究新型的地形剖分算法,比如橢球體剖分等,使更加符合真實(shí)的地球形狀,滿足兩極應(yīng)用的需求。

(3)充分利用新一代的圖形硬件GPU的特性,通過使用DirectX 10和DirectX 11的新特性,如Geometry Shader(幾何體著色器)、Compute Shader(提供了多線程處理能力)和Tessellation(鑲嵌化細(xì)分技術(shù))等,可以快速生成大規(guī)模的復(fù)雜的地形,具有更多的層次細(xì)節(jié),提高了可視化的效果,增強(qiáng)了沉浸感,是人們更加相信他所漫游的環(huán)境。

[1]李德仁,肖志峰,朱欣焰,等.空間信息多級格網(wǎng)的劃分方法及編碼研究[J].測繪學(xué)報(bào),2006,(1):17-19.

[2]R.Pajarola, E. Gobbetti. Survey on Semi-Regular Multiresolution Models for Interactive Terrain Rendering. The Visual Computer. 2007,23(8):583-605.

[3]Filip Strugar. Journal of graphics, GPU and game tools. 2010,7(1).

[4]Gerasimov, Philip, Randima Fernando, and Simon Green. Shader Model 3.0: Using Vertex Textures. NVIDIA white paper DA-01373-001_v00, June 2004.

[5] Asirvatham A, Hoppe H. Terrain Rendering Using GPU-Based Geometry Clipmaps. 2005:27-45.

[6]J. Schneider, R. Westermann. GPU Friendly High-quality Terrain Rendering. Journal of WSCG,2006,14(1):49-56.[7]Cebenoyan, Cem. Graphics Pipeline Performance. 2004.

[8]developer.nvidia.com. NVIDIA官方網(wǎng)站.

[9]O’Rorke, John. Managing Visibility for Per-Pixel Lighting. 2004.

[10]Dudash, Bryan. Technical Report: Instancing. In NVIDIA SDK 9.5. Available online at http://developer.nvidia.com. 2005.

[11]Bent D Larsen, Niels J. Christensen. Real-time terrain rendering using smooth hardware optimized level of detail[J].Journal of WSCG, (S1213-6972), 2003, 11(1).

[12]Daniel Cohen-Or, Yiorgos Chrysanthou, Claudio Silva and Fredo Durand. A survey of visibility for walkthrough applications. IEEE Transaction on Visualization and Computer Graphics, 2003,9(3):412-431.

Research on Accelerated Rendering Technique of Global Terrain Based on GPU

LI Hao, XIANG Hengmao, SUN Jiuhu

(Shandong Surveying and Mapping Institute of Land and Resources, Shandong Jinan 250102, China)

Through studying the method for making large scale terrain datas in real-time based on graphic processing units, pointing to the characteristics of the batch of rendering of GPU, an improvement method of geometry instancing has been put forward. It can be used to render global grid quickly. The terrain datas are recoded and stored in height maps. Combing with the vertex texture fetch capability in Shader Model 3.0, and decoded in GPU, the primitive DEM datas can be gained. It will avoid carrying out vertex buffer on CPU. This algorithm can not only reduce the CPU load, but also reach a higher frame rate.

Graphic processing unit; real-time mapping; quad tree; tiled block; height maps

2014-10-11;

2014-10-27;編輯:陶衛(wèi)衛(wèi)

李浩(1984—),男,工程師,主要從事地理信息系統(tǒng)應(yīng)用和國土資源信息化建設(shè)工作;E-mail:919150382@qq.com

TP391.41

B

猜你喜歡
格網(wǎng)頂點(diǎn)繪制
Art on coffee cups
過非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(下)
實(shí)時(shí)電離層格網(wǎng)數(shù)據(jù)精度評估
關(guān)于頂點(diǎn)染色的一個(gè)猜想
放學(xué)后
童話世界(2018年17期)2018-07-30 01:52:02
基于空間信息格網(wǎng)與BP神經(jīng)網(wǎng)絡(luò)的災(zāi)損快速評估系統(tǒng)
在轉(zhuǎn)變中繪制新藍(lán)圖
平均Helmert空間重力異常格網(wǎng)構(gòu)制方法
基于位置服務(wù)的地理格網(wǎng)編碼設(shè)計(jì)
VBA在宗地圖繪制中的應(yīng)用
长治市| 临湘市| 武山县| 屏东市| 洞口县| 定陶县| 融水| 仙居县| 千阳县| 方山县| 盐城市| 东源县| 贵港市| 克拉玛依市| 濮阳市| 武义县| 大宁县| 齐齐哈尔市| 安阳县| 县级市| 仙桃市| 德化县| 家居| 大足县| 嘉善县| 托里县| 贵州省| 双辽市| 噶尔县| 法库县| 焦作市| 宕昌县| 衢州市| 龙门县| 屏东市| 高淳县| 华池县| 城市| 克拉玛依市| 乌鲁木齐县| 冀州市|