(中國電子科技集團(tuán)公司第三十八研究所,安徽合肥230088)
隨著空間目標(biāo)監(jiān)視雷達(dá)技術(shù)的發(fā)展,雷達(dá)探測(cè)的威力范圍越來越遠(yuǎn),目標(biāo)高度越來越高,傳統(tǒng)的方位-距離二維顯示模式已經(jīng)難以準(zhǔn)確地反映目標(biāo)實(shí)際的空間位置,三維顯示已成為反導(dǎo)預(yù)警領(lǐng)域雷達(dá)顯示技術(shù)的必然發(fā)展趨勢(shì)[1]。
由于空間目標(biāo)的距離比較遠(yuǎn),所以三維顯示系統(tǒng)不僅需要能顯示目標(biāo)的點(diǎn)航跡信息,還需要能顯示三維地球信息,包括地球紋理信息以及二維矢量地圖信息,并支持三維地球的自由旋轉(zhuǎn)。由于現(xiàn)代的空間目標(biāo)監(jiān)視雷達(dá)多采用相控陣體制,所以三維顯示系統(tǒng)還需要能以三維立體的形式反映搜索屏的分布以及波位的實(shí)時(shí)位置。
本文基于OpenGL工具包[2],針對(duì)空間目標(biāo)監(jiān)視雷達(dá)顯示需求,實(shí)現(xiàn)了雷達(dá)三維顯示系統(tǒng)的設(shè)計(jì)。除了傳統(tǒng)雷達(dá)具備的點(diǎn)航跡顯示和二維電子地圖顯示之外,該系統(tǒng)還通過四叉樹動(dòng)態(tài)分形技術(shù)實(shí)現(xiàn)了三維立體的地球顯示。該系統(tǒng)通過顯示搜索屏的空間設(shè)置和實(shí)時(shí)波束信息準(zhǔn)確地反映了雷達(dá)波束的掃描范圍和調(diào)度信息。此外,該系統(tǒng)還支持三維地球的旋轉(zhuǎn),可以讓用戶自由地調(diào)整觀察視角,對(duì)重點(diǎn)區(qū)域進(jìn)行監(jiān)視。
空間目標(biāo)監(jiān)視雷達(dá)三維顯示系統(tǒng)主要由四大部分組成,如圖1所示,分別為系統(tǒng)信息模塊、動(dòng)目標(biāo)模塊、地球管理模塊和渲染窗口模塊。其中:
1)系統(tǒng)信息模塊主要負(fù)責(zé)從網(wǎng)絡(luò)接收波束和搜索屏相關(guān)的系統(tǒng)信息,并對(duì)系統(tǒng)信息進(jìn)行管理和繪制,包括用于管理和繪制實(shí)時(shí)波束信息的波束模塊,以及用于管理和繪制搜索屏空間分布的搜索屏模塊。
2)動(dòng)目標(biāo)模塊主要負(fù)責(zé)從網(wǎng)絡(luò)接收點(diǎn)航跡信息,并對(duì)點(diǎn)航跡這類運(yùn)動(dòng)目標(biāo)信息進(jìn)行管理和繪制,包括用于存儲(chǔ)和繪制點(diǎn)跡的點(diǎn)跡管理模塊,以及用于存儲(chǔ)和繪制航跡的航跡管理模塊。
3)地球管理模塊主要用于實(shí)現(xiàn)三維地球的繪制,包括用于實(shí)現(xiàn)地球表面紋理貼圖的地球紋理管理模塊,以及用于實(shí)現(xiàn)二維電子地圖加載和繪制的電子地圖管理模塊。
4)渲染窗口模塊主要負(fù)責(zé)根據(jù)鼠標(biāo)鍵盤輸入控制三維地球的旋轉(zhuǎn),實(shí)現(xiàn)用戶視角的調(diào)整,并根據(jù)用戶當(dāng)前視角調(diào)用系統(tǒng)信息模塊、動(dòng)目標(biāo)模塊、地球管理模塊的繪制函數(shù),構(gòu)建顯示畫面并送光柵顯示器顯示。
由于點(diǎn)航跡管理和電子地圖管理在傳統(tǒng)雷達(dá)中已經(jīng)有了比較成熟的解決方案[3-4],所以下面本文集中于系統(tǒng)信息、地球紋理管理和渲染窗口這三個(gè)模塊的設(shè)計(jì)工作。
圖1 空間目標(biāo)監(jiān)視雷達(dá)三維顯示系統(tǒng)架構(gòu)圖
相控陣?yán)走_(dá)的波束顯示不僅要反映雷達(dá)波束中心的指向,還需要反映波束的實(shí)際寬度和威力范圍。隨著相控陣波束從天線法向側(cè)射掃描到角度θ時(shí),它的實(shí)際波束寬度也增加到原波束寬度的1/cosθ倍。三維顯示系統(tǒng)通過使用底部開口的圓錐體繪制波束,圓錐體的頂點(diǎn)位于雷達(dá)站,圓錐體的中軸線和波束中心指向重合,圓錐體的半徑反映波束的實(shí)際寬度,圓錐體的長度反映波束的威力范圍。在圓錐底部開口使用圓環(huán)靶指示波束的中心位置。波束的顯示效果如圖2所示。
圖2 波束顯示效果示意圖
由于相控陣?yán)走_(dá)的波束可以快速地從一個(gè)方向掃到另一個(gè)方向,為了準(zhǔn)確地反映波束預(yù)設(shè)出現(xiàn)的位置,三維顯示系統(tǒng)使用搜索屏來顯示波束編排的情況。搜索屏的頂端通過一個(gè)個(gè)半徑不同的圓環(huán)反映每個(gè)實(shí)際波位,圓環(huán)的半徑則反映了該波位的波束寬度。搜索屏的外側(cè)使用三角扇面相連,包裹了搜索屏覆蓋的空間范圍。搜索屏的顯示效果如圖3所示。
圖3 搜索屏顯示效果示意圖
為了更好地體現(xiàn)雷達(dá)威力和點(diǎn)航跡的相對(duì)空間位置,三維顯示系統(tǒng)需要一個(gè)相對(duì)精細(xì)的三維地球作為參考坐標(biāo)系,特別是當(dāng)視角拉近時(shí),更需要精細(xì)的紋理來反映目標(biāo)的空間位置。但如果全部載入高品質(zhì)的紋理圖片來繪制地球表面,則會(huì)占用大量的內(nèi)存用于存儲(chǔ)地表紋理,并消耗大量的計(jì)算用于紋理綁定。所以,三維顯示系統(tǒng)需要一種機(jī)制用于根據(jù)視角的距離動(dòng)態(tài)調(diào)整地表分形的粒度和紋理圖片的精度,在顯示效果和系統(tǒng)資源消耗之間取得平衡[5]。
三維顯示系統(tǒng)提出了一種四叉樹動(dòng)態(tài)分形技術(shù),它可以根據(jù)用戶當(dāng)前關(guān)注的區(qū)域?qū)Φ乇磉M(jìn)行動(dòng)態(tài)分形,在用戶關(guān)注的區(qū)域進(jìn)行更細(xì)致的分形并顯示高精度的紋理圖片,在用戶不太關(guān)注的區(qū)域進(jìn)行粗糙的分形并使用低精度的紋理圖片,而在用戶看不見的區(qū)域不使用紋理貼圖。
四叉樹動(dòng)態(tài)分形技術(shù)的基本思想如下:
首先,準(zhǔn)備好不同級(jí)別精度的地表紋理圖片,每張圖片的像素尺寸為256×256。每一級(jí)別的紋理圖片的顯示范圍都被4張更高一級(jí)別的紋理圖片所覆蓋。第0級(jí)只有兩張圖片,一張覆蓋整個(gè)西半球,一張覆蓋整個(gè)東半球。第1級(jí)細(xì)分為8張圖片,和第0級(jí)之間的對(duì)應(yīng)關(guān)系如圖4所示。類似地,第2級(jí)進(jìn)一步細(xì)分為32張圖片,依此類推。每張紋理圖片都用3個(gè)序號(hào)唯一確定,分別為紋理級(jí)別、經(jīng)度序號(hào)和緯度序號(hào)。
圖4 地表紋理圖片間的層級(jí)關(guān)系
其次,根據(jù)視角和顯示范圍遞歸的對(duì)地表進(jìn)行四叉樹動(dòng)態(tài)分形,并綁定對(duì)應(yīng)級(jí)別精度的地表紋理圖片。算法如下:
1)將整個(gè)地球分形為兩塊紋理,分別記為T0-0-0,T0-1-0,作為四叉樹的根節(jié)點(diǎn)。
2)對(duì)于每塊紋理,根據(jù)當(dāng)前的視角計(jì)算該紋理四角坐標(biāo)對(duì)應(yīng)的屏幕坐標(biāo)。
3)判斷該紋理是否位于屏幕顯示范圍內(nèi):如果不是,則不加載紋理圖片,不再對(duì)該紋理進(jìn)行分形;如果是,則繼續(xù)。
4)判斷紋理對(duì)應(yīng)的屏幕像素范圍是否大于256×256×1.5:如果是,則根據(jù)紋理序號(hào)加載對(duì)應(yīng)級(jí)別的紋理圖片;如果不是,則繼續(xù)。
5)將該紋理進(jìn)一步細(xì)分為4塊更高級(jí)別的紋理,作為該紋理的子節(jié)點(diǎn),并對(duì)應(yīng)計(jì)算每塊子紋理的序號(hào),并對(duì)每塊子紋理,重復(fù)步驟2)至步驟5),直至不需要進(jìn)一步細(xì)分。
最后,當(dāng)用戶視角發(fā)生改變之后,從根節(jié)點(diǎn)開始動(dòng)態(tài)更新四叉樹:
1)當(dāng)前紋理對(duì)應(yīng)的屏幕范圍不可視:如果當(dāng)前紋理有子節(jié)點(diǎn),則銷毀所有的子節(jié)點(diǎn);如果已經(jīng)加載紋理圖片,則釋放紋理圖片;
2)當(dāng)前紋理可視,且對(duì)應(yīng)的屏幕像素范圍大于256×256×1.5:如果當(dāng)前紋理沒有子節(jié)點(diǎn),則對(duì)該紋理節(jié)點(diǎn)進(jìn)行四叉樹分形,創(chuàng)建4個(gè)子節(jié)點(diǎn);
3)當(dāng)前紋理可視,且對(duì)應(yīng)的屏幕像素范圍小于256×256×1.5:如果該紋理沒有加載紋理圖片,則加載對(duì)應(yīng)的紋理圖片;如果該紋理有子節(jié)點(diǎn),則銷毀所有的子節(jié)點(diǎn)。
渲染窗口模塊主要用于實(shí)現(xiàn)三維場(chǎng)景的旋轉(zhuǎn),從而為用戶提供靈活的視角控制。本文引入了屏幕軌跡球的概念,通過將整個(gè)顯示屏幕構(gòu)建成一個(gè)虛擬軌跡球,將地球置于這個(gè)虛擬軌跡球的中心,通過鼠標(biāo)拖動(dòng)虛擬軌跡球旋轉(zhuǎn),從而實(shí)現(xiàn)三維地球的自由旋轉(zhuǎn)。
該虛擬軌跡球位于屏幕的中心,球的一半突出到屏幕之外,另一半延伸到屏幕內(nèi)側(cè)。鼠標(biāo)點(diǎn)可以映射到虛擬軌跡球上一點(diǎn),鼠標(biāo)的拖動(dòng)可以映射到虛擬軌跡球面上的移動(dòng),鼠標(biāo)按下和抬起的兩點(diǎn)構(gòu)成了虛擬軌跡球面上的一個(gè)夾角。通過確定旋轉(zhuǎn)軸和夾角可以確定一次旋轉(zhuǎn)。由于Open GL中所有的幾何變化都是應(yīng)用變換矩陣實(shí)現(xiàn)的,所以上述旋轉(zhuǎn)問題可以轉(zhuǎn)化為基于鼠標(biāo)兩點(diǎn)構(gòu)建變換矩陣的問題。
首先,需要將鼠標(biāo)點(diǎn)映射到虛擬軌跡球面上,將鼠標(biāo)的二維屏幕點(diǎn)(x,y)變?yōu)槿S空間點(diǎn)m(x,y,z)。假設(shè)虛擬軌跡球的半徑為R,則
其次,需要根據(jù)兩個(gè)虛擬軌跡球面上的三維空間點(diǎn)m1和m2確定虛擬軌跡球面的旋轉(zhuǎn)軸A和夾角θ。旋轉(zhuǎn)軸A(x,y,z)是m1、m2兩個(gè)向量構(gòu)成平面的法向量,可以通過兩個(gè)向量叉乘得到,而旋轉(zhuǎn)角度θ則可以由m1、m2的夾角獲得。因此:
由此,可以求出旋轉(zhuǎn)軸和旋轉(zhuǎn)夾角,構(gòu)建成旋轉(zhuǎn)向量ThisQuat(x,y,z,θ)。
最后,需要根據(jù)旋轉(zhuǎn)軸和夾角對(duì)當(dāng)前的變換矩陣進(jìn)行旋轉(zhuǎn)變換。為了實(shí)現(xiàn)變換矩陣的運(yùn)算,首先定義3個(gè)矩陣:最終變換矩陣Transform[4][4],歷史旋轉(zhuǎn)矩陣LastRot[3][3],本次旋轉(zhuǎn)矩陣ThisRot[3][3]。這三個(gè)矩陣都初始化為單位矩陣。每次鼠標(biāo)拖動(dòng)后的處理流程如下:
1)根據(jù)鼠標(biāo)點(diǎn)擊的起始點(diǎn)和釋放點(diǎn)的屏幕坐標(biāo),根據(jù)式(1)計(jì)算這兩點(diǎn)的三維空間點(diǎn)坐標(biāo),分別記為m1和m2;
2)根據(jù)m1和m2和式(2)計(jì)算旋轉(zhuǎn)向量ThisQuat(x,y,z,θ);
3)根據(jù)旋轉(zhuǎn)向量ThisQuat構(gòu)建本次旋轉(zhuǎn)矩陣ThisRot;
4)將本次旋轉(zhuǎn)矩陣ThisRot和歷史旋轉(zhuǎn)矩陣LastRot相乘,結(jié)果存儲(chǔ)在本次旋轉(zhuǎn)矩陣ThisRot中;
5)根據(jù)本次旋轉(zhuǎn)矩陣ThisRot生成最終變換矩陣Transform;
6)使用本次旋轉(zhuǎn)矩陣ThisRot更新歷史旋轉(zhuǎn)矩陣LastRot。
通過上述計(jì)算,可以將鼠標(biāo)在屏幕上拖動(dòng)的起始點(diǎn)和終止點(diǎn)轉(zhuǎn)化為一個(gè)4×4的最終變換矩陣。在每次繪制地球之前,使用gl Mult Matrix f()函數(shù)加載最終變換矩陣Transform,從而實(shí)現(xiàn)對(duì)三維地球的自由旋轉(zhuǎn)控制。
上述框架設(shè)計(jì)和具體功能實(shí)現(xiàn)已在某空間目標(biāo)監(jiān)視雷達(dá)中得到應(yīng)用和驗(yàn)證。程序運(yùn)行于Pentium Dual-Core CPU上,主頻3.2 GHz,顯卡為NVIDIA GeForce GT210。應(yīng)用實(shí)例顯示,該系統(tǒng)設(shè)計(jì)可以實(shí)現(xiàn)極具立體感的動(dòng)態(tài)準(zhǔn)確的波束和搜索屏顯示,顯示效果如圖5所示;可以實(shí)現(xiàn)高精度的地球表面紋理顯示,顯示效果如圖6所示;可以實(shí)現(xiàn)靈活的地球旋轉(zhuǎn)控制,圖5和圖6就是從兩個(gè)不同的角度進(jìn)行觀察的顯示效果。
圖5 波束和搜索屏顯示效果圖
圖6 地球紋理顯示效果圖
本文針對(duì)空間目標(biāo)監(jiān)視雷達(dá)的應(yīng)用背景,提出了雷達(dá)三維顯示系統(tǒng)的設(shè)計(jì)框架,并針對(duì)其中的系統(tǒng)信息模塊、地球紋理管理模塊和渲染窗口模塊這三個(gè)難點(diǎn)模塊,提出了波束和搜索屏的顯示設(shè)計(jì)、基于四叉樹動(dòng)態(tài)分形技術(shù)的地球紋理顯示設(shè)計(jì)、基于虛擬軌跡球的三維地球旋轉(zhuǎn)設(shè)計(jì)。該系統(tǒng)已在某空間目標(biāo)監(jiān)視雷達(dá)中得到應(yīng)用,顯示畫面清晰流暢、立體感強(qiáng),支持靈活的視角調(diào)整和控制。
[1]陳弓,戴晨光,劉航冶.雷達(dá)陣地場(chǎng)景三維可視化系統(tǒng)的實(shí)現(xiàn)[J].空軍雷達(dá)學(xué)院學(xué)報(bào),2007,21(4):248-251.
[2]WRIGHT R S,LIPCHAK Jr B.OpenGL超級(jí)寶典[M].3版.徐波,譯.北京:人民郵電出版社,2005:89-99.
[3]劉揚(yáng).軟件化多功能雷達(dá)光柵顯示設(shè)備設(shè)計(jì)[J].雷達(dá)科學(xué)與技術(shù),2008,6(3):206-209.LIU Yang.Design of Softwarized Multi-Function Raster Display Equipment in Radar[J].Radar Science and Technology,2008,6(3):206-209.(in Chinese)
[4]安良,莫紅飛.GIS在雷達(dá)顯示控制系統(tǒng)中的應(yīng)用[J].雷達(dá)科學(xué)與技術(shù),2011,9(3):264-267,285.AN Liang,MO Hong-fei.Application of GIS in Display and Control System of Radar[J].Radar Science and Technology,2011,9(3):264-267,285.(in Chinese)
[5]鄧寶松,于榮歡,秦方鈺,等.大規(guī)模地形無縫漫游技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2012,29(1):369-372,385.