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

?

基于GPU的大批量目標(biāo)高速標(biāo)繪技術(shù)研究

2015-11-08 05:29段同樂(lè)劉文展劉海娟
關(guān)鍵詞:標(biāo)繪坐標(biāo)值頂點(diǎn)

段同樂(lè) 劉文展 劉海娟

(中國(guó)電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081)

基于GPU的大批量目標(biāo)高速標(biāo)繪技術(shù)研究

段同樂(lè)劉文展劉海娟

(中國(guó)電子科技集團(tuán)公司第五十四研究所,河北石家莊050081)

為提高實(shí)時(shí)大批量目標(biāo)符號(hào)繪制速度,提出基于GPU的高速標(biāo)繪技術(shù),使用CPU把大批量目標(biāo)的屬性數(shù)據(jù)傳遞給GPU,基于GPU的并行計(jì)算能力,使用頂點(diǎn)著色器和片段著色器,直接把每個(gè)目標(biāo)的屬性信息轉(zhuǎn)換為對(duì)應(yīng)的符號(hào)繪制。實(shí)際工程應(yīng)用結(jié)果表明,隨著目標(biāo)數(shù)量的增多,高速標(biāo)繪技術(shù)的繪制效率顯著提高。

標(biāo)圖高速GPU編程GL著色器

1 引言

符號(hào)標(biāo)圖作為信息化系統(tǒng)的一個(gè)重要組成部分[1],具有簡(jiǎn)單迅速、形象直觀、概括力強(qiáng)、清晰易讀的特點(diǎn)[2],是反映對(duì)象域綜合態(tài)勢(shì)的重要手段[3],廣泛應(yīng)用于偵察勘測(cè)、應(yīng)急快反、模擬訓(xùn)練、軍事作戰(zhàn)指揮等方面。目前,主流的符號(hào)標(biāo)圖系統(tǒng)主要基于CPU逐條調(diào)用繪圖設(shè)備圖元繪制指令的方式實(shí)現(xiàn)符號(hào)繪制,其特點(diǎn)為實(shí)現(xiàn)簡(jiǎn)單、易于控制、繪制效果美觀、效率較低。隨著偵察手段的進(jìn)步、偵察范圍的擴(kuò)大、多源情報(bào)的接入等應(yīng)用的發(fā)展,在匯集陸、海、空各偵察系統(tǒng)提供的復(fù)雜多樣情報(bào)信息后[4],大批量、高動(dòng)態(tài)目標(biāo)標(biāo)繪的現(xiàn)實(shí)需求已經(jīng)成為符號(hào)標(biāo)圖系統(tǒng)需要解決的關(guān)鍵問(wèn)題,基于CPU逐條調(diào)用繪圖設(shè)備圖元繪制指令的方式從根本上制約了符號(hào)繪制效率的提高。

伴隨著集成電路和芯片制造工藝的進(jìn)步,眾核體系架構(gòu)的引入使得計(jì)算機(jī)的計(jì)算能力成倍增長(zhǎng)[5]。圖形處理器(Graphic Processing unit,GPU)是顯卡的“大腦”,即通常所說(shuō)的圖形處理器[6]。使圖形繪制極大地減少了對(duì)CPU的依賴,尤其在三維繪制技術(shù)上取得了巨大成功。當(dāng)前,GPU的發(fā)展已不再局限于3D圖形處理,其通用計(jì)算技術(shù)發(fā)展已證明在浮點(diǎn)運(yùn)算、并行計(jì)算等方面可提供數(shù)十倍乃至于上百倍于CPU的性能[7]。國(guó)內(nèi)對(duì)GPU的開(kāi)發(fā)應(yīng)用多集中在GPU的通用化并行計(jì)算方面,而在二維符號(hào)標(biāo)繪和空間分析等方面卻比較缺乏。

本文結(jié)合OpenGL語(yǔ)言及GL著色器(GLShader)探討了利用GPU實(shí)現(xiàn)大批量軍標(biāo)符號(hào)快速繪制的方法,并根據(jù)試驗(yàn)結(jié)果說(shuō)明了GPU對(duì)大批量軍標(biāo)符號(hào)繪制效能的巨大提升。

2 GPU并行化繪圖原理

GPU在現(xiàn)今的每臺(tái)個(gè)人計(jì)算機(jī)上都可以找到,這種專用的處理器分擔(dān)了中央處理器(CPU)的二維或三維圖形處理任務(wù)[8]。圖形流水線是GPU工作的通用模型[9],它以圖形數(shù)據(jù)作為輸入、輸出二維的光柵圖像(Raster Images)即位圖到顯示器。圖形流水線起點(diǎn)為圖形數(shù)據(jù)(點(diǎn)、線、面、體等),這些圖形數(shù)據(jù)都需要用附帶一系列屬性的頂點(diǎn)列表來(lái)表達(dá),這個(gè)頂點(diǎn)列表即流水線的輸入數(shù)據(jù)。幾何處理器負(fù)責(zé)逐頂點(diǎn)計(jì)算,即求他們的位移、旋轉(zhuǎn)和投影變換。接收投影的平面是一個(gè)幀緩存,它是由像素定義的光柵化平面,光柵化器把投影在二維平面上的點(diǎn)轉(zhuǎn)化為離散的像素點(diǎn),通過(guò)采樣和插值,決定幀緩存里的每個(gè)像素該取什么值。這些像素或像素連成的片段還需要經(jīng)歷逐片段操作,即他們的顏色可以根據(jù)算法改變,最為常用的既紋理映射此時(shí)會(huì)覆蓋某些像素的值。最終幀緩存里的結(jié)果被繪制完成并輸出到顯示器上,這個(gè)過(guò)程如圖1所示。

圖1 圖形流水線

圖形硬件技術(shù)一個(gè)最主要的突破就是在圖形硬件中引入了可編程功能,該功能允許用戶編制自定義的著色器程序(Shaderprogram)來(lái)替換原來(lái)固定流水線中的某些功能模塊[10]。如上圖所示幾何處理器和片段處理器的部分功能由頂點(diǎn)著色器和片段著色器實(shí)現(xiàn),因此可以實(shí)現(xiàn)用戶需要的特殊功能。一般情況下,一個(gè)GPU會(huì)有多個(gè)處理器(幾十個(gè)甚至上百個(gè))[11],他們同時(shí)工作,因此實(shí)現(xiàn)了GPU大規(guī)模并行處理能力。

3 GPU繪制實(shí)現(xiàn)方法

繪制之前需要制作RGBA格式的符號(hào)紋理貼圖,每幅紋理貼圖中包含多個(gè)符號(hào)。每幅紋理貼圖大小和每個(gè)符號(hào)大小可以根據(jù)需要的顯示效果進(jìn)行設(shè)置,以像素為單位如果設(shè)定每幅紋理貼圖大小為1024★1024,每個(gè)符號(hào)大小為64★64,此時(shí)每幅貼圖可包含256個(gè)符號(hào),如果設(shè)定每個(gè)符號(hào)大小為128★128,此時(shí)每幅貼圖可包含64個(gè)符號(hào),使用多張紋理貼圖即可滿足千種以上類型的符號(hào)的需要。對(duì)每個(gè)符號(hào)覆蓋的像素的Alpha值設(shè)置為1,其他像素的Alpha值設(shè)置為0,在繪制時(shí)通過(guò)Alpha測(cè)試使Alpha大于0.5的片段通過(guò),小于0.5的片段不通過(guò)即可實(shí)現(xiàn)符號(hào)覆蓋的像素輸出到屏幕,其他像素不輸出到屏幕。

繪制過(guò)程首先需要初始化繪圖環(huán)境。首先,設(shè)置包含多個(gè)目標(biāo)標(biāo)繪數(shù)據(jù)的數(shù)組,每個(gè)目標(biāo)標(biāo)繪數(shù)據(jù)以頂點(diǎn)的數(shù)據(jù)格式進(jìn)行存儲(chǔ),每個(gè)目標(biāo)標(biāo)繪數(shù)據(jù)對(duì)應(yīng)1個(gè)頂點(diǎn);每個(gè)目標(biāo)標(biāo)繪數(shù)據(jù)的信息內(nèi)容包含位置、方向、屬性、類型、大小、選中標(biāo)志和顯隱標(biāo)志;每個(gè)頂點(diǎn)包含1個(gè)三維向量的浮點(diǎn)型坐標(biāo)值與1個(gè)二維向量的整數(shù)型紋理坐標(biāo)值;其中頂點(diǎn)的浮點(diǎn)型坐標(biāo)值中的第一個(gè)分量和第二個(gè)分量對(duì)應(yīng)目標(biāo)點(diǎn)的屏幕坐標(biāo),頂點(diǎn)的浮點(diǎn)型坐標(biāo)值中的第三個(gè)分量對(duì)應(yīng)目標(biāo)的方向;頂點(diǎn)的整數(shù)型紋理坐標(biāo)值中的第一個(gè)分量代表目標(biāo)的屬性和類型,類型包含符號(hào)頁(yè)號(hào)和符號(hào)序號(hào);頂點(diǎn)的整數(shù)型紋理坐標(biāo)值中的第二個(gè)分量代表目標(biāo)的大小、選中標(biāo)志和顯隱標(biāo)志。

然后,載入符號(hào)紋理貼圖、頂點(diǎn)著色器和片段著色器到顯卡的存儲(chǔ)單元,由于顯卡的存儲(chǔ)單元對(duì)符號(hào)紋理貼圖大小的限制因此需要載入多張符號(hào)紋理貼圖到顯卡的存儲(chǔ)單元才能支持千種以上符號(hào)類型,在GPU計(jì)算片段的顏色值時(shí)即查找目標(biāo)的符號(hào)頁(yè)號(hào)對(duì)應(yīng)的符號(hào)紋理貼圖相應(yīng)位置的顏色值。頂點(diǎn)著色器是一組指令代碼,這組指令代碼在頂點(diǎn)被渲染時(shí)調(diào)用,片段著色器處理來(lái)自光柵化器的數(shù)據(jù),對(duì)光柵化形成的片段(像素)逐個(gè)計(jì)算顏色。將頂點(diǎn)著色器和片段著色器載入到顯卡的存儲(chǔ)單元即可在圖形流水線中使用GPU執(zhí)行。

在繪圖環(huán)境設(shè)置后,即可在屏幕刷新過(guò)程中根據(jù)目標(biāo)狀態(tài)的變化,實(shí)時(shí)更新目標(biāo)標(biāo)繪數(shù)據(jù)的數(shù)組并將更新后的目標(biāo)標(biāo)繪數(shù)據(jù)數(shù)組以頂點(diǎn)的格式刷新到顯卡的存儲(chǔ)單元形成頂點(diǎn)數(shù)組,然后即可利用GPU調(diào)用頂點(diǎn)著色器和片段著色器繪制頂點(diǎn)數(shù)組。

利用GPU調(diào)用頂點(diǎn)著色器和片段著色器繪制頂點(diǎn)數(shù)組包含以下步驟:

①使用頂點(diǎn)著色器獲取頂點(diǎn)的三維向量的浮點(diǎn)型坐標(biāo)值與二維向量的整數(shù)型紋理坐標(biāo)值并進(jìn)行記錄,提供給片段著色器使用;

②利用顯卡的固有的圖形處理流程對(duì)頂點(diǎn)進(jìn)行柵格化處理,形成該頂點(diǎn)對(duì)應(yīng)的多個(gè)片段,計(jì)算每個(gè)片段以該頂點(diǎn)為中心的相對(duì)坐標(biāo);具體方法為:一個(gè)頂點(diǎn)經(jīng)柵格化后形成一組片段,片段的個(gè)數(shù)由柵格化點(diǎn)的直徑?jīng)Q定,柵格化點(diǎn)的直徑為整型,片段的個(gè)數(shù)為柵格化點(diǎn)直徑的平方,每個(gè)片段對(duì)應(yīng)一個(gè)投影坐標(biāo)或屏幕坐標(biāo),同時(shí)對(duì)應(yīng)形成該片段的頂點(diǎn)坐標(biāo),為了計(jì)算每個(gè)片段的紋理顏色,需要計(jì)算每個(gè)片段以頂點(diǎn)為中心的相對(duì)坐標(biāo),計(jì)算方法為每個(gè)片段的投影坐標(biāo)或屏幕坐標(biāo)減去對(duì)應(yīng)頂點(diǎn)的投影坐標(biāo)或屏幕坐標(biāo);

③通過(guò)對(duì)頂點(diǎn)的整數(shù)型紋理坐標(biāo)值計(jì)算,得到目標(biāo)的屬性、頁(yè)號(hào)、序號(hào)、大小、選中標(biāo)志和顯隱標(biāo)志;

④根據(jù)目標(biāo)的大小和航向即頂點(diǎn)浮點(diǎn)型坐標(biāo)值中的第三個(gè)分量、目標(biāo)的符號(hào)序號(hào)計(jì)算每個(gè)片段的整數(shù)型紋理坐標(biāo);具體方法為:根據(jù)目標(biāo)的大小、目標(biāo)的航向即頂點(diǎn)浮點(diǎn)型坐標(biāo)值中的第三個(gè)分量、目標(biāo)的符號(hào)序號(hào)逐步調(diào)整步驟②中得到的每個(gè)片段的相對(duì)坐標(biāo)最終得到每個(gè)片段的整數(shù)型紋理坐標(biāo),根據(jù)目標(biāo)大小調(diào)整片段的相對(duì)坐標(biāo)時(shí)設(shè)目標(biāo)大小為size,片段的相對(duì)坐標(biāo)為(TDx,TDy),調(diào)整后的坐標(biāo)為(TDx_size,TDy_size),則:

根據(jù)目標(biāo)的航向調(diào)整時(shí)設(shè)調(diào)整后的坐標(biāo)為(TDx_direction,TDy_direction),則:

根據(jù)目標(biāo)的符號(hào)序號(hào)調(diào)整時(shí)設(shè)調(diào)整后的坐標(biāo)為(TDx,TDy),則:

調(diào)整后的(TDx,TDy)即為每個(gè)片段的整數(shù)型紋理坐標(biāo);

⑤根據(jù)每個(gè)片段紋理坐標(biāo)和符號(hào)頁(yè)號(hào)獲取對(duì)應(yīng)的符號(hào)紋理貼圖在該紋理坐標(biāo)位置的顏色值作為該片段的顏色值,符號(hào)頁(yè)號(hào)指明顯存中存儲(chǔ)的紋理貼圖的序號(hào),片段著色器根據(jù)紋理映射函數(shù)提取該紋理貼圖在片段紋理坐標(biāo)對(duì)應(yīng)的顏色值RGBA并賦值給每個(gè)片段,紋理映射函數(shù)為顯卡在圖形處理流程中固有的能力;

⑥根據(jù)目標(biāo)的顯示標(biāo)志和選中標(biāo)志調(diào)整片段是否顯示;片段顯示與否是通過(guò)對(duì)片對(duì)顏色的Alpha分量實(shí)現(xiàn)的;

⑦根據(jù)目標(biāo)屬性修改片段的顏色值;具體方法為:如果顯示標(biāo)志為0則設(shè)置該片段的Alpha值為0,如果顯示標(biāo)志為1則保持該片段的Alpha值不變,調(diào)整完成后再根據(jù)選中標(biāo)志調(diào)整片段是否顯示,方法為如果目標(biāo)的顯示標(biāo)志為1、選中標(biāo)志為1且片段的相對(duì)坐標(biāo)的第一個(gè)分量或第二個(gè)分量的值為10時(shí),修改該片段的Alpha值為1,其他情況保持該片段的Alpha值不變,最終使以頂點(diǎn)為中心、邊長(zhǎng)為20的矩形框邊線所占據(jù)的片段的Alpha值為1實(shí)現(xiàn)矩形選擇框的輸出;

⑧輸出片段顏色并結(jié)束。由于開(kāi)啟了片段Alpha測(cè)試,因此Alpha大于0.5的片段能夠輸出到屏幕,最終形成符號(hào)及選擇框的顯示。

4 實(shí)驗(yàn)及結(jié)果分析

4.1實(shí)驗(yàn)環(huán)境

系統(tǒng)WindowsXP(SP3),CPU主頻:2.93GHz,顯卡使用NVIDIA GeForce GTX560,顯存:1024MBGDDR5,流處理器為336個(gè)。

4.2實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)中對(duì)目標(biāo)個(gè)數(shù)分別取2000個(gè)、4000個(gè)、6000個(gè)、8000個(gè)和10000個(gè)進(jìn)行了測(cè)試,每組測(cè)試10次取平均值進(jìn)行記錄,使用CPU和GPU兩種方式繪制所需具體時(shí)間如表1所示,時(shí)間對(duì)比如圖2所示。

表1 CPU與GPU繪制時(shí)間表

圖2 CPU與GPU繪制時(shí)間對(duì)比圖

5 結(jié)束語(yǔ)

在信息化系統(tǒng)符號(hào)標(biāo)圖領(lǐng)域中,傳統(tǒng)基于CPU逐個(gè)調(diào)用圖元命令的實(shí)現(xiàn)方式已經(jīng)不能滿足實(shí)時(shí)大批量目標(biāo)的動(dòng)態(tài)標(biāo)繪。GPU作為新一代圖形系統(tǒng)開(kāi)發(fā)的必然趨勢(shì),具有并行快速渲染與靈活實(shí)現(xiàn)等眾多優(yōu)勢(shì),必將取代傳統(tǒng)的基于CPU的繪制技術(shù)。GPU編程與傳統(tǒng)算法編程思想完全不同,其主要面向頂點(diǎn)數(shù)據(jù)與像素?cái)?shù)據(jù)進(jìn)行編程,實(shí)現(xiàn)建立在大型點(diǎn)陣的快速并行運(yùn)算技術(shù)上[12]。本文討論了基于GPU的大批量目標(biāo)高速標(biāo)繪方法,并與傳統(tǒng)的繪制方法進(jìn)行了對(duì)比,試驗(yàn)結(jié)果表明,可大大提高繪制速度,對(duì)軍用地理信息平臺(tái)的地圖繪制技術(shù)實(shí)現(xiàn)也具有一定的借鑒意義。

[1]謝國(guó)文,吳秋云,鐘志農(nóng),等.基于ArcGIS圖元的軍事標(biāo)圖系統(tǒng)[J].兵工自動(dòng)化,2011,30(9):93-96.

[2]李啟元,宋勝峰.軍事標(biāo)圖系統(tǒng)架構(gòu)研究[J].艦船電子工程,2006,26(6):25-26.

[3]謝國(guó)文.基于ArcGIS圖元的軍事標(biāo)圖技術(shù)研究[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué)碩士學(xué)位論文,2011.

[4]張子芳.野戰(zhàn)綜合情報(bào)系統(tǒng)[J].無(wú)線電工程,1997,27(3):61-64.

[5]肖漢.基于CPU+GPU的影響匹配高效能異構(gòu)并行計(jì)算研究[J].武漢:武漢大學(xué)博士學(xué)位論文,2011.

[6]李士丹,陳星豪.一種基于OpenGL的圖像渲染加速方法[J].電腦知識(shí)與技術(shù),2012,8(1):194-196.

[7]葛子豪.基于GPU動(dòng)態(tài)誤差度量的大規(guī)模地形繪制方法[D].吉林:吉林大學(xué)博士學(xué)位論文,2012.

[8]吳凡賢.基于GPU的地震數(shù)據(jù)圖形快速繪制[D].成都:成都電子科技大學(xué)碩士學(xué)位論文,2013.

[9]鄭坤,王锫,李芬蕾.基于GPU的風(fēng)暴數(shù)據(jù)場(chǎng)多維紋理混合繪制[J].計(jì)算機(jī)工程與應(yīng)用,2014,50(17):173-177.

[10]孫悅,馬久河.基于GPU的圖像快速顯示技術(shù)[J].無(wú)線電工程,2008,38(9):27-28.

[11]彭海洋,楊紅雨,楊光.基于GPU實(shí)現(xiàn)的AES加密[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(2):241-243.

[12]席濤.二維數(shù)字圖像相關(guān)加速方法與GPU高速實(shí)現(xiàn)[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué)碩士學(xué)位論文,2014.

Research on High-speed Plotting Technology for Massive Targets Based on GPU

DUAN Tong-Le,LIU Wen-Zhan,LIU Hai-Juan
(The 54th Research Institute of CETC,Shijiazhuang Hebei 050081 China)

In this paper,a real-time plotting method for massive targets is presented,which can be used to dramatically improve the speed of drawing symbols on the screen.The attribute data of massive targets is sent from CPU to GPU at first.Based on GPU parallel computing capability,the rendering of targets’attributes is directly implemented at vertex shaders and fragment shaders of GPU.The experimental results show that the method based on GPU plotting technology is to be more efficient as the number of targets increases.

plotting;high speed;GPU programming;GL shader

TP311

A

1008-1739(2015)11-48-4

定稿日期:2015-05-12

猜你喜歡
標(biāo)繪坐標(biāo)值頂點(diǎn)
一種松耦合的多模態(tài)標(biāo)繪引擎設(shè)計(jì)
過(guò)非等腰銳角三角形頂點(diǎn)和垂心的圓的性質(zhì)及應(yīng)用(下)
后裝綜合態(tài)勢(shì)共享交換文件模型設(shè)計(jì)
關(guān)于頂點(diǎn)染色的一個(gè)猜想
基于二分法迭代的凸模數(shù)控銑削加工編程*
雷達(dá)標(biāo)繪訓(xùn)練與自動(dòng)評(píng)估系統(tǒng)設(shè)計(jì)
海量動(dòng)態(tài)異構(gòu)空間標(biāo)繪信息實(shí)時(shí)接入技術(shù)
基于宏程序的數(shù)控車削加工應(yīng)用
利用CAD/CAM 軟件確定數(shù)控編程中 未知點(diǎn)的坐標(biāo)
數(shù)學(xué)問(wèn)答