炮兵射击训练模拟系统的视景仿真技术实现
3.3 三维地形计算数据,二维图片视景显示技术、
采用真实地形的三维模型,可以随意更换观察所位置、观察方向,但它牺牲了大量的地理信息,与实际的地形有着一定的差别,尤其是地表特征及地物都是人工导入,因而只能是局部的反映了地形特征。为了让受训人员熟悉真实训练场地情况,就要使用现地照片作为观察场景。不过由此也带来了目标设置、弹道计算、命中检查、炸点显示等技术难题。根据空间的一致性,可以在三维地形中进行数据计算,然后将显示位置映射到二维图片中进行显示。这样即数据准确,又视景逼真,达到训练和熟悉的双重目的。

图2 三维目标与二维图片对应关系铅垂方向示意图
通过上图我们不难看出,物体远近与该物体在底片上投影角的大小有关。因此我们可以通过投影角的比值关系确定空间物体在二维图像中的平面坐标位置。当我们通过三维地形计算出任意目标点(C 点)的坐标后,可以计算出该目标点观目线(观察点(拍摄点)与目标点连线)与拍摄照片时的中心线的夹角(中心线的角度可以在拍摄时确定)。根据空间的一致性的原则,可以得到该目标点在二维照片上的坐标:
X=A/2* (tan(α x - β x )/tan(γ x - β x ))+a ①
Y=B/2* (tan(α y - β y )/tan(γ y - β y ))+b ②
其中
α x ——观目线与水平面的夹角; β x ——照相机的俯仰角;
γ x ——照相机水平视角的一半; α y ——观目线与铅垂面的夹角;
β y ——照相机的偏转角; γ y ——照相机垂直视角的一半;
a ——二维图像内X 轴方向的偏差量; b ——二维图像内Y 轴方向的偏差量;
A ——二维图像的宽度值; B ——二维图像的高度值;
上式中,并没有考虑照相机的光学偏差、球形形变和高程畸变、材料变形等引起的偏差量。但实际应用中,由于普通相机的角度不大,大视角的二维现地照片多由数张照片拼接而成,因此,采用分段使用公式的方法,这样仅需乘一个偏差修正系数即可取得满意的效果。
另外,为了防止出现山体后面的目标也显示到屏幕上,还需要对可视山体部分进行曲线拟合,如果目标位置不在可视曲线方位内,该目标即不进行显示处理。
3.4 海浪仿真技术
海浪本身是一个十分复杂的自然现象,实际的海面总是呈现不规则的波浪,而且波的传播没有一定的方向。对于这种不规则的、随机的任意方向波,用精确的数学表达式描述它是很困难的。从统计意义上讲,不规则的海浪可以用无数个不同波幅和波长的单元规则波叠加来组成。

其中

这样,在我们可以将仿真的海域划分成网格,由③求出各个网格节点的高程,以视景仿真程序的帧时作为海浪谱的t ,贴上逼真的纹理,即可实现一个波动的海面。实际应用中,由于系统实时性的要求,通常将仿真的海面划分为核心海面、边带和角带几个部分。核心海面区域的网格大小为m*n,外围海面网格大小为2m*2n,外围海面的周围与边带和角带相接。

图3 平面网格模型
3.5 三屏同步技术
为了满足大观察视野的要求,系统采用了在一个2×9m2 的大屏幕上显示野战战场视景,因为人眼对视景在空间上的不一致非常敏感,所以三幅图象之间任何细微的不同步,都很容易被人眼捕捉到。这样就出现一个三屏视景拼接的问题。
3.5.1 视点的同步
如图4 所示,为了保证视景的完全重合,需要将三个投影屏的视场角设成相同,并将左、右两屏的视点相应旋转一定角度——水平视场角大小,同时三个投影仪的位置必须垂直于投影屏(如图5所示)。

图4 视点角度设置示意图

图5 三屏投影位置示意图
管理台与这三台微机之间的通讯尽管是依次完成的,但因为三台微机只收不发,且通过非阻塞方式进行,所以时间间隔很小。经实际测试,管理台完成与这三台微机之间的通讯所用的时间不超过3ms。因此可以认为数据是同时到达三台微机的接收缓冲区的。尽管如此,如果在这三台微机中视景生成与数据通讯在两个未加同步的线程中分别进行,生成的图象还是不可能完全同步。为解决这一问题,我们将数据接收嵌入视景生成线程,并设为阻塞方式。这样,每帧图象的生成都是由接收数据启动。这样就做到了三幅图象的生成完全同步。
3.5.2 海浪的同步
海浪模型不同于地形模型,由前面论述的海浪仿真方法可以看出,海面的波动形状与视景图形的帧时密切相关,三屏拼接的情况下很难保证每台图形





