APP下载

基于OpenGL纹理映射的雷达图像显示技术研究

2017-01-18崔荣华

舰船电子对抗 2016年6期
关键词:顶点纹理合肥

李 帅,崔荣华

(1.中国电子科技集团公司第38研究所,合肥 230088;2.孔径阵列与空间探测安徽省重点实验室,合肥 230088;3.智能情报处理重点实验室,合肥 230088)

基于OpenGL纹理映射的雷达图像显示技术研究

李 帅1,2,3,崔荣华1,2,3

(1.中国电子科技集团公司第38研究所,合肥 230088;2.孔径阵列与空间探测安徽省重点实验室,合肥 230088;3.智能情报处理重点实验室,合肥 230088)

针对雷达图像显示的特点,提出了一种基于OpenGL纹理映射机理的雷达图像显示算法,给出了详细的纹理映射机制步骤,阐述了雷达图像显示的算法和实现流程。该显示算法可以满足目前雷达图像显示的需求,具有很强的普适性。

OpenGL;纹理映射;图像显示

0 引 言

雷达图像显示在合成孔径雷达的显示技术中具有非常重要的地位。合成孔径雷达的图像一般是地形信息,具有要求实时显示、数据量大、需要提供快速的放大、缩小、漫游等基本操作的特点。

OpenGL是由SGI公司推出的独立于操作系统和硬件环境的开放式图像库,开发人员可以利用提供的这些函数来构造景物模型,实现图像的实时显示。OpenGL具有强大的图形功能和良好的跨平台移植能力,已被广泛用于可视化技术、模拟仿真等多个领域[1]。纹理映射技术是OpenGL中非常重要的技术之一,纹理映射通过将像素与几何对象结合,为几何对象营造出一种非常复杂、真实的视觉效果,同时避免了建立大量几何模型所需要的开销[2]。

本文结合雷达图像显示的特点,采用OpenGL的纹理映射技术,为雷达图像的快速实时显示提供了一种有效可行的方法。

1 纹理映射的执行机制[3-5]

1.1 纹理图像尺寸

OpenGL的纹理映射技术与硬件平台的支持是息息相关的。对于早期的集成显卡,如Mobile Intel(R)96 Express Chipset Family、Intel(R) Q35 Express Chipset Family,纹理图像的宽和高必须是2的n次方。对于早期的独立显卡英伟达GForce210,纹理图像的宽度要求是4的倍数,对高度没有要求。这些硬件平台对OpenGL纹理映射技术的应用在软件设计时需要密切关注。

1.2 纹理映射的步骤

虽然纹理映射比较复杂,但是一般的步骤包括以下几个部分:

(1) 定义纹理

(a) 纹理名字的生成

纹理对象是用来存储纹理数据的,创建了纹理对象,就可以根据需要将多个纹理一次性载入内存,以便场景绘制时随时引用。在创建纹理对象之前,首先需要生成纹理名称,调用glGenTextures()函数:void glGenTextures(GLsizei n,GLuint * textureNames)。

(b) 纹理对象的创建和使用

生成纹理名后,将纹理名称绑定到纹理数据上,调用glBindTexture()函数:void glBindTexture(GLenum target,GLuint textureName)。

(c) 载入纹理

将纹理应用到几何图形上的必要步骤就是将纹理载入到内存中。纹理通常被认为是二维的,实际上纹理也可以是一维、三维。载入二维纹理的函数是glTexImage2D():void glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)。

(2) 控制纹理

纹理图像在映射到物体时会产生很多问题,主要包括纹理图像的纹理怎么对应到屏幕上的像素,怎样通过纹理贴图实现纹理缩放和纹理重复等。调用函数glTexParameter():void glTexPaameterf(GLenum target,GLenum pname,GLfloat param),其中target参数为目标纹理,pname参数的取值有如下几种:GL_TEXTURE_MIN_FILTER、GL_TEXTURE_MAG_FILTER、GL_TEXTURE_WRAP_S、GL_TEXTURE_WRAP_T,param参数的取值要根据pname而定。

(3) 设置映射方式

OpenGL对于不同的渲染类型有3种纹理模式:GL_MODULATE,GL_DECAL和GL_BLEND。使用glTexEnvi()函数设置纹理模式:void glTexEnvi(GL_EXUE_ENV,GL_TEXUE_ENV_ODE,GL_DECAL)。

(4) 使用纹理坐标

纹理坐标控制纹理图像中的像素如何映射到物体上。纹理坐标可以包含1、2、3或4个坐标值,通常用s、t、r和q来表示。OpenGL用函数glTexCoord()定义纹理坐标。

2 雷达图像显示算法

2.1 雷达图像显示流程

本文中提到的雷达图像为原始图像RAW格式,采用OpenGL纹理映射的方式进行图像的显示,图像显示提供漫游、放大、缩小等功能。雷达图像的显示流程如图1所示。

图1 雷达图像显示流程

由于雷达RAW格式的原始图像一般都比较大,甚至达到几十兆,考虑到图像显示的时效性并且可以支持图像的实时滚动显示,采用依据图像显示的大小即图像的起始位置对雷达图像数据进行实时读取的算法进行显示。下面针对图像数据的实时读取算法进行详细介绍。

2.2 雷达图像数据实时读取算法

雷达图像与纹理图像之间的位置关系可以按照长度、宽度2个维度进行分开讨论。图2给出了在宽度维度下,雷达图像与纹理图像之间的位置关系。其中包含了2个坐标系:一个是以纹理图像的左上角顶点为原点建立起的DrawX-DrawY坐标系;另外一个是以雷达图像的左上角顶点为原点建立的ImageX-ImageY坐标系。

图2 雷达图像与纹理图像的位置关系

图2中所标识的各参数的具体含义如下:DrawWidth:纹理图像的宽度;DrawHeight:纹理图像的长度;ImageWidth:雷达图像的宽度(包括缩放比例);ImageHeight:雷达图像的高度(包括缩放比例);RegionLU.x:雷达图像左上角顶点的x坐标(DrawX-DrawY坐标系);RegionLU.y:雷达图像左上角顶点的y坐标(DrawX-DrawY坐标系);sx:需要显示的雷达图像起始位置的x坐标(ImageX-ImageY坐标系,且显示图像与纹理图像有交集,否则取默认值0);sy:需要显示的雷达图像起始位置的y坐标(ImageX-ImageY坐标系,且显示图像与纹理图像有交集,否则取默认值0); sw:需要显示的雷达图像的宽度; sh:需要显示的雷达图像的高度; x:雷达图像左上角顶点的x坐标(DrawX-DrawY坐标系,显示图像与纹理图像有交集,否则为默认值0); y:雷达图像左上角顶点的y坐标(DrawX-DrawY坐标系, 显示图像与纹理图像有交集,否则为默认值0)。

图3列出了在宽度维度下,雷达图像与纹理图像的6种位置关系,每种位置关系都对应了不同的雷达图像数据的起始位置。

图3 雷达图像显示画面

具体算法如下:

(1) RegionLU.x<0且RegionLU.x+ImageWidth<0时,sx=0,sw=0,x=0;

(2) RegionLU.x<0且0

(3) RegionLU.x>0且0

(4) RegionLU.x<0且RegionLU.x+ImageWidth>DrawWidth时,sx=RegionLU.x,sw=DrawWidth,x=0;

(5) RegionLU.x>0且RegionLU.x+ImageWidth>DrawWidth时,sx=0,sw=DrawWidth-RegionLU.x,x=RegionLU.x;

(6) RegionLU.x >DrawWidth时,sx=0,sw=0,x=0。

同理,在长度维度下,雷达图像与纹理图像也有6种位置关系,可分别得出不同位置关系下的sy,sh,h。

3 应用实例

上述雷达图像显示算法已在某合成孔径雷达中得到应用。程序运行在Intel(R) Core(TM)i5-3470 CPU上,主频3.20 GHz,集成显卡Intel(R)HD Graphics 2500。图3是雷达图像的显示画面,可实现图像漫游、放大、缩小,并且画面清晰平滑,显示流畅,满足雷达图像显示的需求。

4 结束语

本文在OpenGL纹理映射机制的基础上,针对雷达图像的特殊情况,提出了一种雷达图像显示算法。该算法采用实时读取雷达图像数据的算法,有效地提高了雷达图像显示的速度,保证了图像显示的时效性,能满足大多数雷达图像显示的要求,可以广泛用于陆海空军事作战显示系统中。

[1] SHREINER D.OpenGL编程指南[M].李军,徐波译.北京:机械工业出版社,2013.

[2] 丘文姬,陈哲亮,陈维斌.基于OpenGL技术的集装箱仿真系统的研究与开发[J].计算机工程与设计,2009,30(22):5144-5146.

[3] 朱小强,谢明红,叶丽,扬殿龙.基于VC的纹理贴图技术[J].微计算机应用,2008,29(4):83-84.

[4] 陈应松,胡汉春,肖世德.基于OpenGL纹理映射技术实现动态图像的应用[J].计算机仿真,2004,21(5):130-131.

[5] 姬建伟.GPU中纹理映射的研究与设计[M].西安:西安邮电学院,2011.

Research into Radar Image Display Technology Based on OpenGL Texture Mapping

LI Shuai,CUI Rong-hua

(1.No.38 Research Institute of CETC,Hefei 230088,China;2.Key Laboratory of Aperture Array and Space Application,Hefei 230088,China;3.Key Laboratory of Intelligent Information Processing,Hefei 230088,China)

Aiming at the features of radar image display,this paper presents a radar image display algorithm based on OpenGL texture mapping mechanism,gives the detailed steps of texture mapping mechanism,expatiates the algorithm and realization flow of radar image display.The display algorithm can satisfy the requirements of present radar image display,and has good universality.

OpenGL;texture mapping;image display

2016-06-06

TN957

A

CN32-1413(2016)06-0036-03

10.16426/j.cnki.jcdzdk.2016.06.007

猜你喜欢

顶点纹理合肥
合肥的春节
合肥的春节
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
合肥井松自动化科技有限公司
基于BM3D的复杂纹理区域图像去噪
合肥蜂巢城市会客厅
使用纹理叠加添加艺术画特效
TEXTURE ON TEXTURE质地上的纹理
消除凹凸纹理有妙招!