电子论文-基于OpenGL技术的实时漫游系统研究及实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于OpenG L技术的实时漫游系统研究及实现
僧德文1,2,王红霞1
(1.浙江水利水电专科学校,浙江杭州 310018;2.北京科技大学土木与环境工程学院,北京 100083)
摘 要:结合水利行业的需求和当前可行的技术,讨论了基于桌面系统及通用平台开发实时漫游系统的技术关键和难点,给出了模型建立、转换及调用方法,并利用OpenG L技术基于Visual C++6.0集成开发环境开发了一个实用的实时漫游系统.
关键词:水利工程;漫游;数据模型;开放的图形程序接口
中图分类号:TP391 文献标识码:A 文章编号:1008-536X(2007)022*******
Study and Implementation of Real T ime Navigation System Ba sed on Open G L
S ENG De2wen1,2,WANG Hong2xia1
(1.Zhejiang Water C onservancy and Hydropower C ollege,Hangzhou310018,China;
2.Civil and Environmental Engineering School,Beijing University of Science and T echnology,Beijing100083,China)
Abstract:C ombined with the needs of water conservancy and feasible technology,this paper discusses the techniques and the difficulties in the development of a real time desktop navigation system based on comm on developing platform.The methods of construction,transi2 tion and usage of the visualized3D m odels are provided.A practical system is implemented by OpenG L on the Visual C++6.0inte2 grated development environment.
K ey w ords:water conservancy w orks;navigation;data m odel;OpenG L
0 引 言
现实世界是在三维空间延伸的,过去人们由于受认知能力、技术手段和硬件水平的限制,对现实世界的仿真基本上是二维形式.然而,二维仿真是一种抽象和简化,很多情况下不能有效地表达现实世界中的物体和现象,在某种程度上给人们的思维带来了一定的局限.近年来,可视化仿真技术的发展和硬件能力的提高,为人们更好地模拟和描述现实世界提供了方便[1].
OpenG L是SGI公司开发的一套高性能图形处理系统,它以高性能的交互式三维图形建模能力和易于编程开发,得到了Micros oft、I BM、DEC、S UN、HP等大公司的认同.目前它已经成为开放的国际图形标准[2].本研究结合水利工程特点,探讨基于PC机平台,在Visu2
收稿日期:2006212205
基金项目:浙江省教育厅科研立项项目(21205);浙江省水利厅科技项目(RC0605);浙江省高校青年教师资助计划项目(21223);浙江省教育厅科研立项项目(20060001)
作者简介:僧德文(1977-),男,福建漳州人,博士/博士后研究人员,主要研究方向为地学可视化、系统建模与仿真.al C++6.0集成开发环境下利用OpenG L技术开发三维实时漫游系统的实现方法.
1 三维仿真场景的构造
场景(Scene)是系统所有可视化对象的集合.一般来讲这些对象的形状可以通过点、线、面(多边形)进行拟合,对象的真实感则通过对三维物体进行裁剪、反走样、消隐并赋予阴影、光照、纹理和材质等属性来表现.三维空间虚拟场景的构造一般要经过以下步骤[3]:
(1)几何构模 就是对整个场景模型进行几何重建,主要运用数学方法建立所需场景的几何描述,并将它们输入计算机.这部分工作可由三维立体造型或曲面造型系统来完成.
(2)物理构模 所谓物理构模就是进行颜色、光照、材质和纹理等的处理,最终将几何图素及其视觉特征转换为可供显示的图形或图像.
(3)场景设置 在对三维场景进行渲染前,需要设置相关的场景参数值.这些参数一般包括光源性质(镜射光、漫射光和环境光)、光源方位(距离和方向)、明暗处理方式(平滑处理或平面处理)、纹理映射方式
第19卷 第2期浙江水利水电专科学校学报V ol.19 N o.2 2007年6月J.Zhejiang Wat.C ons&Hydr.C ollege Jun.2007
等.除此之外还需设定视点位置和视线方向.
(4)模型渲染 主要通过投影变换将三维空间场景转换为二维计算机屏幕上的图像.虚拟场景中一般都采用透视投影,以更好地模拟真实世界的情况.
2 虚拟漫游系统框架
通过可视化技术构造出三维虚拟场景后,系统必须提供一定的人机交互功能,使用户能够更好的理解和认识场景中的对象以及对象间的关系.在所有人机交互手段中,交互式漫游是最重要的一种虚拟观测手段[4].本研究设计了的虚拟漫游系统框架(见图1)
.
图1 三维场景虚拟漫游系统框架
整个系统由用户的交互输入控制场景的绘制与显
示.用户的输入主要指键盘、鼠标等输入设备的输入,经输入解释后将变成一系列的控制命令,进行场景数据的管理、几何模型的加载、物体光照、材质属性、不透明度以及视点方向、位置的设置等.之后,模型渲染模块能够根据用户的输入进行场景的实时绘制与动态显示.在这个过程中,还能够根据视点与物体之间的距离进行碰撞检测.
3 漫游功能的实现
三维场景漫游中,观察者可以通过鼠标或键盘来控制视点的位置、视向和参考方向.当视点的位置、视向和参考方向发生改变时,场景中的物体相对于观察者的方位也发生了改变,从而产生了“动感”.系统中,视点即为人眼的“化身”,其功能与现实世界的照相机类似,视线方向可由参考点位置确定(参考点位置减去视点位置即可得到视线方向的向量).漫游过程的实质就是通过不断移动视点或改变视线方向而产生三维动画的过程.3.1 键盘漫游命令的处理
键盘漫游就是通过操纵键盘实现用户在三维场景中的任意漫游.通过键盘漫游用户可以灵活、准确地对场景进行全方位的观察.键盘漫游的过程就是一个根据键盘命令连续不断地改变视点位置或视线方向并渲染场景的过程.通常,键盘漫游命令包括左转、右转、前进、后退、上升、下降、仰视、俯视、左移、右移等.本系统中使用的是Z 轴朝上的左手坐标系,Z 值代表场景的高度,响应左转、右转、仰视、俯视命令时视点均保持不变,只改变视线方向.对左转、右转视线分别绕Z 轴逆、顺时针旋转一定角度,对仰视、俯视则增、减视线与XY 平面的夹角(仰角);前进、后退时将视点分别沿视线方向、视线反方向移动一定距离(视行进速度而定);上升、下降时则只增、减视点高度值(Z 坐标值);左移、右移时只将视点进行平移,视线方向则保持不变.按照这种响应方法,通过空间向量分解运算,即可计算出新的视点和参考点坐标.例如当响应前进(后退)命令时视点与参考点坐标的计算公式为:
(1)视点坐标(speed 表示行进速度,anglez 表示视线绕Z 轴旋转的角度)
vEyePt.x =vEyePt.x +(-)speed ×sin (anglez );vEyePt.y =vEyePt.y +(-)speed ×cos (anglez );vEyePt.z =vEyePt.z ;
(2)参考点坐标(updown -angle 表示视线与XY 平面的夹角即仰角)
v LookPt.x =vEyePt.x +150×sin (anglez );v LookPt.y =vEyePt.y +150×cos (anglez );v LookPt.z =vEyePt.z +150×sin (updown -angle );上式中常数150是为了使视点和参考点之间保持一定距离而设置的.3.2 记录漫游路径通过键盘操作实现对三维场景实时漫游虽然灵活、方便,但用户不断地按下键盘显得有些烦琐.特别是当需要重复前一漫游过程时更是如此.为此,系统可设计一种对键盘漫游过程进行记录的功能(记录漫游路径).所记录的键盘漫游过程称为历史记录,通过重新播放历史记录便可实现对键盘漫游过程的再现[5].
记录键盘漫游过程的处理如下:首先记录下初始的视点、观察点、视线绕Z 轴旋转的角度、仰角等,然后对每种连续的键盘操作命令按“动作类型,执行次数”的格式进行记录,其中动作类型为上述的10种键盘漫游命令之一,目的就是将键盘漫游的整个过程解释为漫游命令序列.最后以一个相反的过程播放历史记录,即从文件中读取上述初始化参数并按照这些参
64
浙江水利水电专科学校学报第19卷
数对系统进行设置,而后读取键盘操作命令的序列并调用相应的命令处理函数进行处理.
4 系统优化
要达到真实模拟环境系统,对各类复杂的自然以及人造工程的真实模拟,需要借助于计算机真实感图形绘制技术才能完成,主要包括反走样、消隐、光照、阴影、材质纹理、融合、雾化等技术.图形真实感绘制直接影响到场景的真实性及其可视化效果,然而,真实感与实时性是相互对立的两个问题,很多情况下要在两者之间取得一个平衡[5].
本系统的优化着重于降低场景的复杂度在编程时采取了以下措施:
(1)对象的重复引用 场景中经常需要多个相同的虚拟物体,如相同的树木等,对于这类需重复出现的物体,采用了重复引用的方法,再通过几何变换得到其他位置的物体,该方法大大节省了内存,提高了动态显
示的速度.
(2)可见消隐 由于屏幕只显示观察者的视野,即使系统的整个仿真场景都被绘制,落在观察者视野之外的物体也是不可见的.因此,只要绘制观察者当前所能看见的场景便能达到要求.当观察者仅能看到场景的很少一部分时,由于系统只显示相应部分的场景,从而大大减少了所需显示的物体的数目.
5 结 论
作者在最近开发的水利工程三维可视化仿真系统中,运用前面介绍的方法方便而高效地实现了水利工程三维场景的交互虚拟漫游.系统漫游速度快、画面流畅、真实感强,实践效果良好.图2体现了用户在交互漫游过程中,从不同视点位置和视线方向观察的仿真场景三维效果.进一步的研究工作正在进行之中,目标是将各种人造工程实体集成显示到仿真场景中,并提供其它方式的交互漫游功能
.
图2 三维仿真场景虚拟漫游系统
参考文献:
[1] 汪成为,高 文,王行仁.灵境(虚拟现实)技术的理论、实现及应
用[M].北京:清华大学出版社,1997.
[2] 僧德文,李仲学,李春民.基于OpenG L 的真实感图形绘制技术研
究与实现[J ].计算机应用研究,2005,22(3):173-175.
[3] 僧德文,李仲学,李春民,等.地矿三维场景虚拟漫游技术及其应
用[J ].东北大学学报,2004,25(S2):35-37.
[4] 尚建嘎,刘修国,郑 坤.三维场景交互漫游的研究与实现[J ].计
算机工程,2003,29(2):61-63.
[5] 彭群生,鲍虎军,金小刚.计算机真实感图形的算法基础[M].北
京:科学出版社,1999.
第2期僧德文等.基于OpenG L 技术的实时漫游系统研究及实现
65 。