OpenGL在计算目标电磁散射特性中的应用

2012-09-21 05:33:48王静席泽敏周超
船电技术 2012年3期
关键词:入射角绘制电磁

王静 席泽敏 周超

(海军工程大学电子工程学院,武汉 430033)

1 引言

OpenGL即开放型图形库(open graphic library),是一个优秀的三维图形硬件的软件接口,同时也是一个跨平台、开放性的三维图形和模型库。在分析复杂目标的电磁散射特性时,首先建立目标的几何模型。如果利用OpenGL会比较复杂,因为它没有建立三维几何模型的高级命令,要通过建立基本的几何图元(如点、线、面等)来实现。相对而言运用3DS MAX软件建模要节约不少时间。

在电磁环境中,入射角相对于目标体的入射角度不同会引起目标不同的散射特性,因此准确判断入射方向上目标的可见部分是散射计算的前提,即目标的遮挡面判别。OpenGL作为一种用于实时3D图形的应用程序编程接口(Application Programming Interface,API),提供了 155 个图形函数,可以利用这些函数来实时构造目标模型。

计算机图形学中介绍了复杂物体的面消隐方法主要有区域排序法、深度缓存法、扫描线算法[1]。本文利用 OpenGL的图形功能和 VC++的编程功能,实现读取3DS模型文件并设置光照入射点,利用深度缓存法(z-buffer algorithm)绘制不同入射角度时的目标模型可见部分。该算法通过借助额外的存储空间来保存绘制过程中绘制器已经绘制的多边形的深度信息。所以在使用时启用深度缓存以后还必须清空深度缓存。

2 3DS模型文件的读取和场景绘制

表1 几个主要块的ID与包含信息

3DS模型文件的基本构成单位是块,块包括块头和主体内容,块头又包括块的 ID和块的长度,主体内容是块的数据信息。每一个3DS文件的开头都是由一个ID为0x4D4D的基本块构成,此外还有两种主块:ID为3D3D的3D编辑程序块和ID为B000的关键帧块。表1所示为几个主要块的 ID与包含信息。下面列出几个主要块的ID与包含信息。

下面进行文件内容的读入[3]:

①首先定义读取模型中需要设置的一系列数据结构。

④场景初始化:创建窗体,初始化 OpenGL环境,设置OpenGL绘图窗口大小,投影模式,定义视图体,设置光源,定义视点位置、视角和视线方向。

在OpenGL中设置光源函数为glLight*()[1,2],用时需启用光照计算,例如对于单个光源可以输入代码:

glEnable(GL_LIGHTING);

该函数涉及的参数包括视口位置(eye)、被视察点(at)、所期望的up方向。

⑤绘制场景:调用类CTriList中的drawGL()绘制函数,通过函数 glTranslatef 、glRotatef实现物体在坐标系中的移动和旋转得到期望的场景显示。

启动深度检测,打开深度检测开关,并设置检测方式:

并且在完成绘图以后,实现禁止深度检测:

3 示例

以舰船模型为例,使用 3DS MAX软件建其模型如图1所示。

图1 3DS MAX模型

将其3DS文件读入OpenGL,设置视口位置,开启深度缓存,绘制场景图。以四个入射角度为例,λ代表入射角,θ代表俯仰角,船头方向为正方向。图2显示了不同入射角度船模可见部分显示。

可以通过对图像的移动进行放大和缩小,可以清晰的显示在固定入射角时物体的可见部分,并且可以快速的进行判别。

4 结论

在进行目标电磁计算时对目标的可见部分进行判别是必不可少的一部,对于简单的物体可以使用面自身的遮挡以及面与面的遮挡来判别,但是对于复杂的物体来说,判别的过程比较麻烦。因此,本文选用在 VC++6.0的基础上使用OpenGL实现对3DS格式的导入,即可以简化建模的过程,也可以通过OpenGL实现入射方向上目标可见部分的实时判别。不仅缩短了判别的工作量和时间,也适用于电磁散射计算中。

[1]李春雨等. 计算机图形学及实用编程技术[M]. 北京航空航天大学出版社, 2009: 157-158, 271-274.

[2]Edward Angel.OpenGL编程基础[M]. 北京: 清华大学出版社(2008): 75-96, 120-128.

[3]和平鸽工作室. OpenGL高级编程与可视化系统开发高级编程篇[M]. 中国水利水电出版社(2005):68-77.

[4]汤彬. 基于 OpenGL图形消隐的研究[J]. 上海工程技术大学学报, 2005(3).

[5]高美真, 黄娇青. OpenGL中的图形变换[J]. 焦作师范高等专科学校学报, 2006(6).

[6]潘修强. 利用OpenGL和3DS MAX构建复杂模型[J]. 浙江工贸职业技术学院学报, 2006(12).

[7]赵卫东, 卫刚, 李启炎. 在OpenGL下面消隐和线消隐的实现[J]. 计算机工程, 2002(6).

[8]杨东梅, 朱胜缘, 路伟成. OpenGL与 3D Studio MAX结合实现三维仿真[J]. 应用科技, 2004(2).

猜你喜欢
入射角绘制电磁
Art on coffee cups
一般三棱镜偏向角与入射角的关系
三维多孔电磁复合支架构建与理化表征
预制圆柱形钨破片斜穿甲钢靶的破孔能力分析*
放学后
童话世界(2018年17期)2018-07-30 01:52:02
用经典定理证明各向异性岩石界面异常入射角的存在
掌握基础知识 不惧电磁偏转
在转变中绘制新蓝图
中国卫生(2014年9期)2014-11-12 13:02:00
电磁换向阀应用探讨
河南科技(2014年16期)2014-02-27 14:13:21
瞬变电磁法在煤矿防治水中的应用
河南科技(2014年8期)2014-02-27 14:07:41