基于OpenGL雙重拾取的空間目標OCS快速計算方法
【技術領域】
[0001] 本發明涉及一種空間目標0CS(光學橫截面積,opticalcrosssection)的快速 計算方法,屬于空間目標監視技術領域,用于空間目標0CS的快速計算,有助于開展空間目 標光學特性分析及空間目標識別等工作。
【背景技術】
[0002] 空間目標是指在宇宙空間運行的航天器和空間碎片。空間目標的0CS是其重要 屬性,對確定空間目標監視方案、開展目標特性分析及目標識別具有重要意義,對空間目標 0CS的數值計算一直是空間目標監視領域的研究熱點。
[0003] 空間目標光學橫截面積0CS的定義式為:
[0004] OCS= /Afr (Θi;Θr)cosΘjcosθrdA(1)
[0005] 對于具有面積dA的小面元而言,其法向量為#,由模型幾何中心到太陽的單 位矢量為I,由模型幾何中心到探測器的單位矢量為H,則^為1與I的夾角且滿足 .(;〇33=及*5, 01為'。73的夾角且滿足<;〇叫=]^萬,其中'*'為點乘;佇(0 1,01〇為BRDF(Bi-directionalReflectanceDistributionFunction,雙向反射分布函數)函數 值,對于反射率為P的朗伯體目標,其各向BRDF值相同,即ΘJ=p/ji,不同材質 對應的BRDF數值也不同。對空間目標光學觀測而言,目標的亮度通常用星等來表示,星等 又可以由目標的0CS值推算得到,因此在光照強度近似相同的近地空間,空間目標的0CS也 成為衡量目標亮度的關鍵屬性。由式(1)可知,空間目標的0CS僅與目標材質、形狀、入射 及出射角有關,而與探測器距離及性能參數無關,具有更廣泛的用途。
[0006] 上式的積分范圍為探測器可見的光照面積(有效面元),該部分面元為光線照射 且同時為探測器可見。對于空間目標而言,入射太陽光可視為單一方向的平行光,包括地球 反射光在內的其他光線可以忽略。
[0007] 現有對空間目標0CS的計算方法中,主要可以分為解析法和有限元法。解析法是 用解析表達式描述各角度上的0CS數值,精度較高但僅適用于簡單幾何形狀的物體,如平 板、球體、立方體、圓柱、圓錐等,工程上常將目標假設為特定形狀的幾何體,進而利用解析 法估計其0CS值,估計誤差較大。
[0008] 有限元法則是將目標模型拆分為數量眾多的小面元,確定探測器可見的光照面元 后計算每個面元的0CS值,最終將所有面元0CS累加得到目標的0CS值。其中,對有效面元 (既被光照又被探測器可見)的分析是有限元法的關鍵技術。目前,分析有效面元的主要方 法如下:
[0009] 首先將目標拆分為許多微小面元,通過一定格式的文件,如頂點文件、面元拓撲文 件等記錄每個小面元的頂點坐標、法向矢量和所代表的材質類型等。接下來需要根據面元 法向矢量、入射太陽光方向矢量和觀測方向矢量判斷面元是否可見,找出有效面元,這一過 程也稱為一次遮擋判斷。在此基礎上,還要判斷這些小面元在光照及觀測方向上的相互遮 擋關系,將被其它面元所遮擋的小面元剔除掉,這一判斷稱為二次遮擋判斷,也稱為目標的 消隱處理。面元之間相互遮擋的判斷過程復雜且運算量巨大,其循環判斷次數為N2 (N為面 元數量),對于面元數量較多的復雜空間目標,消隱處理耗時較長。同時,由于遮擋判斷是以 面元中心為依據進行的,存在一定的誤差,減小這一誤差的方法只有增加面元數量,這又進 一步增加了運算量。若減少面元數量、增大面元面積,則面元間相互遮擋關系的分析誤差以 及與實際模型的差別就會大幅增加,OCS計算精度降低,這一矛盾成為制約有限元法計算空 間目標OCS的瓶頸問題。
[0010] 當前,基于有限元思想的空間目標0CS計算方法中,也存在基于OpenGL的消隱方 法,該方法通過將模型投影到屏幕上實現消隱處理,讀取投影后的像素值,進而推算出模型 的可見面積及材質情況。這種方法僅針對單一材質的目標,當同時存在多種材質時,該方法 不再適用。2010年,美國AGI公司發布的STK9.2. 1中,發布了光電紅外模塊E0IR,該模塊 由美國太空動力學實驗室開發,可以計算空間目標的0CS值。但該模塊同樣僅適用于單一 材質的模型,適用性有限。本發明提出的技術旨在解決傳統有限元法消隱處理過程繁瑣、利 用OpenGL讀取像素時無法處理多種材質目標等問題。
【發明內容】
[0011]本發明提供了一種基于OpenGL雙重拾取的空間目標0CS快速計算方法,通過OpenGL的拾取功能,分別拾取空間目標模型在光照方向和探測器方向的可見面元并取其交 集(即有效面元集合),實現對有效面元信息的提取,結合模型解析數據和BRDF數據計算每 個有效面元的0CS值并最終累加獲得目標的0CS值。本發明通過OpenGL對計算機圖形硬 件進行操作,完成模型顯示和有效面元的拾取,不僅可以快速準確完成消隱處理,還能充分 獲取包括頂點、材質在內的有效面元信息,提高計算多材質目標0CS的能力。
[0012] 本發明的目的通過以下技術方案來具體實現:
[0013] 基于OpenGL雙重拾取的空間目標0CS快速計算方法,包括:
[0014]步驟一、利用三維建模軟件對空間目標建模;
[0015]步驟二、解析三維模型并命名每個面元;
[0016] 步驟三、利用OpenGL繪制模型,根據探測器方位對模型進行可見面元拾取,根據 光源方位對模型進行光照面元拾取,得到兩個面元集合;
[0017]步驟四、對步驟三中兩次拾取的面元集合取交集,獲取探測器可見的光照面元;
[0018]步驟五、計算獲得的交集中每個面元的0CS值,累加所有面元0CS值得到空間目標 的0CS值。
[0019]步驟一中,所述利用三維建模軟件對空間目標建模,包括:利用三維建模軟件對 空間目標進行建模,將模型分割為若干個三角面元,并保留每個面元的信息,文件保存 成.3ds格式。
[0020] 所述三維建模軟件為Creator或3DMAX;和/或
[0021] 所述保留每個面元的信息,包括保留每個面元的材質和頂點信息。
[0022] 步驟二中,所述解析三維模型并命名每個面元,包括:解析步驟一中的模型文件, 給每一個解析出的三角面元命名并記錄其頂點、材質信息;
[0023]步驟三中,還需要開啟OpenGL深度緩存和深度測試,在基于OpenGL繪制目標模型 時體現面元間的相互遮擋關系。
[0024] 步驟三中,在進行可見面元拾取時,要兩次設定對目標模型的觀察視角,觀察視角 由空間目標實際光照和觀測角度確定;和/或
[0025] 所述的拾取是OpenGL獲取指定區域面元信息的方法,拾取范圍是整個繪圖窗口 以確保涵蓋模型所在的區域;和/或
[0026] 所述根據光源方位對模型進行光照面元拾取,基于在軌道運行的空間目標僅受到 太陽的光照。
[0027] 步驟四中,所述獲取探測器可見的光照面元作為計算整個模型0CS的有效面元, 參與后續0CS計算。
[0028] 步驟五中,計算獲得的交集中每個面元的0CS值,包括根據各面元頂點信息計算 表面法線矢量及面元面積,結合每個面元材質計算其0CS。
[0029] 計算單個有效面元的0CS時,計算0CS所使用的面積、法線矢量均來自步驟二中解 析的數據;根據步驟二解析的面元材質名稱,在常用空間目標表面材質BRDF(雙向反射分 布函數)數據庫中獲取該材質的BRDF參數;結合上述參數計算該面元的0CS值;和/或
[0030] 優選地,所述常用空間目標表面材質BRDF數據庫,用以存儲常用空間目標表面材 質的BRDF參數,該數據庫可通過BRDF測量設備測量獲得原始數據,進而可解算出Phong模 型、五參數半經驗統計模型等BRDF模型的參數值。對于朗伯體目標,可根據其反射率解算 BRDF〇
[0031] 所述計