基于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] 所述计