×
模拟电路设计 > 详情

基于可编程渲染管线的雷达图像分层模型设计与实现

发布时间:2020-07-02 发布时间:
|


0 引 言
雷达显示系统用于显示接收机输出的回波图像,以及信息处理机产生的二次信息和符号,是雷达操作员获取信息的主要途径。雷达的计算机模拟是雷达设计、分析以及训练的有效方法。而显示系统的模拟作为雷达计算机模拟的最终输出结果,其逼真度、实时性直接影响着系统的整体性能。显示系统模拟的主要任务包括:对接收机输出的回波数据,信息处理机产生的ARPA信息,以及各种符号等进行转换,合成为显示器2D光栅图像;对生成的回波图像模拟余辉效果;控制合成图像的亮度、对比度等。
对显示系统的模拟一般方法:在雷达图像刷新过程中对全屏像素逐一进行坐标变换(光栅图像的直角坐标转换为回波数据的极坐标)以查找对应的回波脉冲幅值,形成屏幕像素颜色值;衰减像素亮度,模拟显示器余辉效果(涉及到色饱和计算);设置像素颜色,生成逼真度非常高的雷达图像。但这种方法需要存取大量的像素,难以满足实时性的要求。例如,雷达显示器分辨率为1 000×1 000,则每帧需存取3.14×5 002=785 000个像素。而要保持画面流畅,帧速率应保持在30 f/s以上,即每秒需要进行23 550 000次像素存取。而这才仅仅模拟了雷达的显示系统。
为了提高效率,一些改进的算法被提出:预先建立坐标映射表,利用查表方法减少坐标变换的运算;嵌入MMX指令减暗颜色;利用DirectX等图形API直接存取显存等。这些方法减少了单个像素的处理时间,但由于像素存取次数多,仍然占用大量的CPU时间。
要大幅提高雷达显示系统模拟的效率,必须降低帧间隔内需要处理的像素总数。本文提出的方法基于现代显卡的可编程管线技术,将回波图像更新、余辉效果仿真、ARPA符号绘制与最终的图像合成过程隔离开来,并充分利用cPU和GPU并行处理。在帧间隔内由CPU完成对扫描线转过的区域进行图像更新和少量的余辉亮度计算,GPU完成图像合成,避免了对全屏海量像素的存取,极大地提高了显示模拟的效率。以某舰载导航搜索雷达为例,显示器分辨率为1 000×1 000,天线转速为20 r/m,模拟程序帧速率为30 f/s,天线旋转一周产生4 096条方位刻线。则模拟程序每帧需要存取785 000×20/(60×30)△8 700个像素。再加上设置4 096条方位刻线余辉亮度,总计存取次数不到原先的1%,效果十分显著。


1 可编程渲染管线与Direct3D 9
可编程管线(Programmable Pipeline)是现代高性能显卡的一个重要技术特征。所谓可编程管线,是指可以编写一段运行于GPU(图像处理单元)的代码,对输入显卡的原始数据进行加工处理后再输出到显示器上。这样的代码称为着色器(shader),包括顶点着色器(vertex shader)和像素着色器(pixel shader),分别用于对要绘制模型的顶点和纹理进行变换和混合。由于着色器代码独立运行在显卡中,不占用CPU时间,而且GPU专门针对图像计算进行了优化,因此代码的运行效率高,图像处理的速度快。尽管可编程渲染管线设计的目的是满足日益复杂的3D应用环境,但由于其结构灵活,采用适当的方法编写代码,在2D环境中仍然能发挥出显卡的绘图能力。
Direct3D是微软提供的基于组件对象模型(COM)的底层绘图API,它建立在硬件抽象层(HAL)之上。Direct3D检查显卡的能力,并以标准的COM接口将显卡功能暴露给开发人员,从而使其能够安全地直接访问显卡硬件,提高应用程序的渲染速度。Direct3D 9全面支持可编程渲染管线,并引入高级着色语言(HLSL)来编写着色器代码。利用Direct3D 9 SDK来编写雷达模拟器的显示系统代码,可充分发挥显卡硬件的能力。
为了能够在雷达显示的2D环境中使用Direct3D,只需要做如下处理:将雷达图像绘制在纹理上,用三角形扇来模拟圆形,将三角形顶点的纹理坐标设置成雷达图像纹理的对应数值。将纹理和顶点告知Direct3D,便可渲染出雷达显示器图像来。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
实例说明晶体二极管在电力中的应用