一种三维场景中动目标轨迹的显示方法

文档序号:9668219阅读:1374来源:国知局
一种三维场景中动目标轨迹的显示方法
【技术领域】
[0001] 本发明属于计算机三维态势显示技术领域,尤其涉及一种三维场景中动目标轨迹 的显示方法。
【背景技术】
[0002] 在各种仿真与应用信息系统中,通过实时访问遥感/侦察影像、数字高程模型、矢 量地形图等地理空间数据,在空间范围进行剪裁,融合成所属区域的栅格图像数据,构建具 备真实感的三维场景;通过雷达、电子侦察等传感器的探测、处理,将空中飞行的飞机,海面 上航行的舰船,陆地上运动的车辆等动目标,在三维场景中进行显示;对动目标采集的各离 散点位置连续显示是表现目标物体运动过程的重要手段之一。
[0003] 通常情况下,在三维场景中,动目标轨迹的显示是将动目标运动中各点的经炜度 位置转换为世界坐标位置,然后直接调用底层平台提供的接口显示形成固定像素宽度的 线,或者是通过一定的计算和优化加工,形成特有的数据格式再加以显示。但是,这种集中 方法在实际应用过程中,存在着不可避免的可视化效果问题,表现在三维透视投影模式下, 当观察者与观察目标的距离发生变化时,目标轨迹显示生硬,主要表现在像素宽度变化不 平稳,易产生突变效果,位置与姿态变化时会产生重叠扭曲,特别是当目标轨迹中的点比较 离散,目标姿态运动变化剧烈时,其轨迹显示会产生异常的扭曲效果。
[0004] 有些三维应用软件在动目标显示的具体实现中,采用了一些特殊的方法来解决该 问题,例如先进行简单的数据插值,然后在内存中对每个点进行扩展,再将计算出的点进行 三角化,最后显示出动目标的轨迹。该方法存在的问题主要表现在曲线轨迹的像素宽度不 易控制,由于三维透视投影空间的特性,需要根据像素宽度值对空间坐标系下的位置进行 转换,否则当目标与观察者的距离较远时会使目标不可见,而为保持像素宽度的一致性,需 要在运行过程中实时计算扩展点的位置并重建顶点结构,因此要占用大量的CPU资源。该 类方法仅从有限的角度来避免问题,其计算出的动目标轨迹的像素宽度在不同显示比例尺 进行切换的情况下会产生尺寸的跳变,动目标轨迹曲线图形在姿态变换剧烈时极易产生扭 曲现象,同时,该方法需占用大量的CPU进行实时计算,画面容易出现停顿现象,表现效果 不佳。

【发明内容】

[0005] 本发明的目的在于提供一种三维场景中动目标空间轨迹的显示方法,该方法可以 在三维场景中,通过采用基于帧的数据插值方法、空间坐标向量转换方法、基于GPU的像素 宽度计算以及颜色对比方法,使得动目标轨迹在不同比例尺场景下均具有较好的表现效 果。
[0006] 本发明公开了一种三维场景中动目标轨迹的显示方法,包括如下步骤:
[0007] 步骤1、采集动目标的航迹数据,获得航迹点;
[0008] 步骤2、建立数据结构,得到左扩展点位置坐标和右扩展点位置坐标;
[0009] 步骤3、计算比例系数Scale,将比例系数Scale输入到GPU中,GPU根据比例系数 Scale对变换后的左扩展点位置坐标和右扩展点位置坐标进行二次转换,得到最终输出的 位置坐标;
[0010] 步骤4、在GPU中根据姿态变化的程度以及当前渲染顺序,基于基础颜色Crraf计算 不同的像素颜色值Cr,并最终输出到计算机屏幕。计算不同的像素颜色值Cr,并最终输出 到计算机屏幕。
[0011] 其中,步骤1中采用平滑方法对航迹数据进行规范性检查:统计三维场景中各航 迹点位置之间的距离系数Dis和航向角系数Dir,对距离系数Dis大于10公里的点进行大 圆弧插值;对航向角系数Dir大于180度的点进行补点扩充,获得航迹点。
[0012] 步骤2包括:以步骤1所获得的航迹点为基准点,在其左右各扩展1米得到左扩展 点位置坐标Vsl、右扩展点位置坐标Vs2,计算基准点与下一个基准点的航向角系数Dir,从而 计算出该航迹点的空间变换矩阵Mats,将左扩展点位置坐标Vsl和右扩展点位置坐标Vs2在 空间变换矩阵Mats上变换,最终得到在世界坐标系下的基准点与两个扩展点,其中,基准点 V= {x,y,z},x、y、z分别为基准点V在空间坐标X方向、y方向和z方向的位置坐标值,左 扩展点位置坐标Vsl= {0,-1,0},右扩展点位置坐标Vs2= {0,1,0},坐标转换过程:V' = VXMats,s表示基准点代号,V'表示该点转换后的坐标值。本步骤中所使用的补点方法能 较好地解决曲线在加宽时的转弯处易出现的折叠现象,同时基准点与单位化的扩展点便于 在GPU中实时的根据比例,重新计算其位置,保证像素宽度的一致性。
[0013] 步骤2中基准点与下一个基准点的航向角系数Dir的计算方法如下:
[0014]两点间经度差LngDif=Pi+1.dLng-Pi.dLng,
[0015] 两点间炜度差LatDif=Ρ1+1·dLat-PpdLat,
[0016] 其中P1+1.dLng表示第i+1个基准点的经度,PpdLng表示第i个基准点的经度, P1+1.dLat表示第i+1个基准点的炜度,PpdLat表示第i个基准点的炜度;
[0017] 经度差对应的空间距离wkl=LngDif*cos(Pi+1.dLat*PI/180),
[0018] 炜度差对应的空间距离wk2 =wkl*wkl+LatDif*LatDif,
[0019] 两点间的航向角系I
[0020] 其中Point.dYaw表示该点的航向角,atan()表示反正切函数。
[0021] 步骤3包括:在动目标运行过程中,根据动目标与观察者的距离,计算比例系数 Scale:
[0022] Scale=k*DisToEye;
[0023] 其中k为可输入的调节参数,DisToEye为观察者到点的距离;
[0024] 在每帧渲染过程中将其设置到GPU中,GPU根据比例系数Scale对变换后的左扩 展点位置坐标Vsl和右扩展点位置坐标Vs2进行二次转换,保证其在不同显示比例尺下显示 同样的像素宽度,最终输出的位置坐标VS1'计算公式如下:
[0025]Vsl,=Vbase+Scale* (Vsl_Vbase),
[0026] 其中,VS1为扩展点的位置坐标,Vb_(该值与V相等,s为基准点代号,其值为输入 的航迹点位置,base为通用概念,可以说s是base的具体值)为基准点位置坐标。本步骤 中所使用的实时计算比例系数,对扩展点进行动态的位置计算,在确保效率的基础上实现 了曲线的平滑过渡。在像素渲染器中,最终输出的位置坐标VS1'最终被转换为像素坐标,进 而进行颜色取值。
[0027] 步骤4中通过如下公式计算像素颜色值Cr:
[0028]与姿态相关的颜色系数值DirCoef= 1-Sin(Dirj),
[0029]Cr=Crref*DirCoef+Crref* (1-DirCoef),
[0030] 其中,Cr"f是根据图形学设置的经验值,取值范围为[0, 255],可作为参数输入, Dir,(其意义与前述的"线段航向"是同一个意思)该像素点所在线段的方向。本步骤中所 使用的曲线正反颜色计算方法,能较好地反映出姿态的变换效果,对于模拟飞行等特效有 较好的支撑作用。
[0031] 有益效果:本发明与现有技术相比具有以下的优点:
[0032] 1)对目标轨迹的点进行插值处理,形成连续、平滑的曲线,在姿态变化较为剧烈的 地方,进行数据增插值,形成曲线过渡效果;
[0033] 2)在不同的视点远近场景中,目标轨迹在三维场景空间内皆可见,不会因观察视 点过远而使目标轨迹消隐在三维场景之中,并且图形在整个显示的过程中,其显示尺寸是 平滑过渡的,不会造成比例的跳变;
[0034] 3)基于GPU的计算方法提升了软件效率,同时提升了目标轨迹曲线的飘带状显示 效果,明确区分出目标轨迹曲线的正反面;
【附图说明】
[0035] 下面结合附图和【具体实施方式】对本发明做更进一步的具体说明,本发明的上述和 /或其他方面的优点将会变得更加清楚。
[0036] 图1是本发明的流程示意图。
[0037]图2是本发明的需进行样条插值的原始点示意图。
[0038]图3是本发明的原始点线性插值示意图。
[0039] 图4是本发明的经过样条插值后的示意图。
[0040] 图5是本发明的插值点与扩展点示意图。
[0041] 图6是本发明的动态Scale计算示意图。
[0042] 图7是本发明的GPU场景处理示意图。
【具体实施方式】
[0043] 本发明提供了一种三维场景中动目标轨迹的显示方法。该方法通过对动目标产生 轨迹点经炜度数据,采用基于帧插值的离散数据平滑和空间坐标向量转换方法,形成位置 连续稳定、姿态变换柔和的曲线轨迹;采用实时计算扩展比例计算方法,使目标轨迹在与观 察者处于不同距离时均显示相同的像素宽度,同时采用正反颜色值对比的方法,通过在航 向、俯仰、横滚等自由度变化时对正反面取不同的颜色值,逼真地实现了飘带状轨迹的柔和 效果。本发明解决了在三维场景中,对动目标轨迹的三维曲线在不同观察距离的消隐现象, 实现了对动目标产生的轨迹点连续、稳定、平滑的飘带状轨迹显示效果。本发明主要包括如 下步骤:
[0044] 步骤1、采集动目标的数据,通过设置数据的平滑方法对数据进行规范性检查:统 计三维场景中各航迹点位置之间的距离系数Dis和航向角系数Dir,对距离系数Dis大于 10公里的点进行大圆弧插值;对航向角系数Dir大于180度的点进行补点扩充;
[0045] 步骤2、建立数据结构,得到左扩展点位置坐标和右扩展点位置坐标;
[0046] 步骤3、计算比例系数,在目标运行过程中,根据目标包围盒中心与观察者的距 离DisToEye,实时计算出比例系数Scale,在每帧渲染过程中将其设置到GPU中,GPU根据 Scale对变换后的左扩展点位置坐标Vsl和右扩展点位置坐标Vs2进行二次转换,保证其在 不同显示比例尺下显示同样的像素宽度。
[0047] Scale=k*DisToEye;其中k为可输入的调节参数。最终输出的位置坐标VS1'计 算公式如下:
[0048] V
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1