(材料加工工程专业论文)基于opengl技术的铸造cae软件可视化研究.pdf_第1页
(材料加工工程专业论文)基于opengl技术的铸造cae软件可视化研究.pdf_第2页
(材料加工工程专业论文)基于opengl技术的铸造cae软件可视化研究.pdf_第3页
(材料加工工程专业论文)基于opengl技术的铸造cae软件可视化研究.pdf_第4页
(材料加工工程专业论文)基于opengl技术的铸造cae软件可视化研究.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(材料加工工程专业论文)基于opengl技术的铸造cae软件可视化研究.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士学位论文 摘要 f f 筻童楚固搓拟基本已广泛地应用于生产实践中t 多年来,对于此项技术的研究大 都盖孑限在数值求解的算法上,很少对数值结果的可视化进行专门研究,要促使c a e 软件更加广泛地应用于铸造生产过程中,对其进行可视化开发是不可忽视的一项工 作。“华铸c a e ”软件在可视化方面进行了重点开发,目前已经系统化、模块化。 在w m d o w s 环境下,传统的c a e 软件可视化开发是基于w m d o w sg d i 绘图方式 的,在这种方式下,需要开发者将三维的实体信息转化为二维的平面图形信息,这个 过程中需要进行大量的矩阵变换操作,而且w m d o w sg d i 设备绘图效率是低下的。 因此,有必要寻找到一条方便、高效的绘图方式,进行可视化开发。o p e n g l 技术是 目前国际上通用的三维图形标准,该技术是直接面向三维的,使用该技术在开发过程 中可以免除许多复杂的坐标变换、消隐计算等操作,使得开发者可以直接面向三维实 体,将更多的精力放在算法和数据结构的处理上。2 本文基于o p e n g l 技术,对“华铸c a e ”前处理和后处理部分进行了可视化开发。 在前处理部分,主要实现了单个s t l 实体的实时旋转、缩放显示,以及动态剖分显 示,重点探讨了剖分截面轮廓线的生成算法。同时,对多个s t l 实体的装配显示进 行了开发,解决了前处理部分铸件铸型错位的现象。在后处理部分,实现了多种类 型数值画面的实时旋转、缩放显示,以及各类图形的剖切和切片显示。在此过程中, 重点研究了各类算法,包括实体表面搜索、轮廓线搜索,表面网格合并、轮廓线合并 等。这些算法的成功实现,使得图形的实时显示成为可能。并且,文中还对g d i 绘 图方式和o p e n g l 绘图方式进行了比较,阐述了各自的优缺点。 在本文最后,还对变网格的显示问题进行了研究,并实现了与均匀网格显示的集 成。同时,针对差分网格显示时存在的“锯齿”问题提出了一种平滑处理的思路。 关键词:o p e n g l ,实时旋转,网格合并,可视化开发,前处理,后处理,动态 剖切显示、。 、 、 、一 华中科技大学硕士学位论文 a b s t r a c t t h et e c h n o l o g yo fs o l i d i f i c a t i o ns i m u l a t i o no fc a s t i n gh a sb e e nw i d e l y u s e di n p r e d u c t i o n f o rm a n yy e a r s ,s t u d y o nt h i st e c h n o l o g yf o c u s e d o nt h ea l g o r i t h mo f n u m e r i c a lm e t h o da n df e wt i m e st h ev i s u a l i z a t i o no fn u m e r i c a lr e s u l t sw a si n v e s t i g a t e d s p e c i a l l y i no r d e r t om a k et h ea p p l i c a t i o no fc a es o f t w a r ei np r o d u c t i o nm o r ep o p u l a r , t h ed e v e l o p m e n to fv i s u a l i z a t i o ni sav e r yi m p o r t a n tj o b “h u a z h uc a e ”s o f t w a r eh a s d e v e l o p e de m p h a t i t a l l y i nv i s u a l i z a t i o n ,n o wi t ss y s t e m a t i z a t i o na n dm o d u l a r i z a t i o n i nc i r c u m s t a n c e so fm sw i n d o w s ,t h e t r a d i t i o n a l d e v e l o p m e n t m e t h o do f v i s u a l i z a t i o no fc a es o f t w a r ei sb a s e do ng d ig r a p hm e t h o d i nt h i sm o d e t h ed e v e l o p e r s h o u l dt r a n s f o r mt h e3 de n t i t yi n f o r m a t i o nt o2 dg r a p h ,a n dm u c hm a t r i xt r a m f c ) r l nw o r k s h o u l db ed o n e ,f u r t h e r m o r e ,t h ed r a w i n ge f f i c i e n c yo fw i n d o w sg d ii sv e r yl o w s o ,i ti s n e c e s s a r yt o f i n dan e wc o n v e r t i e n ta n de m c i e n tw a yt o d e v e l o p v i s u a l i z a t i o n t h e o p e n g li sn o wau n i v e r s a lt e c h n o l o g yf a c e dt o3 dd i r e c 廿y ,a n dt h ed e v e l o p e rw h o u s e t h i st e c h n o l o g ym a yn o tc o n c e r na b o u tm a n yc o m p l i c a t e dc o o r d i n a t et r a n s l a t i o na n d3 d s h a d o wc a l c u l a t i n g a n dt h e nc a i lp u tm o r ee n e r g yi n t ot h ep r o c e s s i n go f a l g o r i t h ma n d d a t as m l c t u r e t h e p r e - p r o c e s s o ra n dp o s t - p r o c e s s o ro f h u a z h uc a e s o f t w a r ev i s u a l i z a t i o nb a s e d o no p e n g lw a si n v e s t i g a t e di nt h i sp a p e r i np a r to f p r e - p r o c e s s o r , s t le n t i t i e sc a l lb e r o t a t e da n dz o o m e di nr e a l - t i m ea n dt h ee u m e s h r n e n t p r o c e s s c a nb ed i s p l a y e dd y n a m i c a l l y , a n df o c u so nt h ea l g o r i t h mo fs e c t i o nc o n t o u rl i n em a k i n g a tt h es a t n et i m e ,s e v e r a ls t l e n t i t i e sc a nb e d i s p l a y e da s s e m b l y , t h i sp o i n t s o l v et h er n i s t a k eo fm o u l d c a s t i n g a s s e m b l i n g i np a r to fp o s t - p r o c e s s o r ,d e v e l o p e dr e a l t i m er o t a t i o na n dz o o md i s p l a yo f m a n y n u m e r i c a lg r a p h s ,a n dd y n a m i c c u t t i n g ,d y n a m i cs l i c ev i e w sa r ea l s oc a r r i e do u t i n t h i sm o d u l e ,f o c u so nt h ea l g o r i t h m si n c l u d i n gs e a r c h i n gs a r f a c e ,s e a r c h i n gc o n t o u rl i n e , c o m b i n i n g o fs u r f a c e e l e m e n t , c o m b i n i n go fc o n t o u r1 i n e t h er e a l i z a t i o no ft h e s e a l g o r i t h m sm a k e s t h ed i s p l a y i n gi nr e a l - t i m eo fn u m e d c a lg r a p h p o s s i b l e t h i sp a p e ra l s o c o m p a r e dt h ed r a w i n gm e t h o d so fw i n d o w sg d ia n do p e n g l ,a n de x p o u n d e dm e r i ta n d d e m e r i to f e a c h i nt h ee n do f t h i s p a p e r , t h ev i s u a l i z a t i o no f v a r i a b l e d i m e n s i o n - m e s hy e a ss t u d i e d ,a n d r e a l i z e dt h ei n t e g r a t i o nd i s p l a y i n gw i t hu n i f o r m - d i m e n s i o n - m e s h a l s o ,an e w c o n c e i to f f l a t t i n g - p r o c e s s i n g w a sa d v a n c e d a i m i n g t or o u g h n e s sv i s u a l i z a t i o n k e yw o r d s :o p e n g l ,r e a l - t i m er o t a t i o n , c o m b i n i n go fs u r f a c ee l e m e n t , v i s u a l i z a t i o n d e v e l o p m e n t ,p r e - p r o c e s s o r , p o s t - p r o c e s s o r , d y n a m i cc 删匝gv i e w 华中科技大学硕士学位论文 1 绪论 1 1 铸造行业的作用以及发展趋势 铸造行业对国民经济的发展有重要作用。为迎接市场经济和全球化竞争的挑战, 就要十分重视制造业特别是铸造行业的发展。铸造行业能够为国民经济的发展做出许 多重要贡献。例如:( 1 ) 汽车工业中轿车仍将主要由金属材料构成,其中有大量的铸 件。( 2 ) 航空航天工业中需要先进材料的成形加工关键技术。( 3 ) 能源工业中有很多 特大型铸件的材料及工艺关键技术问题【1 4 4 。 为了应付全球竞争,改善材料及相关的制备技术对国家来说是非常重要的,美国 自然科学基金会主要的研究任务把合成制备与加工成形的基本理论与模拟仿真作为 优先资助领域,世界各国在铸造成形加工技术的发展趋势方面认识也是一致的1 4 “,即 一是大型工程中特大型铸件的关键铸造技术;二是向精确成形技术( n e ts h a p e p r o c e s s ) 方向发展:三是用计算机模拟仿真逐步代替传统的经验性研究方法。而且成 形加工过程计算机模拟与仿真是当今国际公认的制造科学与材料科学的前沿领域,美 国已经大量采用计算机模拟仿真方法研究开发导弹、飞机及其发动机,汽车及其发动 机等的设计、成形加工及制造。 1 2 铸造c a e 软件系统简介 铸件凝固过程计算机模拟仿真是学科发展的前沿领域,是改造传统铸造产业的必 由之路,经历了数十年的努力,铸件凝固过程计算机模拟仿真发展已进入工程实用化 阶段,铸造生产正在由凭经验走向应用科学理论指导,铸造凝固过程的数值模拟可以 帮助工作人员在实际铸造生产前对铸件可能出现的各种缺陷及其大小、部位和发生的 时间予以有效的预测,在浇注前采取对策以确保铸件的质量、缩短试制周期、降低生 产成本1 2 1 2 2 l 1 2 7 - 2 9 。 铸造c a e 研究与开发起步于6 0 年代,由于在以下三方面取得了重要突破,商品 化软件才变为可能与现实。即( 1 ) 具有能处理三维复杂形体的图形功能;( 2 ) 硬件 及软件费用大幅度下降到铸造工厂能够接受的水平;( 3 ) 计算机操作系统及软件对用 户友好( u s e r 衔e n m y ) ,一般铸造工程技术人员稍加培训就可独立操作运行。 铸造c a e 系统一般由三个相对独立的模块组成【3 扪,即前处理模块、计算模块和 后处理模块。其中前处理模块是将三维几何原型通过一定的算法实现网格剖分,计算 华中科技大学硕士学位论文 部分主要根据实际生产过程中的初始条件和边界条件,按照凝固理论对铸件的充型过 程以及冷却过程进行数值计算。后处理模块是将计算的结果( 浇注凝固过程流动场、 温度场以及结晶相变等物理过程) 用可视化的方式表达出来。 , 目前,在国际上流行一些铸造工艺分析软件,如德国的m a g a m 、美国的p r o c a s t 、 英国的s 0 1 s t a r ,日本的s o l d i a 等1 1 7 1 。这些软件的功能包括处理复杂的铸件形状,进 行温度场、流动场以及应力场的模拟分析,并根据结果对铸造工艺设计方案进行优化, 从而辅助铸造工程技术人员在计算机上实现“设计校核再设计优化”的 过程。国内的铸造c a e 软件如华中科技大学自主开发的“华铸c a e ( i n t e c a s t ) ”和 清华大学的“铸造之星( f t s t a r ) ”。 “华铸c a e ”软件系统已经有十几年的发展历史,接受了实践的考验,不断地改进 并完善起来。她以铸件充型过程、凝固过程数值模拟技术为核心对铸件进行铸造工艺 分析。可以完成铸件的凝固分析、流动分析以及流动和耦合计算分析。实践证明,该 系统能有效地预测铸件缩孔缩松以及卷气夹渣等缺陷,能帮助工艺人员改进和优化工 艺,提高产品质量,降低废品率,减少工艺设计对经验、对人员的依赖,保持工艺设 计水平稳定i 2 5 - 2 6 】、 3 7 - 3 8 1 4 0 1 。 1 3 “华铸c a e ”系统可视化研究进程 一般而言,软件的可视化,包含界面操作可视化和数据输出可视化两方面的含义 【5 】。本文以后将要讨论的主要是指数据输出可视化。c a e 系统中的数据输出主要是各 种物理量,如温度、压力、速度、梯度等1 4 ,为了能够清楚直观地将这些物理量通过 计算机屏幕表达出来,计算机图形学很自然地被纳入研究范围。 计算机软件水平的提高总是依赖于硬件的不断发展,没有更快的c p u 芯片,没有 大容量的内存储器,计算机图形学的发展将会停步不前,要么也只是纸上谈兵,“华 铸c a e ”软件系统也是随着软硬件系统的不断更新而不断发展完善的。1 9 9 2 年,“华 铸c a e ”1 0 版诞生,当时的系统平台是d o s ,思路是用线条勾画铸件轮廓。虽然当 时软硬件环境相当落后,但是由于处理的铸件网格数不大,而且可以通过编程直接控 制显示卡的输出,所以仍然能获得很好的显示效果。随后,1 9 9 5 年又在d o s 环境下 开发了更高分辨率( 6 4 0 4 8 0 ) f l c 动画的合成和播放程序,用来对计算结果进行动 态模拟显示1 8 】。 m i c r o s o f tw i n d o w s 操作系统的诞生,为软件产业的发展提供了机遇,同时也带来 了挑战,w m d o w s 的图形界面及其方便简捷的交互操作性吸引了更多的计算机用户。 斑; 2 华中科技大学硕士学位论文 因此,将d o s 下的应用程序移植到w i n d o w s 下运行迫在眉睫,由于和以前d o s 下 的显示模式有很大差别,w i n d o w s 操作系统对显示内存实现了保护,不能通过编程直 接对显示卡进行读写操作,因此不能按照以前的方式开发程序。从1 9 9 5 1 9 9 7 年,经 , 历了“华铸c a e ”2 。0 和3 0 版两个版本的更新换代,全面改版为w m d o w s 环境应 用,废除了自定义的m s p 格式,研究开发了基于单元几何的有限差分图形学系统算 、 法,并将其实现到面向对象的编程语言中,开发了全w i n d o w s 环境的数值画面系列 功能,开发了f l c 、a v i 两种动画合成与播放以及格式转换的功能总成【2 ”,选用 b c 十+ 3 1 开发工具,向用户提供了一个高度实用化,高度商品化的图形显示模块。从 此以后,用户可以通过简单的鼠标点击以及很少的键盘操作,便可以从中获取用于工 艺优化的重要信息。 由于早期的w i n d o w s 是1 6 位的,b c 抖3 1 开发环境也是在1 6 位内存方式下运行 的。在此方式下,程序最多可以访问6 4 兆字节的内存,所以对于“华铸c a e ”系统 所处理的铸件,其网格单元数最多不能超过4 0 0 万,虽然这个网格单元数已经能够满 足大多数的铸件应用,但是随着市场的发展和用户需求的不断提高,选择3 2 位运行 模式,并突破4 0 0 万单元限制是必然趋势。 从1 9 9 9 年初到1 0 月,经过长时间的酝酿、移植和扩充开发,形成了“华铸c a e ” 系统4 0 版本。该版本使用目前最流行的开发环境v c + + 6 0 ,比起上一个版本,在功 能方面有了进一步的增强,用户操作更方便舒适,介面更友好,网格单元数也不受 4 0 0 万的限制,完全只取决于机器的性能。从此,“华铸c a e ”系统便成为一套系统 化、商品化、功能完善的软件系统。 1 4 课题内容及意义 铸造c a e 软件中数值求解的数据量是极其庞大的,经常有几百兆之巨,如何将这 些数据蕴涵的物理意义以可视直观的图形图象表达出来,并动态地演示出相应的变化 过程,是整个凝固模拟技术的关键一环f 4 。5 。 在w i n d o w s 下开发图形程序,传统的方法是利用w i n d o w s 提供的一套图形设备接 口( g d i ) 进行图形绘制,如前所述,w i n d o w s 不允许用户直接访问显示内存,因此 微软公司提供了套g d i ( g r a p h i c s d e v i c ei m e r f a c e ) 函数,其特点是设备无关性, 用户事先不需要知道所联结的设备类型,绘制屏幕的功能都通过统的设备上下文 d c ( d e v i c e c o n t e x t ) 来间接完成。该设备上下文实际上是一个关于如何绘制图形的 方法的集合,它不仅可以绘制各种图形,而且还可以确定在窗口中绘制图形的方式。 华中科技大学硕士学位论文 这种绘图方式的总体思路就是先选择一个g d i 设备如画笔、画刷或是文字工具等, 定义好该设备的某些属性如线条粗细,颜色,字体等,然后再选择一个设备上下文 d c ,便可以进行绘图操作1 2 j - 1 2 。 , g d i 是一种w i n d o w s 下通用的绘图设备,它面向二维图形的绘制,提供的绘图函 数有限,而且这种设备对计算机资源的占用也很多,对于大型复杂的图形,其绘图效 率低的特点暴露明显。铸造c a e 系统的计算结果,通常是数十兆乃至上百兆字节的 数据量,要将这些数据用图形表达出来。虽然可以通过一些算法来提取需要显示的数 据,抛弃不必要的数据,但是这种简化仍然是有限的。而且还应该注意的是,c a e 系统中,通常表达的是三维铸件的某些信息,因此要通过二维图形工具来表达三维实 体的形状,必然要通过大量的矩阵变换,以及浮点计算等操作。尤其在对三维实体进 行旋转、缩放和平移等操作时,这种方式下的图形实时绘制更加困难。 针对以上提出的问题,本课题选择了目前国际上通用的三维图形标准一一 o p e n g l 作为开发工具,实现了三维实体的实时旋转,缩放,以及剖切显示,并将各 种类型的文件模块化,系列化,同时融合了对于非均匀网格( 变网格) 的显示,提出 了改进显示效果的思路。 几年前,由于受到条件的限制,o p e n g l 只是专用于图形工作站上的一项显示技 术,而随着计算机软硬件的飞速发展,目前台普通的微机已经完全能够胜任这项工 作,并且在可预测的将来,这项技术的应用会更加普及【”。科技不断发展,高新技术 产品不断涌现,软件产品的市场化、商品化就要不断地利用新技术,不断地推陈出新, 这样才能满足市场的需求,使自己立于不败之地。 华中科技大学硕士学位论文 2 o p e n g l 技术 2 1o p e n g l 简介卧3 1 o p e n g l 是近几年发展起来的一个性能卓越的三维图形标准,它是在s g i 等多家 、 世界闻名的计算机公司的倡导下,以s g i 的g l 三维图形库为基础制定的一个通用共 享的开放式图形标准。目前,包括m i c r o s o f t 、s g i 、i b m 、d e c 、s u n 和h p 等大公 司都采用了o p e n g l 作为三维图形标准,许多软件厂商也纷纷以o p e n g l 为基础开发 了自己的产品。如动画制作软件3 ds t u d i om a x 、v r 软件w o r l d t o o lk i t 、c a m 软 件p r o e n g i n e e r ( p r o e ) 、g i s 软件a r c i n f o 等。而且,随着m i c m s o f t 公司在w i n d o 哪 n t 和w m d o w s 9 5 ,9 8 2 0 0 0 中提供了o p e n g l 标准及o p e n g l 维图形加速卡的推出, o p e n g l 开始在微机中广泛应用,同时也为广大用户提供了在微机上使用以前只能在 高性能图形工作站上运行的各种软件的机会。同时由于o p e n g l 是开放的图形标准, 用户原先在u n i x 下开发的o p e n g l 图形软件很容易移植到微机上的w m d o w s 环境 下运行。 o p e n g l 独立于硬件设备和操作系统,许多计算机公司已经把o p e n g l 集成到各 种操作系统中,如u n i x ,w i n d o w sn t 、w m d o w s9 x 、w i n d o w s2 0 0 0 等,以它为基 础开发出来的应用程序可以十分方便地在各种平台间移植。o p e n g l 可以与高级程序 设计语言v i s u a lc + + 紧密结合,以更方便地实现有关的图形算法和友好的操作界 面。 o p e n g l 的核心a p i ( a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ) 提供了一组原语来处理 点、线、多边形面、有理多边形曲面和位映射图像等。这些可以描述位置坐标、颜色、 表面法线及纹理坐标等。光栅处理器利用这些原语和o p e n g l 的当前图形状态对最终 输出象素进行图形操作。由于o p e n g l 非常适合于操作顶点和象素数据,支持纹理映 射,并体现了一种体系结构,因而有人称其为可视化体系结构。 o p e n g l 使用简捷、效率高。它具有以下七项功能: ( 1 ) 建模 o p e n g l 图形库除了提供基本的点、线和多边形的绘制函数外,还提供了 复杂的三维物体( 球、锥、多面体和茶壶等) 以及复杂曲线和曲面( 如b e z i e r 、 n u r b s 等曲线或曲面) 绘制。 ( 2 ) 变换 5 华中科技大学硕士学位论文 o p e n g l 图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、 缩放和镜像几种操作。投影变换有平行投影( 又称正投影) 和透视投影两种 变换,其变换方式和运动学中的坐标变换方法是一致的,有利于减少计算时 间,提高三维图形的显示速度。 ( 3 ) 颜色模式设置 o p e n g l 中颜色模式有两种,即r g b a 模式和颜色索引模式。r g b a 模 式和w m d o w s 下的通用的颜色模式一致,分别用红( r ) 绿( g ) 蓝( b ) 透 明度( a ) 来表示,可以表示2 4 m 种颜色,同时还可以提供透明显示。不同 之处是,o p e n g l 中各种颜色值是从0 0 1 0 的变化范围,而非0 2 5 5 ,其实两 者之间是可以相互转换的,其公式为1 2 5 5 。在颜色索引模式下,同时可用的 颜色数目受到查色表大小和可用位面数的限制。用户可以自己定义。 ( 4 ) 光照和材质设置 o p e n g l 对光照的计算是由四个独立的部分叠加而成的,即发射光 ( e m i t t e d ) 、环境光( a m b i e n t ) 、漫反射光( d i f f u s e ) 、镜面光( s p e c u l a r ) 。发 射光最简单,它从物体发出且不受任何其他光源的影响。环境光是从光源经 过多次反射形成的,它均匀地从周围入射至物体表面并向各个方向等量发射。 漫反射光是直接从特定光源入射到物体表面并向各个方向等量发射的光,入 射角越小看起来越亮,同时从各个角度看亮度都是一样的。镜面光也是直接 从特定光源入射的,但在反射时只向特定的方向反射( 遵从镜面反射定理) 一束平行激光在高质量的镜面上几乎可以1 0 0 的反射。尽管同一光源射出 的光频率分布是一定的,但照在不同的表面上产生的环境光、漫反射光和镜 面反射光分量却可能不同。 o p e n g l 中近似认为,材质的颜色由反射光中的红、绿、蓝三色所占的百 , 分比决定的。与光线对应,材质具有独立的环境反射,漫反射和镜面反射颜 色成份,分别决定了材质对环境光、漫反射光和镜面光的反射能力。环境反 射和漫反射决定了物体的颜色,这两种成份很相象,甚至可以当作一种来看。 镜面反射色通常为白色或灰色,因此镜面反射的高光( h i g h l i g h t s ) 通常是光 源的镜面光成份的颜色和强度决定。 - ( 5 ) 纹理映射 利用o p e n o l 纹理映射可以十分逼真的表达物体表面细节。进行纹理映射 6 华中科技大学硕士学位论文 需要以下几步工作:( 1 ) 定义纹理。( 2 ) 控制滤波。( 3 ) 说明映射方式。( 4 ) 绘制场景给出顶点的纹理坐标和几何坐标。在进行图形绘制时,主要考虑的 是使用各种几何图元的实颜色,或用图元中各个颜色的插值进行平滑明暗处 。- 理。而如果使用纹理映射,不仅可以节省绘制时间,而且效果会更好。纹理 映射中所用到的数据既可以是程序生成的一组数据,也可以从外部文件读取。 ( 6 ) 位图显示和图像增强 图像功能除了基本的拷贝和像素读写外,还提供融合( b l e n d i n g ) 、反走样 ( a n t i a l i a s i n g ) 和雾( f o g ) 的特殊图像效果处理。 ( 7 ) 双缓存动画 双缓存即前台缓存和后台缓存,后台缓存计算场景、生成画面,前台缓 存显示后台缓存已经画好的画面。此外,利用o p e n g l 还能实现深度暗示 ( d e p t hc u e ) 、运动模糊( m o t i o nb l u r ) 等特殊效果,从而实现消隐算法。 o p e n g l 是一个硬件发生器的软件接口,其主要目的是将二维、三维物体绘制到 一个帧缓存里,它包括几百个图形函数,开发者可以利用这些函数建立三维模型和进 行三维实时交互。大多数o p e n g l 系统要求图形硬件系统中至少包含一个帧缓存。 o p e n g l 的图形函数不要求开发者把三维物体模型数据写成固定的数据格式,这样, 开发者不但可以使用自己的数据,而且还可以利用其他不同格式的数据源。这种灵活 一 性大大地节省了开发者的时间,提高了软件的开发效益。使用o p e n g l ,从事三维图 形开发的技术人员不需要在自己的程序里编写许多不必要的矩阵变换、外部设备访问 函数。 下面介绍o p e n g l 自身的一些特有概念。 ( 1 ) 过程性而非描述性 o p e n g l 提供对二、三维图形基本操作非常直接的控制,包括对诸如变换 矩阵、光照方程系数、反走样方法和像素更新操作符等参数的指定。但是, 二 它不提供对复杂几何对象的描述和建模手段。因此,发布o p e n g l 命令就是 要指定怎样产生一个特定的结果,而不是确切说明结果应该如何。即o p e n g l 是过程性而非描述性的。 ( 2 ) 执行模式 o p e n g l 命令的解释模式是客户b i l l 务器式的。应用程序( 客户) 发布命 令,命令被o p e n g l ( 服务器) 解释和处理。服务器可以运行在客户相同和 7 。醛 华中科技大学硕士学位论文 不同的计算机上,基于这一点,o p e n g l 是网络透明的。服务器可维护许多 o p e n g l 正文,每个都是封装的o p e n g l 状态。客户可连到这些正文中的任 何一个。这要求网络协议可以通过扩展现有协议或使用= 个独立协议来实现。 分配帧缓存资源的窗口系统最终控制o p e n g l 命令在帧缓存上的作用效 果。窗口系统决定任何给定时刻o p e n g l 可以访问帧缓存的哪些部分,并通 知o p e n g l 这些部分是怎样组织的。因此,配置帧缓存或初始化o p e n g l 的 工作不是由o p e n g l 命令完成,而是由窗口系统完成。帧缓存的初始化是结 合窗口系统在o p e n g l 外完成,窗口系统为o p e n g l 绘制分配窗口时实现 o p e n g l 初始化。 ( 3 ) 图元和命令 o p e n g l 能够绘制的图元包括点、线段和多边形,o p e n g l 可以在这几种 图元模式之间选择。用户可以独立地控制图元模式,即设定一种模式不影响 其他模式。模式的选择、图元的定义以及其他o p e n g l 操作都是通过调用相 应函数来实现的。 图元被定义为一组顶点。顶点是构成线和多边形基本元素的。与顶点相 关联的数据包括其坐标、颜色、法向量、纹理坐标、边标识等。一般情况下, o p e n g l 以相同的方法独立地、顺序地处理每个顶点及其关联数据。 0 p e n g l 总是按照接收到的顺序进行处理,即先定义的图元画完后才会执 行随后的命令,状态查询命令返回在调用它之前所有发给o p e n g l 的命令完 全执行后的相应数据。 ( 4 ) 绘制方式 o p e n g l 绘制过程多种多样,内容十分丰富,主要提供了一下对三维物体 的绘制方式: 线框绘制方式( 淅r ef r a m e ) 深度优先线框绘制方式( d e p t hc u e d ) 反走样线框绘制方式( a n t i a l i a s e d ) 平面明暗处理方式( t i ms h a d 啦) 光滑明暗处理方式( s m o o t l ls h a d i i l g ) 加阴影和纹理的方式( s h a d o w 、t e x t u r e ) 华中科技大学硕士学位论文 运动模糊绘制方式( m o t i o nb l u r e d ) 大气环境效果( a t m o s p h e r e e f f e c t s ) 深度域效果( d e p t h o f e f f e c t s ) 2 2o p e n g l 中的图形学【1 - 3 】 作为一种通用的图形开发库,o p e n g l 几乎包罗了计算机图形学的各个方面。包 括点线面的绘制,坐标变换、光照模型等等,以下根据本文的研究内容,介绍图形学 在o p e n g l 中的应用。 2 2 1 坐标变换 坐标变换在图形绘制程序中具有相当重要的作用,可以看作是一切图形绘制程序 的基础,几乎任何图形绘制程序都必须不同程度地依赖于坐标变换。 三维几何物体是在三维坐标中考虑的,但当计算机图形的点绘制到屏幕上时,它 将是二维图像。因此,将几何物体的三维坐标转换到屏幕上的像素位置,需要经过如 下3 种计算机操作: ( 1 ) 通过矩阵相乘所表示的变换,包括造型、视图和投影等操作。这些操作包 括旋转、平移、缩放、反射、正交投影和透视投影。通常需要将几种变换 结合起来绘制场景。 ( 2 ) 由于场景是在一个矩形窗口中绘制的,所以位于窗口之外的物体( 或物体 的一部分) 必须被裁剪掉。在三维计算机图形中,在裁剪面构成的范围以 外的物体也被裁剪。 ( 3 ) 在变换的坐标和屏幕像素之间必须建立对应关系,即视口变换。 通用变换命令 v o i dg l m a t r i x m o d e ( g l e n u m m o d e ) ; 此函数用于指定用哪个矩阵作为当前矩阵。其中m o d e 用于指定哪种矩阵栈是其后矩 阵操作的目标。m o d e 可以有3 个值: o l _ m o d e lv i e w 把后面的矩阵操作施加于造型试图矩阵栈。 g l _ p r o j e c t i o n 把后面的矩阵操作施加于投影矩阵栈。 g lt e x t u r e 把后面的矩阵操作旖加于纹理矩阵栈。 一次只能修改一种矩阵,默认情况下矩阵操作施加于造型视图矩阵栈。 9 华中科技大学硕士学位论文 v o i dg l l o a d l d e n t i t y ( 、r o i d ) : 将当前矩阵赋值为单位矩阵。 v o i dg l l o a d m a t r i x f d ) ( c o n s tt y p e + m ) ; v 将矩阵m 赋值给当前矩阵,m 是列优先组成的4 x 4 矩阵m ,其中包含1 6 个值。 v o i dg l m u l t m a t r i x f d ) ( c o n s tr 汀pm ) ; 用任意矩阵m 乘以当前矩阵。 视图和造型变换 在o p e n g l 中视图和造型变换中的关系十分密切,两种变换是一个相反的过程。 由于视图和造型变换具有二重性,所以在变换过程中要考虑两种变换的综合效果。 视图和造型变换主要包括平移、旋转、缩放等操作。 v o i dg l t r a n s l a t e f d ( t y p ex ,t y p ey ,t y p ez ) : 用平移矩阵乘当前矩阵,参数x ,y ,z 分别指定x ,y ,z 坐标值平移物体。 v o i dg l r o t a t e f d ( t y p e a n g l e ,t y p ex ,t y p ey , t y p e z ) ; 用旋转矩阵乘当前矩阵。其中a n g l e 指定旋转的角度,参数x ,y ,z 指定一个原点 到( x ,y ,z ) 点的向量,作为旋转的中心轴,旋转方向是逆时针方向。 v o i dg l s c a l e f d ( t y p ex ,t y p e y ,t y p e z ) : 用缩放矩阵乘当前矩阵,x ,y ,z 依次指定按x ,y ,z 轴各自的比例因子缩放物 体。 投影变换 投影变换有两种:透视投影和正交投影。投影变换定义视图体,以确定物体如何 投影到屏幕上,在视图体外的物体或物体的一部分将被裁减掉。 ( 1 ) 透视投影 透视投影( p e r s p e c t i v ep r o j e c t i o n ) 的最明显的特征是按透视法缩小:物体离 视点越远,显示越小。这是由于透视投影的视图体是一个金字塔的棱台。如 图2 - 1 所示,这种投影方法通常用于动画和视觉模拟,以及其他一些力求真 实感的应用。 ( 2 ) 正交投影 如图2 - 2 所示,正交投影的视图体是矩形六面体,视图体从一端到另一端不 变化,因此视点离物体的距离并不影响场景中物体n ;k 4 、。 l o 华中科技大学硕士学位论文 z 视 点 方 向 图2 - 1 点投影模型 t o p x 图2 2 正交投影模型 视口变换 视口是窗口中的矩形绘图区。视口用窗口坐标来度量,它反映了屏幕上的象素位 置。 v o i dg l v i e w p o r t ( g l i n t x ,g l i n ty ,g l s i z e iw i d t h , g l s i z e ih e i g h t ) 定义视1 :3 ,其中x ,y 指定视口矩形的左下角( 以象素为单位) ;w i d t h ,h e i g h t 依 次指定窗口的宽和高。 视口的宽高比通常等于视图体的宽高比。改变窗口大小会影响视口,在应用程序 中应检验窗口的缩放事件,并适当修改窗口。 2 2 2 光照模型 如前所述,最终的光照效果是光线与表面共同作用的结果。在o p e n g l 中,光源 的颜色由它发出的三种原色光( 红、绿、蓝) 的含量决定,而物理表面的颜色则由其 反射的这三种光的含量决定。o p e n g l 的光照模型尽管只是一个近似,但计算速度快。 在场景中,o p e n g l 可以放置若干个光源,每个光源都可以单独打开或关闭,不同的 物理表面对光线有不同的反射特性。 华中科技大学硕士学位论文 光源设置 光源有如下属性:颜色、位置和方向。 v o i dg l l i g h t i f i v ( g l e n u ml i g h t g l c n u mp n a r n e ,t y p ep a r a r n ) ; 该函数用来设置光源属性,l i g h t 是光源的标识,p n a m e 代表需设置的属性,p a r a m 代表需要给p n 锄e 代表的属性设置的值。 光源颜色 o p e n g l 允许对光源的3 个与颜色相关的参数进行调整,它们是g l a m b i e n t , g l _ d i f f u s e ,g l - s p e c u l a r 。 g l f l o a t l i g h t _ a m b i e n t h = 0 0 ,0 0 ,1 0 ,1 0 ) ; o l l i g h t f v ( g l _ _ l i g h t o ,g l _ a m b i e n t , l i g h t _ a m b i e n t ) ; g la m b i e n t 代表场景中某光源的环境光的r g b a 各个分量的强度。 g ld i f f u s e 定义了特定光源提供的漫反射光的r g b a 值。g ls p e c u l a r 参数影 响物体上高光点颜色。 位置与衰减 光源的位黄有2 种,一种离场景无限远,称为方向光源,它射到物体上的光可以 认为是平行的,一种在附近,称为位置光源,它的独有位置决定了它在场景中的作用 效果。 g l f l o a t l i g h t _ p o s i t i o n = 1 0 ,1 0 ,1 0 ,0 0 ) : g l l i g h t f v ( g l _ - l i g h t 0 ,g l _ p o s i t i o n ,l i g h t _ p o s i t i o n ) ; g l _ _ p o s i t i o n 是一个4 个值的向量( x ,y ,z ,w ) 。如果最后一个值w 是0 ,则相 应的光源为方向光源,由( x ,y ,z ) 决定其方向。如果w 为非零值,光源就是位置光源, 而( x ,y z ) 代表光源位置的齐次坐标,该位置将被透视模型矩阵转换到视点坐标系中。 现实中,光线的强度会随着传播距离的增加而减弱,由于方向光源是从无限远处 射来的,所以衰减计算对于方向光源来说是无效的,对于位置光源则必须考虑这个问 题。o p e n g l 通常给光源的光乘上一个因子来达到衰减的目的。 衰减因子;三= k c + k t d + k q d 2 t 其中,d 为光源到顶点的距离,疋为g l _ c o n s t a n ta t t e n u a t i o n ,七,为 g l _ l i n e a ra t t e n u a t i o n ,七口为g lq u a d r a t i c _ a 翩a t i o n 。 1 2 华中科技大学硕士学位论文 可以将一个位置光源定义成一个聚光灯,即可以将光的发射形状调整为圆锥形。 创建聚光灯,需要定义锥光的跨度,定义锥光的散射角,需要使用g l _ s p o t _ c u t o f f 参数,圆锥的顶角是该值的2 倍。 2 3w i n d o w 下o p e n g l 程序框架的建立 、 可以用目前较为流行的开发工具v i s u a lc + + 以及与之配套的m f c 类库方便地建 立o p e n g l 程序框架,以下介绍该程序框架

温馨提示

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

评论

0/150

提交评论