基于OpenGL的三维仿真系统研究与应用.pdf
《基于OpenGL的三维仿真系统研究与应用.pdf》由会员分享,可在线阅读,更多相关《基于OpenGL的三维仿真系统研究与应用.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C N 4 3 1 2 5 8 T PI S S N1 0 0 7 1 3 0 X计算机工程与科学C O M P U T E RE N G I N E E R I N G S C I E N C E2 0 0 5 年第2 7 卷第1 2 期V 0 1 2 7,N o 1 2,2 0 0 5文章编号:1 0 0 7 1 3 0 X(2 0 0 5)1 2 0 0 6 5-0 3基于O p e n G L 的三维仿真系统研究与应用R e s e a r c ho f3 DS i m u l a t i o nS y s t e m sB a s e do nO p e n G L王碧波。毋国庆W
2、A N GB i b o,W UG u o-q i n g(武汉大学计算机学院,湖北武汉4 3 0 0 7 2)(S c h o o lo fC o m p u t e rS c i e n c e-W u h a nU n i v e r s i t y-W u h a n4 3 0 0 7 2,C h i n a)摘要:本文研究了在M F C 中运用O p e n G L 进行编程,重构三维实体的方法,论述了利用O p e n G L 进行三维仿真的优点、仿真几何模型的构建,以及光照、色彩、材质、视口变换和运动方式等问题的处理。该方法已成功地应用于葛洲坝集团三峡三期工程大坝浇筑仿真系统中。
3、A b s t r a c t:I nt h i sp a p e r,am e t h o da b o u th o wt Op r o g r a mi nM 咂Cw i t hO p e n G Lt Os i m u l a t e3 Do b j e c t si sp r e s e n t e d T h ev a l u eo ft h i sa l g o r i t h mi sd i s c u s s e da n dt h et e c h n o l o g yo fb u i l d i n gag e o m e t r i cm o d e l,l i g
4、h ta n dc o l o rm o d e la r ei n t r o d u c e d,v a r i o u so t h e rm e t h o d sa r ea n a l y z e d T h ep r e s e n t e da l g o r i t h mh a sb e e ns u c c e s s f u l l yu s e di nt h e3 Ds i m u l a t i o ns o f t w a r ef o rt h eb u i l d i n g-d a ms i m u l a t i o no ft h eT h r e e
5、-G o r g e sP r o j e c t 关键词:O p e n G L;三维仿真;三峡K e yw o r d s:O p e n G L;3 Ds i m u l a t i o n;T h r e eG o r g e s中图分类号:T P 3 9 1 9文献标识码:A1引言对于三维仿真的研究是目前技术领域的一个热点,借用三维图形技术可以极大地提高应用的效果。开发设计一个三维仿真系统所需涉及到的理论和技术是非常庞大和复杂的,从应用层的角度来考虑,需要有一种方便、有效的手段来实现。目前,国内的企业、厂家对于C 6 C M 技术的应用已有很好的认识,二维图形的应用已非常普及,随着技
6、术的提高,逐步向三维图形转换。不少企业也引进了一些著名的设计系统,但这些系统价格昂贵,庞大复杂,专业性强,许多功能极为繁杂。开发一种简便有效的三维仿真系统对提高技术有一定的实际意义。为此,本文提出了一种基于O p e n G L 的三维仿真系统的开发方法,通过应用于大坝建设过程模拟中,验证了该方法的有效性和简便性。2O p e n G L 概述1 O p e n G L 是美国高级图形和高性能计算机系统公司(S G I)开发的三维图形库,它广泛适合于计算机系统环境下的三维图形应用程序设计接口,目前已成为开放式的国际三维图形程序标准。O p e n G L 实际上是与图形硬件完全无关的程序设计接
7、口,由1 0 0 多个相关命令与函数组成。O p e n G L 是种基于状态的执行机制,即O p e n G L 命令的执行被置于各种状态中,而且一直有效地保持到有命令改变这种状态为止。S G I 公司为用户提供了三个连接库,使其对于O p e n G L 的程序设计更简化,它们是:(1)实用库(G L U),用以执行特殊任务,如坐标变换、纹理映射、多边形网格化、M 球B S 曲线曲面等操作;(2)视窗系统扩展库(G L X),用以把O p e n G L 设备场景与视窗系统相关联;(3)辅助库(G L A U)(),用以初始化窗口、监控输入输出、绘制三维对象等。3 仿真软件的设计思想在本软
8、件中,采取面向对象(o o A 0 0 D)的分析设计思想,提取大坝的特征数据作为参数控制,将这些抽象的数据依据面向对象原理封装为可操作的对象,通过数据的图元化、图元的参数化、图元的属性化、图元属性的参数化构造坝体对象绘制类。数据的图元化就是将抽象数据表示转化为图形或图像图元表示。图元一般为点(P o i n t)、线(L i n e)、面(F a c e)和体(E n t i t y)等,由这些图元构成可视化的三维模型。图元的参数化包括集合造型的参数控制、光+收稿日期:2 0 0 4-0 5-1 0 l 修订日期:2 0 0 4-0 6 1 2作者简介:王碧波(1 9 7 6 一),男,湖北
9、鄂州人,硕士生,研究方向为计算可视化;毋国庆,教授,博士生导师,研究方向为需求工程、知识工程和计算可视化。通讯地址:4 3 0 0 7 2 湖北省武汉市武汉大学计算机学院毋国庆;T e l:(0 2 7)8 7 2 1 2 5 2 9;E-m a i l:h b w a n g b i b o 1 6 3 c o r nA d d r e s s:S c h o o lo fC o m p u t e rS c i e n c e,W u h a nU n i v e r s i t y,W u h a n,H u b e i4 3 0 0 7 2,P RC h i n a6 5 万方数据照模
10、型的参数控制、视点的参数控制、投影类型等。图元属性包括颜色、透明性、材料的光学性能及纹理等。这些参数混合在一起构成可交互的三维显示。同时,提供了仿真参数和算法策略的对象控制方法,实现实时交互、实时仿真。4 系统结构在W i n 2 0 0 0 平台上,以V i s u a lC+6 0 为开发工具进行O p e n G L 编程设计,通过A u t o C A D 3 D M A X 建立模型,将模型数据转换到O p e n G L,建立显示列表,加入色彩、材质、纹理、光照、背景等,选择定义的运动方式,确定合适的投影、视口的变换,则能实现对实体及过程的三维仿真。系统的结构总框图如图1 所示。、
11、悠怒兰篓皓卸面丽丽蓰光照和背景等的选取C 叮u=二;二二二二=投影、视口等变换|爿模型组合|黯i光栅化缓存(前帧显示图1 系统的总体框架图5 具体功能实现仿真实现5 1 模型的建立和数据转换在三维图形的处理过程中,要绘制许多复杂的图形,如坝体的钢管、廊道、平台等,单纯利用O p e n G L 库提供的基本几何体构造比较困难。对O p e n G L 分析研究可以知道,这对模型的数据格式没有特殊的要求,并不要求把三维物体模型写成固定的数据格式,故模型的建立可以借用通用的建模软件工具,如A u t o C A D、3 D I 儿气X。最常用的三维模型数据是用许多小的多边形来拼合模型的外观,文件中
12、保存这些多边形的信息。由于O p e n G L通过了最基本的由多边形构成模型的方法,如三角形面片的方法,因此从三维图形数据文件中(如D F X 的数据格式)读取模型数据,在O p e n G L 中进行绘制就非常容易了。当模型建立后,在A u t o C A D 中可以直接存为D F X 的数据格式,也可以在3 D M A X 中转换为W R L 的数据格式。通过分析比较,这两种数据格式各有不同的特点,在应用中根据不同的需要、不同的目的采取相应的数据格式。对于数据格式的转换,主要的核心是对模型的构造数据进行转换,形成O p e n G L 的模型构造列表,作为O p e n G L的显示列表
13、进行模型的重构【2 。在数据的转换过程中,模型的数据主要是将以下三个关键的数据集进行处理:(1)顶点集(V e r t i c e s):顶点的坐标及其法向量的列表;(2)多边形列表(P o l y L i s t):对应的是一组三角形,与材质等显示的属性有关,是在O p e n G L 中进行模型重构的重要部分;(3)相关三角形列表(C o m m o n 2 T r i a n g l e L i s t):一个指向多边形列表(P o l y L i s t)中每一个包含该顶点的三角形链表。数据的转换作为一个单独的模块进行编程,模型在建立时需注意模型的基准点。对于大坝中的各坝段是分开进6
14、6行转换的,需要考虑在模型重组时相互之间的连接关系。5 2 色彩、材质、纹理、光照和背景的处理考虑到模型的建立和数据的转换,在模型建立时,并不对模型进行色彩、材质、纹理的赋予,在完成数据转换后,进入O p e n G L 中再对其进行处理,使模型的数据简洁,转换方便,提高开发的效率和系统的通用性。I n tC O p e n G L V i e w:O n C r e a t e(L P C R E A T E S 1 p C r e a t e S t r u c t)指定物体的初始材质、光照和位置O L f l o a t a f M a t S p e c u l a r =o 6 f,
15、0 6 f,0 6 f,1 o f ;G L f l o a t a f M a t S h i n i n e s s =s o o f ;G L f l o a t a f L i g h t A m b i e n t =0 I f,0 I f,0 I f,1 o f ;G L f l o a t a f L i g h t D i f f u s e =o 7 f,0 7 f,0 7 f,1 O f ;G L f l o a t a f L i g h t S p e c u l a r =o 6 f,0 6 f,0 6 f,1 o f ;G L f l o a t a f L i g
16、 h t P o s i t i o n =o O f,0 O f,1 O f,0 o f ;g l M a t e r i a l f v(G L _ F R O N T _ A N DB A C K,G L _ A M B I E N T,a f-M a t S p e c u l a r);g l M a t e r i a l f v(G L F R O N T A N D B A C K,G L S P E C U L A R,a f M a t S p e c u l a r);g l M a t e r i a l f v(G L F R O N T A N D B A C K,
17、G L S H I N I N E S S,a f M a t S h i n i n e s s);g l L i g h t f v(G L _ L I G H T 0,G L _ A M B I E N T,a f L i g h t A m b i e n t);g l L i g h t f v(G L _ L I G H T 0,G L _ D I F F U S E,a f L i g h t D i f f u s e);g l L i g h t f v(G LL I G H T 0,G L _ S P E C U L A R,a f L i g h t S p e c u
18、l a r);g l L i g h t f v(G L _ L I G H T O,G LP O S I T I O N,a f L i g h t P o s i t i o n);g l C o l o r M a t e r i a l(G L _ F R O N TA N D _ B A C K,G L A M B I E N T _A N D _ D I F F U S E);)5 3 运动方式的处理和控制对仿真显示的动画效果来说,物体的运动实际上是显示的位置。由于模型在O p e n G L 中是以显示列表的方式存在,不需要重构,所以只需要知道物体的位置,结合显示技术的处理,则可
19、以得到很好的运动仿真效果。在系统的开发中,物体运动的处理和控制是作为一个单独的模块来开发的,通过传人运动的方式参数、输出物体的位置参数来实现运动的仿真。5 4 影、视口等的变换与显示处理三维物体是在三维坐标中定义的,但当计算机图形的点绘制到屏幕上时,显示在屏幕上的三维物体将是二维的图像。因此,将几何物体的三维坐标转化到屏幕上的像素位置,需要经过以下三种计算机操作 3 :(1)通过矩阵相乘所表示的变换,包括造型、视图和投影等操作。这些操作包括旋转、平移、缩放、反射、正交投影和透视投影。通常需要将几种变换结合起来绘制场景。(2)由于场景是在一个矩形窗口中绘制,所以位于窗口之外的物体(或物体的一部分
20、)必须被裁剪掉。在三维计算机图形中,以剪裁面所构成的范围对物体进行裁剪。(3)在变换的坐标和屏幕像素之间必须建立对应关系,这种操作称为视口变换。V o i dC E m l u a t e V i e w:O n S i z e(U I N Tn T y p e,i n tc x,i n tc y)C O p e n G L V i e w:O n S i z e(n T y p e,C X,c y);C C l i e n t D Cc l i e n t D C(t h i s);得到D C 句柄w g l M a k e C u r r e n t(c l i e n t D C mh
21、D C,h g l r c);连接I X;和R Cg l V i e w p o r t(0,0,w,h);重新设置视口g l M a t r i x M o d e(G L _ P R O J E C T I O N);标志对投影矩阵操作g l L o a d I d e n t i t y O)投影矩阵初始化为单位阵g l O r t h o(-3 0*(G L f l o a t)w h,3 0*(G L f l o a t)w h,一3 0,3 0,一3 0 0,3 0 o);设置正射投影矩阵g l M a t r i M o d e(:G L _ M O D E L v I E w)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 OpenGL 三维 仿真 系统 研究 应用
限制150内