航空数字化仪表中动画显示技术的应用
一、 引言
目前飞机座舱显示系统中使用的电子显示仪表,基本上沿用传统的指针显示形式。而计算机成像的彩色动画显示格式,则突破了传统的显示形式,使飞行员能迅速掌握瞬息变化的动态信息,做到一目了然,直接提高飞行员的作战能力。在座舱显示系统中最常见的显示方式就是指针指示。这就涉及到指针的动态显示原理, C语言标准图形函数通常强调更高的通用性,于是必然付出函数效率很低的代价,另外也不支持256色的显示模式,不能满足座舱显示系统的要求,所以本人开发了一套SVGA256色显示模式下的图形函数库,从显示模式设置的的底层开始,到运用显存自身实现双缓冲显示技术,大大提高了效率与显示质量。
二、 常用动画显示技术介绍
图形动画技术有很多种,对C语言编程比较适合的主要包括:
1) 重画技术:
画了擦,擦了再画,或者一张一张贴(覆盖)上去。这是最常用的一种技术,操作比较简单,又分为全屏重画和局部重画两种,但动画效果较差,存在闪烁现象。
2) 异或技术:
通过对写入点和屏幕颜色进行逻辑异或运算,来实现擦除和重画运动部分的动画。具体的说就是如果在同一个位置用异或的方法画两个颜色相同的点,点会消失;而用不同颜色画点,点会变成第三种颜色。这种方法由于也存在二次擦除的过程,所以也会有闪烁现象。
3) 调色板技术:
利用预先设置的动作图片和显示适配中彩色表(调色板寄存器)通过屏幕的颜色变化来实现动画的技术。在SVGA显示模式下,256种颜色分别对应256个调色板寄存器,而每种颜色又是由R、G、B(范围都是0-255)三原色的值配出来的,每一个寄存器中的值可由程序进行设置,即可以通过程序改变这256个索引颜色的实际颜色。于是可以先将几个索引颜色设置为黑色,然后使用这几个索引颜色依次绘制出动画元素每个动画动作,这样每次将当前位置动作所用的索引颜色值设为当前颜色,其它动作的索引颜色设为黑色,就可以实现动画显示。
这种动画方法由于不对屏幕进行操作,所以画面及其稳定、流畅,无闪烁现象。但由于动画的所有动作都必须在动画之前完成,而且要用不同的索引颜色,所以这种方法无法处理复杂的动画元素。对于机载显示系统来说,指针的实际位置很多,而且要根据实际情况而定,所以无法采用调色板技术实现指针的动画显示。
本人所开发的某机载显示系统中,需要256色支持,所以采用了SVGA显示模式,运用重画技术与双缓冲技术相结合来实现仪表中指针及其它图像的动态显示。重画技术是编程人员最容易想到的一种动画方法,它来自于人们对动画显示最基本的理解——将前一次显示的图形擦去再在当前位置画上要显示的图形。但这种方法存在着一个致命的缺点,那就是图形闪烁问题。闪烁现象主要是由于将擦写的操作过程放在观众面前造成的,于是我们可以考虑将操作放到幕后,待操作完成后再将它快速映射到屏幕上去。事实上这将大大提高动画显示的速度和稳定性。在C语言标准图形函数中也提供了setvisualpage()和 setactivepage()两个函数来实现这一思想,但这两个函数的操作是对整个屏幕进行映射,效率较低,而且在SVGA显示模式下无法应用,所以必须从SVGA模式的设置、显示原理的底层出发来实现最终的动画显示。
相关文章
- 2023-08-06基于神经网络及数据融合的管道缺陷定量识别
- 2023-04-25高光谱短波红外地物光谱仪的光机设计
- 2021-12-01基于FPGA的动态可重配置的IP报文过滤系统
- 2022-09-02一种小型多用途定日装置的研制
- 2022-06-18误差补偿技术及应用特点
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。