



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 3 d 打印机分层软件作为c a d 到i 冲的数据转换和处理接口,是3 d 打印机的灵魂。 各大3 d 打印机生产商一般都开发有自己的分层软件,国外也涌现了很多作为c a d 与l 冲 系统之间桥梁的第三方分层软件。但是,这些分层软件价格昂贵,并且无标准化,软件的 二次开发困难。针对此现状,我们设计和开发了一种基于s t l 文件格式的具有快速分层能 力的分层软件,以满足自行研发的3 d 打印机的需要。本文详细介绍了这种3 d 打印机分层 软件的设计与实现。 文章首先介绍了快速成型技术的发展,描述了目前国内外比较流行的3 d 打印机分层 软件的类型和特点,并重点关注了基于s t l 模型的3 d 打印机分层软件。 接着,文章在对s t l 文件格式分析的基础上,研究了基于o p e n g l 的s t l 模型可视 化,并重点研究了s t l 模型的分层算法,给出了各个算法的实现和实例比较。文章结合自 行设计的3 d 打印机分析了系统的功能需求,设计了3 d 打印机分层软件的总体方案,并根 据总体的设计方案逐步展开。本文中软件采用了模块化和层次化的设计方法,根据软件工 程的模型,进行了软件的模块划分并确定了各部分的功能,对软件的详细设计进行了重点 描述。 然后,本文对软件的界面和特性进行了描述,并以一个具体的模型对软件功能和流程 进行了详细的介绍。 最后,对本文的工作做了一个总结,并对后续的开发工作指出了方向,对3 d 打印机 分层软件的研发做了相关展望。 关键词:3 d 打印机,o p e n g l ,s t l ,分层,算法,r p ,软件设计,模块化 a b s t r a c t a b s t r a c t a st h ei n t e r f a c eo fd a mc o n v e r s i o na n dd a t ap r o c e s s i n gf r o mc a dt or p , s l i c i n gs o f t w a r ei st h es o u lo f 3 dp r i n t e r m a j o r3 dp r i n t e rm a n u f a c t u r e r sg e n e r a l l yh a v ed e v e l o p e dt h e i ro w ns l i c i n gs o f t w a r e t h e r ea r c a l s oal o to ft h i r d - p a r ts o f t w a r ea st h eb r i d g eb e t w e e nc a da n dr pa b r o a d h o w e v e r , t h e s es l i c i n gs o f t w a r e a r ev e r ye x p e n s i v ea n dh a v en os t a n d a r d i z a t i o n ,a n dt h e ya r cd i f f i c u l tf o rs e c o n d a r yd e v e l o p m e n t a g a i n s tt h e s t a t u sq u o ,w ed e s i g na n dd e v e l o paq u i c ks l i c i n gs o f t w a r ew h i c hi sb a s e do ns t lf i l ef o r m a tt om e e tt h en e e d s o fs e l f - d e s i g n e d3 dp r i n t e r n ep a p e ri n t r o d u c e st h ed e s i g na n dr e a l i z a t i o no f s l i c i n gs o f t w a r eo f3 dp r i n t e ri n d e t a i l f i 璐f 1 t h ep a p e ri n t r o d u c e st h ed e v e l o p m e n to fr a p i dp r o t o t y p i n gt e c h n o l o g y a f t e rt h a t ,i td e s c r i b e st h e t y p e sa n dc h a r a c t e r i s t i c so fs l i c i n gs o f t w a r ew h i c ha r ep o p u l a ra th o m ea n da b r o a d ,a n dt h es l i c i n gs o f t w a r e b a s e do ns t lm o d e la l ee s p e c i a l l yf o c u s e d s e c o n d l y , a c c o r d i n gt ot h ea n a l y s i so fs t lf i l ef o r m a t ,t h ep a p e rd e s c r i b e st h es t u d i e so nv i s u a l i z a t i o no f s t lm o d e lb a s e do no p e n g l ,e s p e c i a l l yf o c u s e so nt h es t u d i e so fs t lm o d e ls l i c i n ga l g o r i t h m sa n dt h e r e a l i z a t i o na n dc o m p a r i s o no fv a r i o u sa l g o r i t h m s c o m b i n e dw i t ht h ef u n c t i o n a lr e q u i r e m e n t sa n a l y s i so f s e l f - d e s i g n e d3 dp r i n t e r , i n t e g r a t i o nd e s i g no ft h es l i c i n gs o f t w a r ei sr a i s e d , a n dt h e nt h ep a p e ru n f o l d s g r a d u a l l ya c c o r d i n gt ot h eo v e r a l lp r o j e c tp l a n s l i c i n gs o f t w a r ei sp a r t l yb a s e do nt h em o d u l a ra n dh i e r a r c h i c a l d e s i g nm e t h o d ,a c c o r d i n gt ot h em o d e lo fs o f t w a r ee n g i n e e r i n g ,t h ep a p e rd e s c r i b e ss o f t w a r em o d u l e sa n d c o r r e s p o n d i n gf u n c t i o n s ,a n de s p e c i a l l yt h ed e t a i ld e s i g no ft h es o f t w a r e t h i r d l y , t h ep a p e rd e s c r i b e st h es o f t w a r ei n t e r f a c ea n df e a t u r e s ,a n di n v o i c e st h es o r w a r ef u n c t i o n sa n d f l o wi nd e t a i lb yu s i n gas p e c i f i cm o d e l f i n a l l y , ab r i e fs u m m a r i z ei sd e s c r i b e da n dt h ef o l l o w i n gr e s e a r c hw o r ki sd i s c u s s e d k e y w o r d s :3 dp r i n t e r , o p e n g l ,s t l , s l i c i n g ,a l g o r i t h m ,r a p i dp r o t o t y p i n g ,s o f t w a r ed e s i g n ,m o d u l a r i i 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽 我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研 究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同工 作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 芈 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印件 和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文 的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 研究生签名:j 啦导师签名:二竽礁日期: 第1 章绪论 1 1 课题的研究背景和意义 第1 章绪论 快速成型( r a p i dp r o t o t y p i n g ,简称r p ) 技术是2 0 世纪8 0 年代后期发展起来的一种先进制造技术。 二十几年来,该技术在国内得到了迅速的发展,应用领域不断扩大。此技术已j “泛应用在机械、汽车、 航空航天、电子等行业中,取得了显著的效果。 快速成形技术采片j 离散堆积的j :艺原理,该技术非常适用于形状复杂的不规则零件的制造,使得零 件的复杂程度与制造成本基本无关,成功的实现了设计与制造的一体化,解决了c a d 中三维造型“看 得见,摸不着”的问题嵋1 。 快速成型的方法很多,典型的有:s l ( 光同化法) 法、l o m ( 层迭法) 法、s l s ( 选择烧结法) 法、f d m ( 融堆法) 法、s g c ( 层同化法) 法等。“。这些方法各有优缺点,然而这些方法有一个共同的 缺点:成形的时间长,而且成本很高,一股的中小型企业难以承受。近年来,国外又推出了一种新的快 速成型方法:3 d p ( 三维打印法) 法。而采用了3 d p 方法的快速成型设备被形象地称为3 d 打印机。3 d p 法成型速度比其它技术快5 1 0 倍,其它快速成型设备两三天才能成型的零件,3 d 打印机几个小时之 内就可以完成。 3 d 打印机成本低廉、设备占用空间小,可以成为设计师办公室的办公用品。更重要的是,由于以 上的优点,三维打印法能够普及性的改变传统的零件设计模式。传统的零件设计都是二维的三视图,以 至现在的一些优秀的设计软件( 如u g 、p r o e n g i n e e r 等) 虽然能够给设计者立体视图,但是还是没 有实现真正的模型设计,客户还是摸不着,而只是概念设计。而3 d p 法将会使得实体( 模型) 设计成 为可能。j j 通用的软件,如p r o e n g i n e e r ,设计的零件,只需利用3 d 打印机分层软件进行切片处 理,然后通过数控系统指挥打印机一层层打印。不用多长时间,真实的三维立体模型就会出现在设计者 和用户的面前。这样就可以大大节省开支,减少不必要的浪费。而且还可以加快产品的开发,迅速占领 市场。 1 2 相关技术研究现状 1 2 1 已有的分层软件 3 d 打印机快速成型可以分为离散和堆积两个过程,如图1 - i 所示。 也够棼到 i i 一j ;c 】蜜:匿 v 数据处理过程; r 1 西再薪夏匿运( 离散过程) | ( 层片信息处理)o i 曷瞅赳径l :一一一一一一,一一一一,j f 面丽壶砷 , , 物理实现过程l ! 彻埋买现趣程; 叵堆积过程i 目宣 l 实体模型j 图1 i3 d 打印机快速成型的基本过程 画 东南人学硕上论文 离散过程将c a d 模型沿某一方向( 如z 方向) 离散为一系列的二维层面( 称为分层或切片) ,得 到系列的二维平面信息( 截面信息) ;分层后的数据进行进一步处理,根据不同上艺的要求将这些信 息与3 d 打印机数控成型技术相结合,生成代码在微机控制下,数控系统以平面加工方式,有序地连续 加【出每个薄层,并使它们自动粘接而成型,从而构成一个与模型相对应的三维实体模型,这就是堆积 的过程。 从图1 1 可以看出,整个过程可以分为数据处理和物理实现两大步骤,其中数据处理主要完成三维 模型的离散功能,而物理实现则根据离散的层片信息完成实体的制造。 3 d 打印机数据处理技术可以接收和处理任何一个c a d 系统输出的三维模型信息( 如s t l 文件格 式) ,对c a d 模型进行分层,最后处理成层片文件格式送入3 d 打印机中。3 d 打印机接收经数据处理 技术处理后的层片文件进行快速成型制造。 快速成型数据处理是r p 技术的第一道环节,也是最重要的一个环节。快速成型数据处理的方法及 精度直接影响成犁件的质量。r p 数据处理由软件系统负责完成,冈此分层软件作为c a d 剑r p 的数据 转换和处理的接口,是3 d 打印机的灵魂。各大3 d 打印机生产商一般都开发自己的分层软件。如3 d s y s t e m 公司的a c e s 、q u i c k c a s t ,h e l i s y s 公司的l o m s l i c e ,d t m 公司的r a p i dt o o l ,s t r a t a s y s 公司 的q u i c k s l i c e 、s u p p o r t w o r k s 、a u t o g e l l ,c u t i b a l 公司的s o l i d e r d f e ,s a n d e rp r o t o t y p e 公司的p r o t o b u i l d 和p r o t o s u p p o r t 等1 。 由于c a d 与r p 接口软件开发的困难性和相对独立性,国外涌现了很多作为c a d 与r p 系统之间 桥梁的第三方软件。这些软件一般都以常用的数据文件格式作为输入输出接口( 如s t l 文件) ,而输出 的数据文件般为c l i 。比较著名的一些第三方接1 3 软件有美国s o l i dc o n c e p t 公司的b r i d g e w o r k s 、 s o l i d v i e w ,比利时m a t e r i a l i s e 公司的m a g i c s ,美国p o g o 公司的s t lm a n a g e r ,美国i m a g e w a r e 公司 的s u r f a c e r p m 等。 1 2 2 基于s t l 模型的分层软件 不同c a d 系统所采用的内部数据格式不同,3 d 打印机无法一一适从,这就要求有一种中间数据 格式既便于3 d 打印机接受义便于不同的c a d 系统生成,s t l ( s t e r e ol i t h o g r a p h y ) 格式应运而生了。 s t l 格式最初出现于1 9 8 8 年美国3 ds y s t e m 公司生产的s l a 快速成形机中,但真正深化和成为r p 工业界的准标准还是在2 0 世纪9 0 年代,目前,s t l 是当前绝大多数商用r p 系统广泛采用的c 朋) r p 数据接口,我国r p 系统的接口文件均采用s t l 标准。 目前c a d 系统几乎都支持s t l 模型,s t l 已成为快速成形行业的工业标准。s t l 吸引了广大 c a d c a e c a m 系统的使用者和开发者,同时也受剑世界上主要c 燃a e c a m 开发商的关注和支持, 越来越多的洲c a m 软件系统都增加了输出s t l 文件的功能模块,比如u g 、3 d s m a x 、a u t o c a d 、 m a y a 、p r o e 、s o l i d w o r k s 等3 d 成型软件都支持s t l 文件的输出。 目前国外许多i 心软件系统都采用s t l 格式,常见的有s o l i dc o n c e p t 公司的s o l i d v i e w ,m a t e r i a l i s e 公司的m a g i c 8 ,z - c o r p 公司的z p r i n t ,c a s t i n g st e c h n o l o g yi n t e r n a t i o n a l 公司的r p w o r k b e n c h ,d e s k a r t e s 公司的s p e c t r a le x p e r t 等1 。 1 2 3 分层软件存在的问题 r p 软件系统中目前存在的问题主要有以下几点: ( 1 ) 成型精度和速度 由c a d 模型转换成s t l 格式文件,以及随后的切片处理所产生的误差将影响模型最后的成型精度。 由于模型分层的算法有很多,采用不同的算法,模型分层的速度也不相同,甚至相差儿十倍。 ( 2 ) 分层软件无标准化,软件二次开发难 绝大多数开发商自行开发与其成形机匹配的r p 软件系统,市场上r p 软件互不兼容,不同r p 系 统间相互交换数据非常困难。 ( 3 ) 功能单一 己商品化的通用性软件价格较贵,功能单一,无法满足不同用户的需求。 2 第1 章绪论 1 3 本文研究内容及章节安排 本文主要阐述了3 d 打印机分层软件的设计与实现。文章首先探讨了s t l 模型信息的提取和交互式 显示,再进一步研究了s t l 模型的分层处理算法及其实现,最后给出了3 d 打印机分层软件的总体设计 以及具体设计和实现。具体的章:1 了内容安排情况如卜所示: 第二章介绍了s t l 模型信息表达方式,并给出了s t l 模型的可视化研究。 第三章详细介绍了s t l 模型3 种分层算法的思想和优缺点,给出了每一种算法的具体实现,并通 过具体实例对3 种算法进行了比较。 第四章介绍了3 d 打印机分层软件设计方案,包括整体架构设计和详细设计与实现。 第五章介绍了3 d 打印机分层软件的测试,并通过一个具体的模型对软件功能和流程进行了详细的 介绍。 结束语作为论文的最后一部分对系统软什整体进行了评述和总结,并对系统尚未完善的方面提出了 若干建议,以及对3 d 打印机分层软件的发展方向作出了展望。 3 东南人学硕士论文 第2 章s t l 文件中模型信息提取与可视化研究 2 1s t l 文件结构与模型信息提取 2 1 1s t l 文件的结构 s t l 文件表达一个三维实体模型用大量空间小三角形面片来近似逼近实体模型表面。相当予用由空 间三角形构成的多面体逼近原c a d 模型。从几何上看,每个空间小三角形面片都用三角形的3 个顶点 坐标及三角面片的法向量来描述,法向量由实体的内部指向外部。为保证模型的合法性、避免数据错误, s t l 文件及其几何模型必须遵循一系列规则憎,一个l e 确的s t l 数据模型应满足如下条件: ( 1 ) 右手法则:3 个顶点的次序与法向量满足右手规则; ( 2 ) 定点法n - 每相邻的两个三角形面片只能共享两个顶点; ( 3 ) 边法则:三角形的每一条边必须且只能由2 个三角形面片共享; ( 4 ) 面法n - 每个三角形面片只能有3 个相邻面。 s t l 文件一般有a s c i i 和二进制两种格式引,其中采用二进制的s t l 文件要比a s c i i 的文件小得 多( 一般是1 6 ) ,但是a s c i i 码输出形式可以直接阅读和检查。图2 1 为a s c i i 格式的s t l 格式。 s t la s c i i 格式 s o l i d 三角形面片列表 e n d s o l i d 图2 1s t l 文件的a s c i i 格式 s t l 文件常用的另一格式是二进制格式。如图2 - 2 所示,s t l 文件的二进制存储格式由文件题头 和三角面片信息两部分组成。文件题头由8 4 个字节组成,前面8 0 个字节为注释,最后4 个字节为三角 形平面片总数;每个三角面片信息由5 0 个字节组成:包括一个三角面片法矢量( m ,:) 和三个顶 点( 五,k ,z 1 ) 、( 置,e :z 2 ) 、( 托,匕,z ,) 坐标,所有信息均以实数形式存储,每个数值占4 个字节, 平面片法矢量和顶点坐标1 2 个数值共占用4 8 个字节,最后还有两个预留字节。受存放三角面片总数的 4 字节长度限制,二进制s t l 文件可记录三角形总数为2 3 2 一l = 4 2 9 4 ,9 6 7 ,2 9 5 ( 个) ,若s t l 模型包 含三角形数目为n ,则其二进制文件容量为:8 4 + 5 0 x n ( 字节) 。 4 第2 章s t l 文件中模型信息提取与可视化研究 8 08 l8 4 文件名、作者及其它注释信息( 8 0 字节) ( a ) 文件题头内容 三角面片总数 1591 31 7 2 l 2 52 93 33 74 l4 5 4 95 0 平面法矢量及三个顶点坐标值( 4 8 字节) ( b ) 一个三角面片内容 图2 - 2s t l 文件的二进制格式 目前基于s t l 模型的r p 数据处理系统一般流程如图2 3 所示。 c a d 造型软件 r 。! ;r p 数据处理系统 一 、 ;s t l 文件i c a d 模型模型近似处理 卜 s 孔纠错修复 一入 八二维层片文件 刮层片工艺规划叫t 叫 分层处理 输出 ! - - - - - - - - - - - _ _ - _ - - - - - - - - - - - - - _ 一一一一一一- 一- - _ - 一_ 一- - - _ - 一_ - - - - _ - - _ - - - - , 图2 3 基于s t l 模型的r p 数据处理流程 由于s t l 格式具有易于转换、表示范围广、分层算法简单等特点,为大多数商用快速成形系统所 采用,现已成为快速成形行业的工业标准。 2 1 2s t l 文件的读入与分析 s t l 文件存在a s c i i 和二进制两种格式,在读取和分析s t l 文件时需要对文件类型进行判断。完 整的s t l 文件读取和分析流程如图2 _ 4 所示。 5 东南大学硕卜论文 :至爸眵n n 、一 图2 _ 4s t l 文件读取和分析流程 2 2 基于o p e n g l 的s t l 模型可视化 三维模型的显示是3 d 打印机分层软件必不可少的功能。对于3 d 打印机分层软件来说,三维模型 的显示功能应达到以下几个要求: ( 1 ) 能显示具有一定真实感的三维模型; ( 2 ) 支持线框模式和阴影模式; ( 3 ) 支持模型的旋转、移动、缩放,能够从不同角度进行观察。 为了能够实现以上这些功能,本文采用了o p c n g l n 副可视化技术。 2 2 1o p e n g l 简介 一、o p e n g l 提供直观的三维图形开发环境 o p e n g l 实际上是一种图形与硬件的接口。它主要包括了1 2 0 多个图形函数,开发者可以用这些函 数来建立三维模型和进行三维实时交互。与其他图形程序设计接口不同,o p e n g l 提供了十分清晰明了 的图形函数,因此程序设计员可以利用o p e n g l 的图形处理能力和1 6 7 0 万种色彩的调色板很快地设计 出三维图形以及三维交互软件。 o p e n g l 强有力的图形函数不要求开发者把三维物体模型的数据写成固定的数据格式,这样开发者 不但可以直接使用自己的数据,而且可以利用其他不同格式的数据源。这种灵活性极大地节省了开发者 的时间,提高了软件开发效益。 o p e n g l 提供一种直观的编程环境,它提供的一系列函数大大地简化了三维图形程序。o p e n g l 提 6 第2 章s t l 文件中模型信息提取与町视化研究 供一系列的三维图形单元供开发者调用,并提供了一系列的图形变换函数和外部设备访问函数,使开发 者可以方便地访问鼠标、键盘、空间球、数据手套等。 二、o p e n g l 成为目前三维图形开发标准 o p e n g l 成为目前三维图形开发标准。在计算机发展初期,人们就开始从事计算机图形的开发。直 到计算机硬软件和计算机图形学高度发达的二十世纪九十年代,人们发现复杂的数据以视觉的形式表现 时是最易理解的,因而三维图形得以迅猛发展,于是各种三维图形上具软件包相继推出,如p h i g s 、 p e x 、r e n d e r m a n 等。这些三维图形工具软件包有些侧重于使朋方便,有些侧重于渲染效果或与应用软 件的连接,但没有一种三维上具软件包在交互式三维图形建模能力、外部设备管理以及编程方便程度上 能够o p e n g l 相比拟。 许多计算机公司已经把o p e n g l 集成到各种窗口和操作系统中,其中操作系统包括u n i x 、w i n d o 啪 n t 、d o s 等,窗口系统有x 窗口、w i n d o w s 等。 o p e n g l 作为一个性能优越的图形应用程序设计界面( a p i ) 而适合于广泛的计算环境,从个人计 算机到一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 工作流程 整个o p e n g l 的基本工作流程如图2 5 所示: 其中几何顶点数据包括模裂的顶点集、线集、多边形集,这些数据经过流程图的上部,包括运算器、 逐个顶点操作等;图像数据包括像素集、影像集、位图集等,图像像素数据的处理方式与几何顶点数据 的处理方式是不同的,但它们都经过光栅化、逐个片元( f r a g m e n t ) 处理直至把最后的光栅数据写入帧 缓冲器。在o p e n g l 中的所有数据包括几何顶点数据和像素数据都可以被存储在显示列表中或者立即可 以得到处理3 1 。在o p e n g l 中,显示列表技术是一项重要的技术。 广_ l 兰竺里皇塾塑l 匦堕圃 一 | 逐个顶点 叫运算器l叫操作和图ll b 组划厂了r 叫光栅化叫逐个顶点操作| 1 。,。一 。j f _ 一 刊图像操作 l 一厂_ 厂一一羔 “ 叫纹理映射叫 帧缓冲区 图2 5o p e n g l 的基本工作流程图 o p e n g l 要求把所有的几何图形单元都用顶点来描述,这样运算器和逐个顶点计算操作都可以针对 每个顶点进行计算和操作,然后进行光栅化形成图形碎片;对于像素数据,像素操作结果被存储在纹理 组装用的内存中,再像几何顶点操作一样光栅化形成图形片元。整个流程操作的最后,图形片元都要进 行一系列的逐个片元操作,这样最后的像素值b z 送入帧缓冲器实现图形的显示。 四、o p e n g l 图形操作步骤 在o p e n g l 中进行主要的图形操作直至在计算机屏幕上渲染绘制出三维图形景观可以归纳为以下 几个基本步骤: ( 1 ) 根据基本图形单元建立景物模型,并且对所建立的模型进行数学描述( o p e n g l 中把点、线、 多边形、图像和位图都作为基本图形单元) ; ( 2 ) 把景物模型放在三维空间中的合适的位置,并且设置视点( v i e w p o i n t ) 以观察所感兴趣的景 观; ( 3 ) 计算模型中所有物体的色彩,其中的色彩根据应用要求来确定,同时确定光照条件、纹理粘 贴方式等: ( 4 ) 把景物模型的数学描述及其色彩信息转换至计算机屏幕上的像素,这个过程也就是光栅化 ( r a s t e r i z a t i o n ) 。 在这些步骤的执行过程中,o p e n g l 可能执行其他的一些操作,例如自动消隐处理等。另外,景物 7 早 东南大学硕一l :论文 光栅化之后被送入帧缓冲器之前还可以根据需要对像素数据进行操作。 五、o p e n g l 函数库简介 o p e n g l 函数库主要包含以下几个部分: ( 1 ) o p e n g l 核心库:以g l 开头,包含有1 1 5 个函数,主要负责基本几何图元绘制、光照与材质、 显示列表、纹理映射、特殊效果、光栅化、像素操作、选择与反馈、曲线与曲面的绘制、状态设置与查 询等。这部分函数用于常规的、核心的图形处理。 ( 2 ) o p e n g l 实用库( g l u ) :以g l u 开头,包含有4 3 个函数,封装了o p e n g l 核心库的函数。 通过调h j 核心库中的函数来实现纹理映射、坐标变换和投影变换、多边形的网格划、二次曲面和n u r b s 曲面曲线绘制、以及错误反馈等高级操作。 ( 3 ) o p e n g l 应用工具包( g l u t ) :以g l u t 开头,包含约3 0 多个函数,是一个和窗口系统无关的 工具包。作为a u x 库功能更强的替代品,提供更为复杂的绘制功能,主要包括:窗口操作函数、回调函 数、创建复杂的三维物体、菜单函数、程序运行函数。 ( 4 ) o p e n g l 辅助库( a u x ) :以a u x 开头,包含有3 1 个函数。辅助库主要包括窗1 2 1 初始化和退 出、窗口处理和时间输入、颜色索引装入、三维物体绘制、背景过程管理函数、程序运行等函数;a u x 库在w i n d o w s 实现有很多错误,因此很容易导致系统频繁崩溃,而且不能在所有的o p e n g l 平台上运 行。在o p e n g l o r g 网址的技术f a q 上,也强烈建议使用g l u t 代替a u x 库。 ( 5 ) w i n d o w s 专用库( w g l ) :以w g l 开头,包含有1 6 个函数,针对w i n d o w s 平台的扩展。这 部分函数主要用于连接w i n d o w s 和o p e n g l 。 六、o p e n g l 与v i s u a lc + + 之间的接口 作为一个开放的三维图形软件包,o p e n g l 与v i s u a lc + + 之间接口紧密,m i c r o s o f t 在v i s u a lc + + 中 内置了o p e n g l ,用户可以在程序中方便的使用o p e n g l 强大的绘图功能。在w i n d o w s 中o p e n g l 开发 组件主要由三大部分组成: ( 1 ) 函数的说明文件:9 1 h 、g l u h 、g l u t h 和g l a u x h ; ( 2 ) 静态链接库文件:g l u 3 2 1 i b 、g l u t 3 2 1 i b 、g l a u x 1 i b 和o p e n g l 3 2 1 i b ; ( 3 ) 动态链接库文件:g l u d l l 、g l u 3 2 d l l 、g l u t d l l 、g l u t 3 2 d l l 和o p e n g l 3 2 d l l 。 2 2 2 基于0 p e n g l 的s t l 坐标变换实现 o p e n g l 坐标变换的函数有如下三个: ( 1 ) g l t r a n s l a t e ( x ,mz ) 使局部坐标系及其内物体发生平移: ( 2 ) g l s c a l e ( x ,y ,z ) 使物体( 或局部坐标系) 一起进行缩放; ( 3 ) g l r o t a t e ( a n g l e ,x ,弘z ) 使物体( 或局部坐标系) 绕一条从原点到点( x ,mz ) 的线,沿逆时针方向 旋转a n g l e 度。这三个语句的作用矩阵分别可以表示为: 1 o 01 o o 0o 0 石 0y 1z 0l x0 0 y 00 0 o 0 o o o z0 ol x 2 ( 1 一c ) + c y x ( 1 一c ) + 刀 x z ( 1 一c ) 一声 o x y ( 1 一c ) 一嚣 y 2 ( 1 一c ) + c y z ( 1 一c ) + 船 0 x z ( 1 一c ) + y s y z o c ) 一嚣 z 2 ( 1 - c ) + c 0 在此,c = c o s ( a n g l e ) ,s = s i n ( a n g l e ) ,且i i o ,y ,z ) 0 = 1 ( 否则,o p e n g l 将归一化该向量) 。 2 2 3s t l 场景渲染及优化 初次显示时,需要根据模型的空间位置来设置观察点的位置和观察方向,这样可以避免观察点在模 型内部或看不到模型等情况的发生。 在2 1 2 节对s t l 文件读入并提取相应的信息后,接下来需要对场景进行渲染。场景渲染的总体流 程如图2 - 6 所示。 8 第2 章s t l 文件中模型信息提取与可视化研究 萌磊主亲赢磅,否 廷亨没有显示的均焦二二,9 一一。+ 7 图2 - 6 场景渲染流程 经过渲染后,每个模型经过的坐标变换都用2 2 2 节的语句实现。每个模型的坐标变换前后都用入 栈、出栈语句使其不受其他模型坐标变换的影响。在每个模型的入栈后、出栈前用查询函数 g l g e t f l o a t v ( g lm o d e l v i e wm a t r i x ,m a t r i x ) ,可以获得当前的模型视图矩阵。模型视图矩阵是模型 变换矩阵和视图变换矩阵乘积的累计结果,视图矩阵设置视点的位置和方向,在渲染中是不变的,除去 它的作用就得剑模型的变换矩阵。对每个模型的模型变换矩阵保存为各自的位置属性,这样模型几何数 据就可以用一个变换矩阵m 和特征参数来表示,为后续的分层处理作了铺垫。 为了提高用户交互式浏览场景的显示性能,对于计算量大或数据多的坐标变换采用显示列表进行显 示。 2 2 4o p e n g l 关键技术的应用 一、帧缓存技术的运用 屏幕上所绘的图形都是由像素组成的,每个像素都有一个同定的颜色或带有相应点的其它信息,如 深度等。冈此在绘制图形时,内存中必须为每个像素均匀地保存数据,这块为所有像素保存数据的内存 区就叫缓冲区,又叫缓存。不同的缓存可能包含每个像素的不等数位的数据,但在给定的一个缓存中, 每个像素都被赋予相同位数的数据4 。存贮一位像素信息的缓存叫位面,系统中所有的缓存统称为帧 9 零嘲 东南大学硕士论文 缓存。 1 、帧缓存组成 o p e n g l 帧缓存由以下四种缓存组成: ( 1 ) 颜色缓存 颜色缓存通常指的是图形要画入的缓存,其中内容可以是颜色索引,也可以是r g b 颜色数据( 包 含a l p h a 值也可) 。若o p e n g l 系统支持立体视图,则有左、右两个缓存;若不支持立体视图,则只有 左缓存。同样,双缓存o p e n g l 系统有前台和后台两个缓存,而单缓存系统只有前台缓存。每个o p e n g l 系统都必须提供一个左前颜色缓存。 ( 2 ) 深度缓存 深度缓存保存每个像素的深度值。深度通常片j 视点到物体的距离来度量,这样带有较大深度值的像 素就会被带有较小深度值的像素替代。深度缓存也称为z - b u f f e r ,因为在实际应用中,x 、y 常度量屏 幕上水平与垂直距离,而z 常被用来度量眼睛到屏幕的垂直距离。 ( 3 ) 模扳缓存 模板缓存可以保持屏幕上某些部位的图形不变,而其它部位仍然可以进行图形绘制。 ( 4 ) 累积缓存 累积缓存同颜色缓存一样也保存颜色数据,但它只保存r g b a 颜色数据,而不能保存颜色索引数 据( 冈为在颜色表方式下使用累积缓存其结果不确定) 。这个缓存一般用于累积一系列图像,从而形成 最后的合成图像。 2 、帧缓存运用 o p e n g l 帧缓存的运用将解决如下两个问题: ( 1 ) 解决屏幕闪烁问题( 双缓存技术) 在窗口中拖动一个图形的时候,由于边画边显示,会出现闪烁的现象。在g d i 中解决这个问题较 为复杂,通过在内存中生成一个内存d c ,绘画时让画笔在内存d c 中画,画完后一次用b i t b l t 将内存 d c “贴”到显示器上,就可解决闪烁的问题。在o p e n g l 中,是通过双缓存米解决这个问题的。一般 来说,双缓存在图形工作软件中是很普遍的。双缓存是两个缓存,一个前台缓存、一个后台缓存。绘图 时先在后台缓存中画,画完后,交换到前台缓存,这样就不会有闪烁现象了。步骤如下: g d i 命令是没有设计双缓存的。把使用i n v a l i d a t e r e c t f n u l l ) 的地方改成i n v a l i d a t e r e c t ( n u l l , f a l s e ) ,这样可以使g d i 的重画命令失效,由o p e n g l 的命令进行重画; 将像素格式定义成支持双缓存的。d w h a g s = p f dd r a wt ow i n d o wi p f d s u p p o r t o p e n g lp f d _ d o u b l e b u f f e r ; 最后把后台缓存的内容换到前台缓存中,在绘图结束后加入:s w a p b u f f e r s ( h d e ) 。 ( 2 ) 从二维显示到三维显示( 深度缓存) 三维和二维的坐标系统不同,三维的图形比二维的图形多一个z 坐标。生成简单的二维图形时, 用的是g l u o r t h 0 2 d ;生成三维图形时,需要要两个远近裁剪平面,以生成透视效果。下面是生成三维 物体必须的两个步骤: 在函数o n s i z e ( ) 中,使用g l u p e r s p e c t i v e 实现了三维透视坐标系的设置; 要使三维物体显得更流畅,前后各面的空间关系正确,一定得使用深度缓冲技术,否则,前后 各面的位置就会相互重叠,不能正确显示。启用z 缓冲时需要加上g l e n a b l e ( g l,在每depth_test) 次重绘之前,应使用g l c i e a r ( g l _ d e p t h _ b u f f e r _ b i t ) i 吾句清空深度缓冲区,这样可以提高显示速度。 二、计算机颜色 几乎所有o p e n g l 应用目的都是在屏幕窗口内绘制彩色图形,所以颜色在o p e n g l 编程中占有很重 要的地位。这里的颜色与绘画中的颜色概念不一样,它属于r g b 颜色空间,只在监视器屏幕上显示。 另外,屏幕窗口坐标是以像素为单位,因此组成图形的每个像素都有自己的颜色,而这种颜色值是通过 对一系列o p e n g l 函数命令的处理最终计算出来的。 ( 1 ) 颜色生成原理 计算机颜色不同于绘画或印刷中的颜色,显示于计算机屏幕上每一个点的颜色都是由监视器内部的 l o 第2 章s t l 文件中模型信息提取与可视化研究 电子枪激发的三束不同颜色的光( 红、绿、蓝) 混合而成,因此,计算机颜色通常用r ( r e d ) 、g ( g r e e n ) 、 b ( b l u c ) - - - :个值来表示,这三个值又称为颜色分量。 ( 2 ) 颜色模式 o p c n g l 颜色模式一共有两个:r g b ( r g b a ) 模式和颜色表模式。在r g b 模式下,所有的颜色定义 全用r 、g 、b 三个值按不同比例米表示,有时也加上a l p h a 值( 与透明度有关) ,即r g b a 模式。在 颜色表模式下,每一个像素的颜色是用颜色表中的某个颜色索引值表示,而这个索引值指向了相应的r 、 g 、b 值。这样的一个表成为颜色映射( c o l o r m a p ) 。对于大多数系统来说,采用r g b a 模式比颜色表 模式的要多,用r g b a 模式可以比用颜色索引模式同时代表更多的颜色。对于诸如浓淡处理、光照、 雾化、图形保真和混合这儿种效果来说,r g b a 模式比颜色索引模式提供更人的灵活性,效果更明显。 在三维快速显示时,使用r g b a 模式可以突出三维效果。另外,纹理映射只能在r g b a 模式下进行。 所以在3 d 打印机分层软件设计中选用r g b a 模式。 三、矩阵堆栈技术的运用 堆栈指的是一个项部打开底部封闭的柱状物体,通常用来存放常用的东两。这些东西从顶部依次放 入,但取出时也只能从顶部取出,即“先进后出,后进先出”。在计算机中,它常指在内存中开辟的一 块存放某些变量的连续区域。因此,o p e n g l 的矩阵堆栈指的就是内存中专门用来存放矩阵数据的某块 特殊区域。 在创建、装入、相乘模型变换和投影变换矩阵时,都已用剑堆栈操作。一般说来,矩阵堆栈常用于 构造具有继承性的模型,即由一些简单目标构成的复杂模型。 矩阵堆栈对复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- FLT3-IN-32-TFA-生命科学试剂-MCE
- Farnesane-2-6-10-Trimethyldodecane-生命科学试剂-MCE
- 农发行龙岩市新罗区2025秋招群面案例总结模板
- 2025年通信基站储能电池梯次利用安全性能评价报告
- 农发行三门峡市卢氏县2025秋招金融科技岗笔试题及答案
- 工业园安全培训领导讲话课件
- 夜雨寄北教学课件
- 平湖市宜安安全培训课件
- 新能源行业人才流动趋势研究报告:2025年行业战略规划
- 江苏专升本试卷及答案
- 幼儿意外伤害急救处理
- 3.6中华人民共和国消防法
- 培训机构十项管理制度
- 老年患者护理质量管理
- 国家职业标准 6-11-01-03 化工总控工S (2025年版)
- 竞选青协笔试题及答案
- 《肾淋巴瘤》课件:肾脏淋巴瘤的病理与治疗
- 2025妊娠期高血压疾病心血管风险综合管理专家共识解读课件
- 智能导购创业计划书模板
- 临床成人床旁心电监测护理规程
- 电子病历标准化-全面剖析
评论
0/150
提交评论