2024年5月9日发(作者:)

OpenGL 在自动化网架中的应用

邹承明,靳俊霞

武汉理工大学计算机科学与技术学院,武汉 (430070)

E-mail:jinjunxia818@

摘 要:本文使用OpenGL作为三维立体视觉图形渲染工具,结合自动化大型工程的钢结构

原理,绘制逼真三维的网架结构,并通过对三维网架的旋转,平移,放大,缩小等变换的实现,达到

于用户的良好交互性,采用优化的OpenGL 拾取原理,对安装在网架中的传感器进行跟踪并

通过读入数据库中的变化数据,拾取网架中相应的传感器,为其绘制每个传感器数据变化曲

线图,以便实时查看网架的承受力情况,达到良好的交互性和实时性.

关键词: OpenGL,拾取,旋转,网架

中图分类号: TP391 文献标识码:A

1. 引言

随着计算机多媒体技术、可视化技术及图形学技术的发展,我们可以使用计算机来精

确地再现现实世界中的绚丽多彩的三维物体,并充分发挥自身的创造性思维,通过人机交互

来模拟、改造现实世界,利用这种技术,建筑工程师可以直接设计出美观的楼房模型;军事指

挥员可以模拟战场进行军事推演,网民可以足不出户游览故宫博物馆等名胜古迹等。在经济

建设和文化建设飞速发展、人民生活日新月异的今天,为了满足社会发展,人民生活和居住

环境的需要,人们需要更大跨度的覆盖空间,如大型的集合场所,体育馆、飞机场、游泳池、

候车大厅、仓库及各种大跨度的工业厂房等跨度要求很大,空间三维网架的绘制,方便工程师

对屋顶钢结构网架的安全预测,针对一些自然现象如积雪, 利用传感器传来的数据, 使用

OpenGL 模拟空间网架的受力变形情况, 以便做出早期的安全预警.

1.1 OpenGL 简介

OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库. 它

是与硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、

MacOS、OS/2之间进行移植。OpenGL实际上是一个开放的三维图形软件包,它独立于窗

口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL

可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性

和可靠性.OpenGL流水线工作的原理:客户端(即编写的图形应用程序)主要为命令和数据;

服务器(流水线)使用帧缓冲区.客户在程序中所发的命令和数据并不是立即传到流水线执

行的,流水线在收到glFlush/glFinish/SwapBuffers之类的命令之后才会真正开始执行命令加

工数据,这些命令都有说明某一阶段处理相关的指令数据改送已经结束请求获得所需结果的

含义。也就是所谓的客户/服务器模式

[1]

1.2 Windows操作系统对OpenGL的支持

在Windows下用GDI作图必须通过设备上下文(Device Context简写DC)调用相应的函

数;用OpenGL作图也是类似,OpenGL函数是通过"渲染上下文"(Rendering Context简写

RC)完成三维图形的绘制。Windows下的窗口和设备上下文支持"位图格式"(PIXELFORMAT)

属性, 和RC有着位图结构上的一致。只要在创建RC时与一个DC建立联系(RC也只能通

- 1 -

过已经建立了位图格式的DC来创建),OpenGL的函数就以通过RC对应的DC画到相应的

显示设备上,此外使用OpenGL还应注意以下几点

[1]

:

1.一个线程只能拥有一个渲染上下文RC,一个RC也只能属于一个线程,不能被不同线

程同时共享。

2.设定DC位图格式等于设定了相应的窗口的位图格式,DC和窗口的位图格式一旦确

定就不能再改变。

3.在任何时刻只能利用一个DC,一个窗口可以让多个DC作图从而可以让多个线程利

用多个RC在该窗口上执行OpenGL操作。

4.当使用双缓存用OpenGL产生动画时,不能使用GDI函数向该DC作图。

1.3 应用背景

本程序设计按照武汉体育中心二期工程游泳馆钢结构监测项目的招标要求,绘制空

间三维游泳馆屋顶网架结构, 为了实现对武汉体育中心二期工程游泳馆屋顶钢结构网架的

安全预警,建立了结构的有限元模型,并在最不利雪荷载作用下对结构进行了有限元分析,

从而确定了60个关键杆件,在其上布置应变传感器,将应变传感器同步测得的应变信号通

过半桥三芯线传输到应变仪,通过无线发射和无线接受装置将信号传输到数据库及安全预警

模块管理系统。为了实现网架结构施工超载的自动报警,分别分析了游泳馆网架存在施工辅

助支撑时的有限元模型和拆除施工辅助支撑后的有限元模型,并确定了30个关键杆件。在

这些关键杆件上布设应变传感器,将应变传感器同步测得的应变信号通过半桥三芯线传输到

应变仪,通过无线发射和无线接受装置将信号传输到计算机中。绘制网架结构中,将传感器

用红色杆件标记,方便处理。由传感器得到的实际数据,模拟空间网架的受力情况, 以人机交

互界面告知整个网架结构和关键杆件的工作状态,当它们的最大等效应力趋近屈服强度极限

时,及时报警,避免危及网架结构安全的情况出现.

在屋顶施工时,能对因施工超载或布

局不合理引起的网架结构构件的不安全通过人机交互界面作出安全预警,及时告知施工单位

采取相应措施,其所属系统模块如图(1).

图 1 网架结构检测子系统

2. OpenGL 的绘图

2.1 OpenGL 绘制网架流程

按照上面的绘图机制,配置一个OpenGL的三维绘制环境,另外,初始化OpenGL环境时,

要使用到两个矩阵,GL_PROJECTION, GL_MODELVIEW两个矩阵,前一个投影矩阵在使用

时,固定不变,它定义的是OpenGL的虚拟视角的位置及其观察世界方式;而后一个是不停变化

的,通过它的变化实现如视角转换,物体旋转,及物体拾取等功能.

绘制物体时,使用透视投影函数gluPerspective设定观察物体的方式,观察范围为一个四棱

锥的形式,物体的观察效果为进大远小的效果,有一种层次感,同时为后面的物体拾取做铺垫.

- 2 -