(机械设计及理论专业论文)基于opengl的三维交互建模技术及其应用.pdf_第1页
(机械设计及理论专业论文)基于opengl的三维交互建模技术及其应用.pdf_第2页
(机械设计及理论专业论文)基于opengl的三维交互建模技术及其应用.pdf_第3页
(机械设计及理论专业论文)基于opengl的三维交互建模技术及其应用.pdf_第4页
(机械设计及理论专业论文)基于opengl的三维交互建模技术及其应用.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 在科学技术日益发展的今天,利用电磁兼容分析软件在设计前期对电磁兼容 性能进行模拟分析,可以将很多设计风险扼杀在萌芽状态,从而大大缩短设计周 期和节省设计成本,缩短产品的开发周期,体现了使用分析软件的优越性。在电 磁兼容分析软件的前置处理、核心计算、后置处理中,前置处理是为电磁兼容分 析提供正确的模型,因此显得尤为重要。 论文基于o p e n g l 平台,对“通信车电磁兼容分析软件”中前置处理中的参数化 建模、点捕捉及面元绘制进行了研究。主要包含以下内容: 1 原来的通信车电磁兼容分析软件建模部分功能不完善,如只能通过数据界面 建模和修改。为达到交互及参数化建模,论文采用链表动态数据结构对图形数据 进行操作,剔除了原来使用数组对数据的操作,通过拾取、删除等技术,能够实 时交互建立包括三角形、四边形、圆柱、圆锥等几何单元构成的分析模型,完善 了软件的建模功能,体现了交互式图形软件直观、实时和动态的设计要求。 2 在基于m f c 的o p e n g l 环境下的模型编辑中的点捕捉是一个重点模块。 o p e n g l 对数据的操作最终归结为对顶点的操作,因此,点捕捉就成为能否实现重 新绘制的关键。利用一些图形几何计算,论文实现了面元端点、中点和边上任意 点的捕捉,并可通过捕捉绘制面元,这大大提高了软件的交互性和实用性。 软件测试表明,论文研制的模型显示与编辑模块具有实用化程度高、使用方 便等优点。 关键词:模型显示参数化建模点捕捉 模型绘制o p e n g l 基于o p e n g l 的三维交互建模技术及其应用 a b s t r a c t a b s t r a c t i nt o d a y sg r o w i n gs c i e n c ea n dt e c h n o l o g y , e m ca n a l y s i ss o f t w a r ed e s i g n e dt ok i l l al o to fr i s ki nt l l eb u d ,w h i c hg r e a t l ys h o r t e nt h ed e s i g nc y c l e ,e a r l yi nt h ed e s i g n s i m u l a t eo fe l e c t r o m a g n e t i cc o m p a t i b i l i t ya n a l y s i s t h es o f t w a r er e d u c e st h et i m ea n d t h ec o s tw h i c hi n c a r n a t e st h es u p e r i o r i t yo ft h ea n a l y t i c a ls o f t w a r e p r e p r o c e s s i n gi st o p r o v i d et h ec o r r e c te m ca n a l y s i sm o d e l s ,s o i ti s p a r t i c u l a r l yi m p o r t a n ti nt h e p r e p r o c e s s i n g ,t h ec o r ec a l c u l a t i o n ,p o s t - p r o c e s s i n go ft h es o f t w a r e b a s e do nt h eo p e n g lp l a t f o r m ,is t u d yt h ep a r a m e t r i cm o d e l i n g ,s o m ec a p t u r e a n dd r a w , w h i c hb e l o n gt oi nt h ep r e p r o c e s s i n gt h ec o n t e n t so f “e m ca n a l y s i s s o f t w a r eo fc o m m u n i c a t i o nv e h i c l e , t h em a i nc o n t a i n sa st h ef o l l o w i n g : 1 s o m em o d e l i n go fe m c a n a l y s i ss o f t w a r eo fc o m m u n i c a t i o nv e h i c l et oc r e a t e a n dm o d i f ym o d e l so n l yt h r o u g ht h ed a t ai n t e r f a c e ,w h o s ef u n c t i o ni si m p e r f e c t i no r d e r t oa c h i e v ei n t e r a c t i v ea n dp a r a m e t r i cm o d e l i n g ,t h ep a p e ru s e sal i n k e dl i s td a t a s t r u c t u r ef o rd y n a m i cg r a p h i cd a t ao p e r a t i o n sa n de x c l u d e st h eo r i g i n a la r r a yo p e r a t i o n s o nt h ed a t a b yt h et e c h n o l o g yo fp i c k i n g ,d e l e t i o na n ds oo n ,t h ep a p e rb u i l d sr e a l - t i m e i n t e r a c t i o nt h ea n a l y t i c a lm o d e l ,i n c l u d i n gt r i a n g l e ,s q u a r e ,c y l i n d r i c a l ,c o n i c a la n do t h e r g e o m e t r i cu n i t sc o n s t i t u t e t h u s ,t h es o f t w a r eh a sb e e ni m p r o v e dm o d e l i n gc a p a b i l i t i e s , w h i c hr e f l e c t st h ei n t e r a c t i v eg r a p h i c ss o f t w a r ei n t u i t i v e ,r e a l t i m ea n dd y n a m i cd e s i g n r e q u i r e m e n t s ; 2 p o i n tt oc a p t u r eo ft h eo p e n g le n v i r o n m e n tm f c - b a s e dm o d e le d i t o ri sak e y m o d u l e i no p e n g l ,t h eo p e r a t i o no ft h ed a t ac o m e sd o w nt ot h ev e r t e xo ft h eo p e r a t i o n , t h e r e f o r e ,p o i n to fc a p t u r ec a nb ea c h i e v e do na r e d r a wt h ek e y m a k i n gu s eo fs o m e g r a p h i c sg e o m e t r y , t h ep a p e r a c h i e v et oc a p t u r et h ee n d p o i n t ,m i d p o i n t ,a n dt h ee d g eo f a n yp o i n to ft h es u r f a c ee l e m e n t ,a n dt h es o f t w a r ed r a w ss u r f a c ee l e m e n tb yc a p t u r i n g , w h i c hg r e a t l yi m p r o v e st h ei n t e r a c t i v i t ya n du s a b i l i t yo fs o f t w a r e s o f t w a r et e s t i n gs h o wt h a tt h em o d e ls h o w sa n de d i t i n gm o d u l et h a tr e s e a r c h e di n t h i sa r t i c l eh a sah i g hd e g r e eo fu t i l i t y , e a s eo fu s e m o d e ld i s p l a yp a r a m e t r i cm o d e l i n gp o i n t sc a p t u r e d r a w i n gm o d e l o p e n g l 基于o p e n g l 的三维交互建模技术及其应用 第一章绪论 第一章绪论 1 1 课题研究的目的和意义 随着现代科学技术的发展,电子、电气设备或系统获得了越来越广泛的应用。 运行中的电子、电气设备大多伴随着电磁能量的转换,高密度、宽频带的电磁信 号充满整个人类生存的空间,构成了极其复杂的电磁环境。以通信系统、控制系 统和计算机系统为主干的电子系统在这样的电磁环境中受到了严峻的考验。电子 系统越是现代化,其所造成的电磁环境就愈加复杂;反之,复杂的电磁环境又对 电子系统提出更为严峻的要求。人们面临着一个新问题,这就是如何提高现代电 子、电气设备或系统在复杂的电磁环境中的生存能力,以保证达到电子系统初始 的设计目的。正是在这种背景下产生了电磁兼容性的概念,形成了一f - j q :科一 电磁兼容t l l ( e l e e t r o m a g n e t i cc o m p a t i b i l i t y ,简写为e m c ) 。 在我国对电磁兼容理论和技术的研究起步较晚,直到2 0 世纪8 0 年代初才组 织系统地研究并制订国家级和行业级的电磁兼容性标准和规范,电磁兼容学科的迅 速发展并开始参与世界交流。2 0 世纪9 0 年代以来,随着国民经济和高科技产业的 迅速发展,在航空、航天、通信、电子等部门,电磁兼容技术受到格外重视。在 2 0 世纪9 0 年代后期,国家和相关行业纷纷对产品和设备的电磁兼容性能制订标准 规范,并制订了相关的认证实施措施;兴建了大量的电磁兼容实验室,规范产品 的电磁兼容性能。在科学技术日益发展的今天,针对传统设计模式中解决电磁兼 容性问题的弊端,国外企业纷纷引入电磁兼容分析软件。以通信车辆为例,其周 边电磁环境对于信息交互的顺畅与准确性的影响是至关重要的。因此,有必要建 立起完善的系统电磁兼容分析模型,并以此计算出外部电磁环境数据,进而提出 开发方案并设计软件,以进行载体电磁兼容的分析与预测,本文正是着眼于这方 面的工作。 电磁兼容分析软件在建模方面如何正确快速的建立模型、显示模型、并对不 符合要求的模型进行适当的编辑是电磁兼容仿真软件前处理模块的关键,对后面 的电磁模型的分析计算有很大影响,是软件设计中的重点和难点,也是本文研究 的内容。 1 2 国内外相关技术发展现状及趋势 2 0 世纪6 0 年代末期,美国率先通过预测的手段来进行系统电磁兼容设计, 2 基于o p e n g l 的三维交互建模技术及其应用 并在上世纪7 0 年代得到了迅速的发展。当时,在预测数学模型的研究、应用软 件的开发、航空航天产品的实践方面十分活跃。到上世纪8 0 年代在航空航天领 域应用已经相当普遍,据资料介绍,预测软件i e m c a p 曾应用于众多飞机或航天 器型号的设计。到上世纪9 0 年代,美国不断发展各种专门化的预测分析软件,针 对性和专业性更强。上世纪8 0 年代初,前苏联也开始研究开发电磁兼容预测分 析软件,并很快在工程中指导产品的设计。德国、英国、法国等欧盟国家也都先 后开展了电磁兼容预测设计技术的研究和应用。例如,美国a n s o f t 公司推出的三 维电磁仿真软件h f s s ( h i g hf r e q u e n c ys t r u c t u r es i m u l a t o r ) ,经过二十多年的 发展,h f s s 以其无以伦比的仿真精度和可靠性,快捷的仿真速度,方便易用 的操作界面,稳定成熟的自适应网格剖分技术使其成为高频结构设计的首选 工具和行业标准,已经广泛地应用于航空、航天、电子、半导体、计算机、 通信等多个领域,帮助工程师们高效地设计各种高频结构,包括:射频和微 波部件、天线和天线阵及天线罩,高速互连结构、电真空器件,研究目标特 性和系统部件的电磁兼容电磁干扰特性,从而降低设计成本,减少设计周期, 增强竞争力。另外,有南非的e m s s 公司开发的f e k o 软件,f e k o 是一款 用于3 d 结构电磁场分析的仿真工具。f e k o 仿真基于著名的矩量法( m o m ) 对m a x w e l l 方程组的求解。f e k o 实现了非常全面的m o m 代码,可以解决任 何结构类型的问题;f e k o 还针对许多特定问题,例如平面多层介质结构、 金属表面的涂覆等等,开发了量身定制的代码,在保证精度的同时获得最佳 的效率。为了求解电大问题,f e k o 引入了多层快速多极子方法( m l f m m ) 。 f e k o 是世界上第一个把这种方法推向市场的商业代码。这种方法使得精确 仿真电大问题成为可能。在此之前,求解此类问题只能选择高频近似方法。 f e k o 中有两种高频近似技术可用,一个是物理光学( p o ) ,另一个是一致性 绕射理论( u t d ) 。在m o m 和m l f m m 需求的资源不够时,这两种方法提供 求解的可能性。f e k o 中通过混合m o m p o 和m o m u t d 来为电大尺寸问题 的精度提供保证。还有c s t 软件、e m cs t u d i o 软件等等,这些反映出国外电 磁兼容分析软件的迅猛发展。 而我们国内直至2 0 世纪9 0 年代,随着国民经济和高科技产业的迅速发展, 一些军种、研究所以及大学陆续建立了电磁兼容研究室进行电磁兼容性工程设计【4 】 和预测分析工作,取得了一定的研究成果。这些研究工作的主要目的就是能够给 设计工程师提供一个使用方便、功能强大的电磁兼容分析软件包,在利用计算机 模拟技术实现系统的电磁兼容性设计方面取得了很大进步,但是为e m c 问题提供 解的计算电磁学的应用仍处于初级阶段。但是,笔者愿为我国的电磁兼容软件的 研制贡献一份自己的力量。 第一章绪论 针对商用电磁兼容软件中的不足:如模型的构造一般是由几种简单的体素( 如 三棱锥、四棱柱、圆柱等) 进行布尔运算叠加而成,对复杂形状表面的建模显得略 微不足;另外,商用电磁兼容软件对模型表面无法进行染色区分,不能让用户达对 模型的网格划分的结果进行很好的检查,当划分出现问题时进行模型问题的排查较 困难。本文在前人研究的基础上的采用o p e n g l 图形开发库以v c + + 6 0 为开发环 境进行车体模型的参数化建模、模型的显示、模型的编辑的程序设计。从而使用户 能够很好的进行人机交互,为电磁兼容模型的预测分析提供一定的依据。 1 3 课题研究内容 在本课题展开之前,先介绍课题组前人所研制的通信车电磁兼容分析软件 x d e m cf 5 】。图1 1 给出了该软件的总体框架与流程图,由前处理模块、电磁计算 和后处理模块三部分组成。其中,前处理模块使用基于o p e n g l 独立自主研发的 模型显示编辑软件来进行建模、模型显示和编辑;电磁计算模块包括基于脉冲基 函数和权函数的矩量法、快速多极子及波形渐进预估等多种方法;后处理模块主 要是计算结果的可视化显示。 h 几何建模 e 面电流显示 j吵 前 电 ,日 詈 模型显示 置八 磁 八 处 场强云图显示 与修改 电参娄( 输入 计 v 。 理 处 v 算 樟理 模 t p模 块 块 il 块 方向图显示 r 网格划分 图1 1x d e m c 软件框架与流程图 第一步是建立需要进行分析的通信车的三维模型( 包含载体模型和天线模型) , 包括模型的显示和修改;第二步输入电磁计算的控制参数( 如耦合度参数、方向图 参数、场强参数等) ;第三步对模型进行网格划分,并通过染色显示网格划分后的 结果,经过染色的模型使相邻面元具有不同颜色,可方便清楚观察划分效果,如 有不合理之处,可在电磁计算前及时发现并修改,保证了电磁计算所需模型数据 的正确性;第四步将得到的数据输入电磁计算模块;最后计算完成后对方向图、 空间场强、面电流等进行可视化显示和科学化的分析。 模型的网格划分及电磁计算与初始模型的面元形状有关,模型编辑功能可极 为方便地对模型的形状进行修改,并可作为重要的可视化建模的手段,因此,为 增强软件交互性和实用性,模型的建模和编辑技术必须解决,本文就是为实现这 个目的而做了一些工作。 本文在“通信车电磁兼容分析软件( ) e m c ) ”软件的基础上进一步完善其功 4 基于o p e n g l 的三维交互建模技术及其应用 能,使本软件更能体现交互式图形软件直观、实时和动态的设计要求。同时重点 解决以下几个问题: 在参数化建模方面:增加圆柱、圆锥模型的参数化建模,使得软件更好的实 现模型与真实物体的逼近,为软件的建模提供更便捷的服务。 在模型编辑中的点捕捉方面:因为模型编辑不仅能对已有模型进行修改,还 可以直接绘制新的模型,而且点捕捉功能能够使得面元的重新绘制速度更快、效 率更高,点的捕捉是前处理功能好坏的集中体现。 第二章图形交互的技术平台与三维建模及数据结构 第二章图形交互的技术平台与三维建模及数据结构 2 1 交互技术 计算机一经诞生就产生了人机交互的问题。人机交互喁1 是指用户向计算机发送 命令,由计算机执行计算任务,将结果反馈给用户。在计算机图形学中,交互处 理是必不可少的部分。一个图形系统,必须允许用户能动态地输入位置坐标,指 定选择功能,拾取操作对象,设置变换参数等,即需要一个用户接口。用户接口 决定了用户与计算机如何进行信息交换的技术。用户接口包括用户通过什么途径 与图形系统进行联系,通过什么手段来操作系统的功能实现等。 交互式的用户接口是用户与应用系统的核心功能模块之间的界面,如图2 1 所 示。它负责接收用户向系统输入的操作命令及参数,经检验无误后调出相应的应 用程序模块执行之,执行的结果再以一定的形式通知用户。一般用户接口要完成 如图2 2 所示的对话处理过程。 应用核心 应用程序的功能模块 7 数据链表 j l 用户接口, r 命令接收及解释h 用户接口数据h 显示处理 一一 0 磔作系统及图彤秋仟 图形及文字输入 l 图形及文字输出 r m 、z 对话 命令执行后的结果 图2 1 应用系统与用户接口界面 用户接口最重要的是高效率和对用户的友好性。而美国s g i 公司推出的图形 程序库o p e n g l 是行业领域中最为广泛接纳的2 d 3 d 图形a p i ,其自诞生至今已 6 基于0 p e n g l 的三维交互建模技术及其应用 催生各种计算机平台及设备上的数千优秀应用程序。随着计算机技术的不断进步, 交互方式不断的变革,以w i n d o w s 、xw i n d o w 为代表的图形交互系统的出现使人 机交互边的十分容易和方便,仅仅配合使用鼠标和键盘就能获得丰富的交 图2 2 交互命令的对话 互操作。为此软件实现采用s u a lc + + 6 o 这个平台,并结合o p e n g l 图形库来具 体实现。 2 2 1v c + + 6 0 开发平台 2 2 软件开发平台 v c + + 6 0 是m i c r o s o f t 公司推出的一个基于w i n d o w s 系统平台、可视化的集成 第二章图形交互的技术平台与三维建模及数据结构7 开发环境,它的源程序按c + + 语言的要求编写,并加入了微软提供的功能强大的 m f c ( m i c r o s o f tf o u n d a t i o nc l a s s ) 类库。m f c 中封装了大部分w i n d o w sa p i 函数和 w i n d o w s 控件,它包含的功能涉及到整个w i n d o w s 操作系统。m f c 不仅给用户提 供了w i n d o w s 图形环境下应用程序的框架,而且还提供了创建应用程序的组件, 这样,开发人员不必从头设计创建和管理一个标准w i n d o w s 应用程序所需的程序, 而是从一个比较高的起点编程,故节省了大量的时间。另外,它提供了大量的代 码,指导用户编程时实现某些技术和功能。因此,使用v c + + 提供的高度可视化的 应用程序开发工具和m f c 类库,可使应用程序开发变得简单。 m f c ( m i e o r s o f tf o u n d t a i o nc l a s sl i b r a r y ) 中的各种类结合起来构成了一个应用 程序框架,它的目的就是让程序员在此基础上来建立w i n d o w s 下的应用程序。总 体上,m f c 框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程 序员要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。 m i c r o s o f tv i s u a lc + + 提供了相应的工具来完成这个工作:a p p w i z a r d 可以用来生成 初步的框架文件( 代码和资源等) ;资源编辑器用于帮助直观地设计用户接口; c l a s s w i z a r d 用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用 程序特定的逻辑。 下面以单文档窗i s l 为例具体说明m f c 。用a p p w i z a r d 产生一个单文档工程t ( 无o l e 等支持) ,a p p w i z a r d 创建了一系列文件,构成了一个应用程序框架。这 些文件分四类:头文件( h ) ,实现文件( c p p ) ,资源文件( r c ) ,模块定义文件( d e f ) 等。如图2 3 所示解释了应用程序的结构,箭头表示信息流向。 图2 3m f c 应用程序的结构 从c w i n a p p 、c d o c u m e n t 、c e w 、c m i n i f r a m e w n d 类对应地派生出c t a p p 、 c t d o c 、c t v i e w 、c m a i n f r a m e 四个类,这四个类的实例分别是应用程序对象、文 档对象、视对象、主框架窗口对象。主框架窗口包含了视窗口、工具条和状态栏d o 。 对这些类或者对象解释如下。 8 基于o p e n g l 的三维交互建模技术及其应用 应用程序应用程序类派生于c w i n a p p 。基于框架的应用程序必须有且只 有一个应用程序对象,它负责应用程序的初始化、运行和结束。 边框窗口s d i 应用程序,从c f r a m e w n d 类派生边框窗口类,边框窗口 的客户子窗i ( m d i c l i e n t ) 直接包含视窗口如果要支持工具条、状态栏,则派生的 边框窗口类还要添加c t o o l b a r 和c s t a t u s b a r 类型的成员变量,以及在一个o n c r e a t e 消息处理函数中初始化这两个控制窗口。边框窗口用来管理文档边框窗口、视窗 口、工具条、菜单、加速键等,协调半模式状态( 如上下文的帮助( s h i f t + f 1 模 式) 和打印预览) 。 文档文档类从c d o c u m e n t 类派生,用来管理数据,数据的变化、存取都 是通过文档实现的。视窗口通过文档对象来访问和更新数据。 视视类从c v i e w 或它的派生类派生。视和文档联系在一起,在文档和用 户之间起中介作用,即视在屏幕上显示文档的内容,并把用户输入转换成对文档 的操作。 文档模板文档模板类一般不需要派生。s d i 应用程序使用单文档模板类 c s i n g l e d o c t e m p l a t e 。应用程序通过文档模板类对象来管理上述对象( 应用程序对 象、文档对象、主边框窗口对象、视对象) 的创建。 通过上述分析,可知a p p w i z a r d 产生的单文档框架程序的内容,所定义和实 现的类。下面,从文件的角度来考察a p p w i z a r d 生成了哪些源码文件,这些文件 的作用是什么。表2 1 列出了a p p w i z a r d 所生成的头文件,表2 2 列出了a p p w i z a r d 所生成的实现文件及其对头文件的包含关系。 表2 1a p p w i z a r d 所生成的头文件 头文件用途 s t d a f x h标准a f x 头文件 r e s o u r c e h定义了各种资源i d t h# i n c l u d e ”r e s o u r c e h ” 定义了从c w i n a p p 派生的应用程序对象c t a p p m a i n f i l n h定义了从c m i n i f r a m e w n d 派生的框架窗口对象c m a i n f r a m e t d o c h定义了从c d o c u m e n t 派生的文档对象c t d o e t v i e w h定义了从c e w 派生的视图对象c 1 v i e w c t a p p 的实现用到所有的用户定义对象,包含了他们的定义;c v i e w 的实现 用到c t d o c ;其他对象的实现只涉及自己的定义;当然,如果增加其他操作,引用 其他对象,则要包含相应的类的定义文件删。 第二章图形交互的技术平台与三维建模及数据结构 9 表2 2a p p w i z a r d 所生成的实现文件 实现文件所包含的头文件实现的内容和功能 s t d a f x c p p # i n c l u d e ”s t d a f x h ”用来产生预编译的类型信息。 t c p p # i n c l u d e ”s t d a f x h ” 定义c t a p p 的实现,并定义c t a p p 类型 拌i n c l u d e ”t h ” 的全局变量t h e a p p 。 # i n c l u d e ”m a i n f r m h ” # i n c l u d e ”t d o c h # i n c l u d e t v i e w h ” m a i n f r a m e c p p i n l c u d e ”s t d a f x h ”实现了类c m a i n f r a m e # i n c l u d e ”t h ” # i n c l u d e ”m a i n f r a m e h ” t d o c c p p 群i n c l u d e ”s t d a f x h ”实现了类c t d o c 撑i n c l u d e ”t h ” 撑i n c l u d e ”t d o c h ” t v i e w c p p 撑i n c l u d e ”s t d a f x h ”实现了类c t v i e w 群i n c l u d e ”t h ” 撑i n c l u d e ”t d o c h ” 拌i n c l u d e ”t v i e w h ” 2 2 2o p e n g l 平台 o p e n g l ( o p e ng r a p h i c sl i b r a r y ) 是近些年来发展起来的一个性能卓越的三位 图形标准,它独立于硬件设备、窗口系统和操作系统等,许多公司已经把o p e n g l 集成到各种操作系统( 包括u n i x 、w i n d o w s n t 和w i n d o w s9 x 等) 和窗口系统( x 窗口系统、w i n d o w s 等) 中,可以十分方便地实现在各种平台间移植。一个完整 的窗1 :3 系统的o p e n g l 图形处理系统的结构为1 1 5 】:最底层的图形硬件,第二层为 操作系统,第三层为窗口系统,第四层为o p e n g l ,第五层为应用软件,如图2 4 所示。 l o 基于o p e n g l 的三维交互建模技术及其应用 应用软件 伞 l o p e n g l 千 l 窗口系统 t 操作系统 t 图形硬件 图2 4 图形的处理系统的结构 ( 1 ) o p e n g l 的基本术语 绘制( r e n d e r i n g ) 指的是计算机根据模型创建三维图像的处理过程。 渲染指的是计算机根据模型创建图像。 模型( m o d e l s )也称物体( o b j e c t s ) ,是由几何图元组成的,几何图元 包括点、线、多边形,所有这些都由顶点( v e a i c e s ) 来定义。 像素( p i x e l )是显示硬件能够放置到屏幕上的最小的可视元素。 o p e n g l 最后绘制的图像是屏幕上的一系列像素值。有关像素的信息( 如颜色) 在系统内存中被组织为位面。位面( b i t p l a n e ) 1 2 1 是一块内存区域,为屏幕上的每个 像素存储一位信息。位面构成了帧缓存,后者包含图形显示设备为控制屏幕上所 有像素的颜色和亮度所需的信息。 图元是图形软件用于操作和组织画面的最基本的素材。一幅画面由图元 组成。图元是一组最简单、最通用的集合图形或字符。 在显示器上最小的显示单位是一个像素,因此与数学上考虑的理论几何世界是 有差别的,不管像素的宽度有多小,始终比数学上的无限小点和无限细的线要粗。 o p e n g l 的几何图元最终都是以顶点( v e r t i c e s ) 来定义,如点本身的坐标、线段的 端点、多边形的角等等。 点o p e n g l 中点是由一组浮点数来定义。一般,所有的内部计算均以三 维方式下来进行。在内部计算时,所有顶点用四个浮点坐标来表示( x ,y ,z ,w ) , 如果w 不为0 ,那么该坐标对应于欧几里得三维点( x w ,y w ,z w ) 。w 坐标可以 用o p e n g l 命令来指定,如w 没有定义,默认值为1 o 。如图2 5 所示。 线在o p e n g l 中,线即线段,而不是数学上可两端无限延伸的直线概念。 o p e n g l 中任何情况下,线段保证根据描述的顶点首尾相连而成。如图2 6 所示。 多边形是线段封闭连接而成的区域,最终由一系列端点坐标来定义。一 第二章图形交互的技术平台与三维建模及数据结构 11 般在理论上,多边形可以定义成各种复杂的形状,但是在o p e n g l 中有一些严格 的限制。首先o p e n g l 多边形的边不能相交,只能是数学上定义的简单多边形。 其次,o p e n g l 的多边形必须是凸多边形,即多边形内的任意两点构成的直线也在 该多边形内部。如图2 7 所示。 法线向量( 简称法线) 是一个垂直于表面方向的向量1 1 2 】。对于一个平坦 表面,一个垂向就能标识出平面上所有点的法向。一个物体的法线向量定义了其 表面在空间的方向特别是其对于光源的方向。 ( 2 ) o p e n g l 的命令语法 o p e n g l 命令函数使用g l 作为前缀首字母大写而构成。同样地,o p e n g l 以 g l 为前缀定义常量,使用大写字母的方式,中间用下划线作单词间的分隔符,如 表2 3 所示。 o vl v3 表2 3 几何图元的名称及其含义 参数值含义 g lp o i n t s单独的点 g ll i n e s一对顶点组成一单独的线段 g lt i u a n g l e s三个顶点组成三角形 g l _ q u a d s四个顶点组成四边形 o v2 图2 5g lp o i n t s 参数下绘制的点 叼 vlv2 图2 6g ll i n e s 参数下绘制的线 v 1v 4 叨略 图2 7g lt r i a n g l e s 参数下的三角形和g lq u a d s 参数下的四边形 o p e n g l 画点、线以及多边形时要注意一些事项:点在屏幕上显示时是有尺寸 的,应使用o p e n g l 的函数v o i dg l p o i n t s i z e ( g l f l o a ts i z e ) ,其参数为以像素为单 位的期望尺寸,g l p o i n t s i z e ( ) 设置渲染点得像素宽度,参数s i z e 必须大于0 0 , 其默认值为1 0 :在o p e n g l 中可以指定任意宽度的线,并可以画成不同方式的。 利用函数v o i dg l l i n e w i d t h ( g l f l o a tw i d t h ) 函数以像素为单位设置线宽,参数w i d t h 1 2 基于0 p e n g l 的三维交互建模技术及其应用 的值必须大于o 0 ,默认值情况下为1 o ;多边形大多数是通过填充包围在边界以 内的所有像素来绘制。如果相邻多边形有公共顶点或公共边,则其构成像素史记 上只画一次,这样就避免了透明的多边形边被画两次,而使其比其他的边显得黑 一些( 或亮一些,这取决于绘图的颜色) 。在本文所绘制的多边形中,多边形的法 线向量是一个要多加注意的点,因为在一个表面上的给定点处,有两个方向相反 的向量垂直于此表面,一般,法线是指向模型表面外侧的向量。可以使用o p e n g l 中g l n o r m a l * ( ) i 函数来设置当前顶点的法线矢量值,其后的g l v e r t e x * ( ) 函数调用 的项点被赋值成该法线向量。另外,法线向量仅仅表示方向,其长度是无关紧要 的。使用者可以将长度定位任意长度,但是在光照计算执行之前,必须将其变换 为长度1 ( 长度为1 的向量称为单位长度,或归一化长度) 。因此,一般情况下应 将法线归一化。为了得到单位长度的归一化矢量,需把x 、y 、z 分量都除以法线 的长度:x 2 + y 2 + z 2 。如果法线向量长度不是单位长度,应在变换之后调用 o p e n g l 的函数g l e n a b l e ( g l _ n o r m a l i z e ) 。 o p e n g l 的工作方式可以通过各种状态或模式设置,再重新改变状态之前它们 一直有效。在o p e n g l 中,大多数状态变量可以用命令g l e n a b l e ( ) 或g l d i s a b l e ( ) 来打开或关闭。在o p e n g l 中,所有几何体最终都被描述为一个有序的顶点 集合。指定顶点用函数g l v e r t e x * ( ) ;对函数g l v e r t e x ( ) 的调用,只能在g l b e g i n ( ) 和g l e n d ( ) 之间进行。在o p e n g l 中,每个状态变量都有其默认值,可以用 o p e n g l 函数命令查询,对于o p e n g l 的一些基本命令的解释,由于本文篇幅所限, 在这里就不展开论述了。 2 3o p e n g l 在v c + + 6 0 平台下的环境设置 o p e n g l 是一个图形函数库,并没有用于打开窗1 2 1 以及检测键盘或鼠标事件的 函数。因此,o p e n g l 必须依靠一定的软件平台实现图形的绘制。而v c + + 6 o 它 不仅是一个c + + 编译器,而且是一个基于w i n d o w s 操作系统的可视化集成开发环 境。而且v i s u a lc h 缶0 以拥有“语法高亮”,自动编译功能以及高级除错功能而著 称。如,它允许用户进行远程调试,单步执行等。另外允许用户在调试期间重新 编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文 件( s t d a f x h ) 、最小重建功能及累加连结( 1 i n k ) 著称。这些特征明显缩短程序编 辑、编译及连接的时间花费,在大型软件计划上尤其显著。因此,把o p e n g l 命 令函数融入到v c + + 6 0 程序的事件机制之中,使之与程序的其它部分结合成一个 整体,是构建本课题集成开发平台的主要任务。 一、w i n d o w $ 系统下配置o p e n g l 假设v c + + 6 0 安装在d :w r o g r a mf i l e s l m i c r o s o f lv i s u a ls t u d i o 目录下。将 第二章图形交互的技术平台与三维建模及数据结构1 3 g l a u x d l l 、g l u 3 2 d l l 、g l u t 3 2 d l l 、o p e n g l 3 2 d l l 四个动态链接库( d 1 1 ) 全部拷贝 到c :w i n d o w s s y s t e m 3 2 文件夹下;将g l h 、g l a u x h 、g l u h 、g l u t h 四个 文件全部拷贝到d a p r o g r a mf i l e s l m i c r o s o f tv i s u a ls t u d i o v c 9 8 k l n c l u d e g l 文件夹 下;将g l a u x l i b 、g l u 3 2 1 i b 、g l u t 3 2 1 i b 、o p e n g l 3 2 1 i b 全部拷贝到d a p r o g r a m f i l e s l m i c r o s o f tv i s u a ls t i l d i o v c 9 8 l i b 文件夹下。 二、配置v c + + 6 o 中的工程 在新建的m f ca p p w i z a r d ( e x e ) i 程t 中,p r o j e c t _ s e 钍i n g 卜_ l i n k 选项卡 中,在o b j e c t l i b r a r y m o d u l e s 的文本框中添加如下内容:o p e n g l 3 2 1 i bg l a u x 1 i b g l u 3 2 1 i b 各个1 i b 文件之间以空格隔开。 三、设置o p e n g l 图形绘制环境 ( 1 ) 添加o p e n g l 头文件 在文件s t a f x h 中添加o p e n g l 函数定义的头文件,这样就可以在任何位置调 用o p e n g l 的各种函数。代码如下: # i n c l u d e ”9 1 h # i n c l u d e ”g l u h , # i n c l u d e ”g l a u x h , # i n c l u d e ”g l u t h ( 2 ) 添加成员变量与成员函数 在类c t v i e w 中添加如下成员变量: h g l r cmh r c :o p e n g l 绘制描述表 h p a l e t t emh p a l e t t e ;o p e n g l 调色板 c d c *mp d c ;o p e n g l 设备描述表 在类c t v i e w 中添加如下成员函数: b o o li n i t i a l i z e o p e n g l ( c d c 宰p d c ) ;初始化o p e n g l v o i d s e t l o g i c a l p a l e t t e 0 ;设置逻辑调色板 b o o ls e t u p p i x e l f o r m a t 0 ;设置像素格式 ( 3 ) 添加函数执行代码 1 ) 初始化o p e n g l b o o lc t v i e w :i n i t i a l i z e o p e n g l ( c d c 木p d c ) m _ p d c = p d c ; s e t u p p i x e l f o r m a t 0 ; 生成绘制描述表 m _ h r c = :w g l c r e a t e c o n t e x t ( m _ p d c - g e t s a f e h d c 0 ) ; 置当前绘制描述表 1 4 基于o p e n g l 的三维交互建模技术及其应用 :w g l m a k e c u r r e n t ( m _ p d c - g e t s a f e h d c 0 ,mh r c ) ; 初始化新增多边形的链表 r e t u r nt r u e ; 2 ) 设置逻辑调色板 v o i dc t v i e w :s e t l o g i c a l p a l e t t e 0 s t r u c t w o r d v e r s i o n ; w o r dn u m b e r o f e n t r i e s ; p a l e t t e e n t r ya e n t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论