摘 要:討論了采用Vega系列軟件對機(jī)載合成孔徑雷達(dá)的工作場景進(jìn)行實時三維視景仿真,著重分析實時場景渲染的一般過程和Vega應(yīng)用程序的基本框架。采用LynX操作和Vega的API函數(shù)共同開發(fā)Vega仿真程序的方法對機(jī)載SAR工作場境進(jìn)行實時三維視景仿真,展示仿真結(jié)果——機(jī)載SAR工作場境的實時三維視景圖。
關(guān)鍵詞:Vega;LynX;場景仿真;實時
Scene Simulation for Airborne SAR Based on Vega
TAN Shuting,SHEN Xiaofeng
(Electronic Engineering Institute,University of Electronic Science and Technology of China,Chengdu,610054,China)
Abstract:Real-time 3D scene simulation for the environment of airborne Synthetic Aperture Radar (SAR) based on Vega is discussed.The usual process of real-time scene rendering and a typical Vega application is analysed.A method which uses LynX operations and Vega′s API functions to simulate the real-time 3D scene for a airborne SAR is introduced in detail.At last,a figure of 3D scene simulation for airborne SAR is shown.This is valuable to graphic user interface design in the application software of airborne SAR simulation system.
Keywords:Vega;LynX;scene simulation;real-time
1 引 言
隨著仿真技術(shù)的不斷發(fā)展,仿真復(fù)雜大系統(tǒng)的能力也越來越強(qiáng),隨之而來的是龐大的仿真數(shù)據(jù)量。為了擺脫這些繁瑣枯燥的數(shù)據(jù),數(shù)據(jù)可視化技術(shù)誕生了。可視化就是一種用圖形或圖像來表征數(shù)據(jù)的計算方法,即利用計算機(jī)圖形圖像技術(shù)將一維數(shù)據(jù)轉(zhuǎn)化為可觀察的二維或三維幾何表示,從而達(dá)到增強(qiáng)人們對抽象信息認(rèn)知的目的[1]。
在進(jìn)行SAR仿真時,需要描述的各種數(shù)據(jù)具有量大、結(jié)構(gòu)復(fù)雜、抽象等特點,迫切需要數(shù)據(jù)可視化技術(shù),令人們能夠更直觀形象地接受數(shù)據(jù)信息。本文討論的機(jī)載SAR三維場景仿真,是開發(fā)基于HLA的分布式合成孔徑雷達(dá)仿真應(yīng)用軟件的圖形用戶界面的重要組成部分,其目的是使用戶能夠在虛擬環(huán)境中體驗真實世界,根據(jù)需要對虛擬環(huán)境中的三維立體模型進(jìn)行實時的可控制的交互。具體地說,就是用戶觀察機(jī)載SAR工作場境的實時三維視景圖,可以了解到機(jī)載SAR的工作情況(如SAR平臺的運(yùn)動軌跡,當(dāng)前雷達(dá)的波束范圍以及當(dāng)前波束范圍內(nèi)的地形情況等),根據(jù)需要改變參數(shù)控制仿真系統(tǒng)運(yùn)行。
2 視景仿真軟件介紹
Creator系列軟件是美國Multigen-Paradigm公司針對可視化仿真行業(yè)應(yīng)用特點推出的實時可視化三維建模軟件系統(tǒng),它可以用來對戰(zhàn)場仿真、娛樂、城市仿真、訓(xùn)練模擬器和計算可視化等領(lǐng)域的視景數(shù)據(jù)庫進(jìn)行產(chǎn)生、編輯和查看[1]。
Vega是美國Multigen-Paradigm公司推出的先進(jìn)的軟件環(huán)境,主要用于虛擬現(xiàn)實技術(shù)中的實時場景生成、聲音仿真及科學(xué)計算可視化等領(lǐng)域,它支持快速復(fù)雜的視覺仿真程序,能為用戶提供一種處理復(fù)雜仿真事件的便攜手段。Vega包括友好的圖形環(huán)境界面LynX、完整的C語言應(yīng)用程序接口API、豐富的相關(guān)實用庫函數(shù)和一批可選的功能模塊,能夠滿足多種特殊的仿真要求[2]。
LynX圖形界面的操作可以代替多數(shù)創(chuàng)建Vega應(yīng)用程序必需的API函數(shù),大大簡化開發(fā)應(yīng)用程序的過程。LynX還允許在不涉及源代碼情況下改變應(yīng)用程序性能,簡單的應(yīng)用程序僅靠LynX就可以實現(xiàn)。在許多場合,把LynX和Vega的API函數(shù)結(jié)合起來使用,對創(chuàng)建應(yīng)用程序非常有效率[5]。
3 實時場景生成原理
3.1 渲染過程
仿真場景由一系列有序的三維模型構(gòu)成。將三維模型數(shù)據(jù)庫從模型數(shù)據(jù)到被實時渲染成一幀一幀的畫面,要經(jīng)歷應(yīng)用、剔除和繪制三個主要階段。
(1) 應(yīng)用階段
應(yīng)用階段主要主要任務(wù)是:更新虛擬場景模型數(shù)據(jù)庫的數(shù)據(jù),讀取輸入設(shè)備的控制信息,計算當(dāng)前視點和模型在虛擬場景中的位置和方向等,并將所有這些必備的數(shù)據(jù)信息儲存為場景圖,從而在進(jìn)入圖形通道后進(jìn)行剔除和繪制處理。
(2) 剔除階段
剔除階段遍歷場景圖,通過判斷場景模型元素的邊界體是否與觀測體相交,來確定場景圖中當(dāng)前可視范圍內(nèi)的模型,然后剔除當(dāng)前不可見的模型數(shù)據(jù)。通常,系統(tǒng)會把需要繪制的場景狀態(tài)信息和渲染指令以顯示列表的形式儲存在內(nèi)存中,為繪制場景圖做好準(zhǔn)備。生成的顯示列表是一次性的,即有效期只有一幀,在進(jìn)入下一幀的渲染循環(huán)前即被清除。
(3) 繪制階段
繪制階段根據(jù)顯示列表中儲存的場景狀態(tài)信息和渲染指令,將場景數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)(如模型多邊形、紋理等)渲染至幀緩存,進(jìn)而將場景圖像數(shù)據(jù)繪制到顯示終端屏幕的指定位置上(如窗口、通道等),然后進(jìn)入下一幀的渲染循環(huán)。
3.2 應(yīng)用程序框架
典型的Vega應(yīng)用程序一般都遵循如圖1所示的框架。
Vega應(yīng)用程序一般可以分為兩個階段,首先是Vega系統(tǒng)的靜態(tài)描述階段,然后進(jìn)入Vega系統(tǒng)的動態(tài)循環(huán)階段。靜態(tài)描述階段的主要工作是為確保Vega系統(tǒng)的正常運(yùn)行進(jìn)行必要的系統(tǒng)配置,包括內(nèi)存分配、參數(shù)設(shè)置、Vega類的定義等。動態(tài)循環(huán)階段主要負(fù)責(zé)仿真場景渲染,每循環(huán)一次就渲染一幀畫面。
4 視景仿真方法
為提高效率,本文采用LynX配置ADF文件,Vega的API函數(shù)控制仿真主循環(huán)的方法,共同創(chuàng)建視景仿真應(yīng)用程序。
4.1 仿真場景簡述
本文討論的仿真場景主要包括地形、機(jī)載SAR平臺、雷達(dá)波束和天空。實際上,雷達(dá)波束及其照射范圍是肉眼不可見的,為了直觀地表現(xiàn)雷達(dá)平臺與雷達(dá)波束照射范圍之間的關(guān)系,用一個半透明圓錐體表示雷達(dá)波束,使不可視的雷達(dá)波束可視化了。用Creator建模是一項及其繁瑣、費(fèi)時的工作,為提高開發(fā)速度,本文盡量采用Vega自帶模型文件。上述元素的模型,除了較簡單的雷達(dá)波束通過Creator建模外,其余均來自Vega自帶的模型庫。
4.2 使用LynX配置ADF文件
應(yīng)用程序定義文件(ADF)用來保存Vega應(yīng)用程序在初始化和運(yùn)行階段需要的各種參數(shù)信息[3]。Vega應(yīng)用程序運(yùn)行離不開ADF文件的支持,因此配置ADF文件成為開發(fā)Vega視景仿真程序的重要任務(wù)之一。ADF文件配置的主要步驟如下:
(1) 添加地形、機(jī)載SAR平臺和雷達(dá)波速的模型對象,并將后兩者的坐標(biāo)系設(shè)置成動態(tài)的。
(2) 指定機(jī)載SAR平臺和雷達(dá)波束為場景運(yùn)動體。
(3) 在場景中添加地形、機(jī)載SAR平臺和雷達(dá)波速的模型對象。
(4) 將觀察者與機(jī)載SAR平臺綁定,并設(shè)置兩者之間方位的偏移量。
(5) 設(shè)置云層紋理模擬天空狀態(tài)。
4.3 場景動態(tài)控制
場景中,要求實現(xiàn)雷達(dá)波束跟隨雷達(dá)平臺不斷運(yùn)動,控制它們運(yùn)動軌跡有三種方法:一是采用Vega自帶的運(yùn)動模型;二是采用導(dǎo)航器預(yù)先自定義運(yùn)動軌跡;三是用Vega的API函數(shù)控制運(yùn)動軌跡。本文采用第三種方法。
用函數(shù)vgPosVec()進(jìn)行位置初始化,然后用函數(shù)vgPos()實施定位,結(jié)合Vega渲染工作方式,可以實現(xiàn)任意運(yùn)動路徑。這兩個函數(shù)原型和功能如下:
intvgPosVec ( vgPosition *pos,float x,float y,float z,float h,float p,float r );
vgPosVec函數(shù)用一個單精度向量定義一個vgPosition類實例的位置和方向。x,y,z用于描述位置,h,p,r用于描述方向[4]。
externvoidvgPos (vgCPos *handle,vgPosition *pos);
vgPos 函數(shù)用于設(shè)置一個vgCPos類事件的位置。它接受放置事件的變量和一個vgPosition函數(shù),如vgPosVec函數(shù)[4]。
Vega顯示的圖像是實時繪制的,即每完成一幀圖像的繪制,立刻將圖像顯示到標(biāo)準(zhǔn)輸出設(shè)備。設(shè)置場景運(yùn)動體在每一幀中的位置,然后按順序顯示每幀圖像并使幀率達(dá)到20~30 幀/s,那么就能產(chǎn)生動畫效果,即場景運(yùn)動體在場景中確實動起來了。場景運(yùn)動體的速度則由相鄰兩幀中運(yùn)動體位置間的差距和幀率決定。
5 仿真結(jié)果
為雷達(dá)平臺和代表波束的椎體分別計算運(yùn)動路徑,但保證兩者在每一幀中的相對位置不變,即可得到如圖2所示仿真結(jié)果。
6 結(jié) 語
本文采用Vega的圖形用戶界面LynX和Vega的API函數(shù)共同開發(fā)Vega應(yīng)用程序,實現(xiàn)SAR三維場景實時仿真,既盡可能地減少了源代碼的編寫,提高開發(fā)效率,又不失對仿真場景控制的靈活性。尤其是把設(shè)
置場景運(yùn)動體位置的程序代碼嵌入Vega主循環(huán)程序代碼中,對實時控制場景運(yùn)動體的運(yùn)動路徑非常有效。
參 考 文 獻(xiàn)
[1]王乘,周均清,李利軍.Creator可視化仿真建模技術(shù)[M].武漢:華中科技大學(xué)出版社,2005.
[2]龔卓蓉.Vega程序設(shè)計[M].北京:國防工業(yè)出版社,2002.
[3]王乘,李利軍,周均清,等.Vega實時三維視景仿真技術(shù)[M].武漢:華中科技大學(xué)出版社,2005.
[4]Vega 3.7:Vega Man Page.Multigen-Paradigm.2001.
[5]Vega 3.7:LynX User′s Guide.Multigen-Paradigm.2001.
作者簡介 譚淑婷 女,1981年出生,在讀碩士研究生。主要研究方向為信息獲取與探測技術(shù)。
沈曉峰 男,1965年出生,副教授,碩士生導(dǎo)師。主要研究方向為微波成像、信號處理、雷達(dá)系統(tǒng)。