




已阅读5页,还剩48页未读, 继续免费阅读
(计算机软件与理论专业论文)基于虚拟现实的历史重演系统的研究与开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于虚拟现实的历史重演系统的研究与开发 摘要 在我国,铁路的运输量十分巨大,大多数铁路系统的运行位置的历史重演是 依靠手工记录的文档或者调度监督系统的回馈数据来完成的。由于记录点间距离 较大,传感器本身的功能限制,所以目前的铁路系统的历史重演系统依旧不是非 常直观和准确的。因此,研究和开发基于虚拟现实的历史重演系统是十分有意义 的。 本文正是在这一需求推动下,利用3 dm a x 对铁路系统进行三维建模,使 用o p e n g l 建立演示系统,并对历史重演系统如何在信息有限的情况下的显示情 况做出判断,使得历史重演系统更加直观和准确。 本文第1 章对铁路历史重演系统的发展和现状进行了研究并分析了存在的 问题;第二章主要对建立系统所选用的o p e n g l 编程技术及环境进行介绍;第三 章介绍3 d sm a x 的图形文件;第四章主要介绍了在信息有限的条件下,建立历 史重演系统显示的数学表达,归纳出其对应规则以及相应的二叉判定树;第五章 叙述了历史重演系统的程序实现。 关键字:历史重演:三维建模;o p e n g l ;信息有限条件下的数学表达;二叉判 定树 r e s e a r c ha n d e x p l o i t a t i o no nh i s t o r yr e p e a ts y s t e mb a s e d o n v i r t u a lr e a l i t y a b s t r a c t i no u rc o u n t r y , t h e r ea r et r e m e n d o u st r a n s p o r t a t i o no nr a i l w a y h i s t o r yr e p e a to f r a i l w a ys y s t e mm o s t l yd e p e n d so nt h ed o c u m e n tb yh a n d w r i t i n go rt h ed a t af r o m d i s p a t c h e r ss u p e r v i s i o ns y s t e m b e c a u s eo fg r e a t e rd i s t a n c eb e t w e e nt h er e c o r d , l i m i t e df u n c t i o no ns e n s o r , s ot h eh i s t o r yr e p e a ts y s t e mc u r r e n ti sn o n - i n t u i t i o na n d i n a c c u r a t e s o ,r e s e a r c ha n de x p l o i t a t i o no nh i s t o r yr e p e a ts y s t e mb a s e do nv n t u a l r e a l i t yi ss i g n i f i c a t i v e u n d e rt h i sd e m a n dp r o m o t i o n , t h i sp a p e rd e s c r i b e st h er a i l w a ys y s t e mu s i n g3 d m a x ,f o u n dt h er e p e a ts y s t e mb yo p e n g la n dj u d g et h es h o w i n gi nl i m i t e d i n f o m m t i o n ,m a k e st h eh i s t o r yr e p e a ts y s t e mm o r ei n t u i t i o na n da c c u r a t e t h ef i r s tc h a p t e ro ft h i sp a p e rr e s e a r c h e st h ed e v e l o p m e n ta n da c t u a l i t yo ft h e h i s t o r yr e p e a ts y s t e m ,a n da n a l y z e st h ee x i s t e n ti s s u e s ;t h es e c o n dc h a p t e rm a i n l y i n t r o d u c e st h eo p e n g lp r o g r a mt e c h n i q u e ;t h et h i r dc h a p t e ri n t r o d u c e st h eg r a p h i c s f i l eo f3 d sm a x ;t h ef o u r t hc h a p t e rd e s c r i b e sh o wt ob u i l dh i s t o r yr e p e a ts y s t e mi n l i m i t e di n f o r m a t i o n , c o n c l u d e st h er u l eo fc o r r e s p o n d e n c ea n db u i l d st h eb i n a r y d e c i s i o nt r e e ;t h ef i 鼽c h a p t e rd e s c r i b e st h ep r o g r a m m eo f h i s t o r yr e p e a ts y s t e m k e yw o ld s :h i s t o r yr e p e a t :3 dm o d e l i n g :o p e n g l :e x p r e s s i o nm a t h e m a t i c a li n l i m i t e di n f o r m a t i o n :b i n a r yd e c i s i o nt r e e ; 图2 1 图2 2 图3 1 图4 1 图5 1 图5 2 图5 3 图5 4 插图目录 o p e n g l 在w i n d o w s 环境中的工作8 o p e n g l 绘制原理9 3 d s 文件块的层次1 4 时刻t ( i ) :当e ( i ) e ( i + 1 ) = 0 0 时的二叉判定树2 9 数据读取基本过程3 7 数据处理基本过程3 8 反走样原理4 0 物体平移4 1 表3 1 表3 2 表3 3 表3 4 表3 5 表3 6 表3 7 表3 8 表3 9 表3 1 0 表3 1 l 表5 1 表5 2 表5 3 表格目录 3 d s 文件块的结构1 3 编样器块( o x 3 d 3 d ) 的子块描迷表1 5 物体定义块( o x 4 0 0 0 ) 的子块信息1 6 三角形列表t j ( 0 x 4 1 0 0 ) 的子块信息 顶点列表块( 0 x 4 1 0 0 ) 信息。1 7 面列表块( 0 x 4 1 2 0 ) 信息1 7 点光源块信息1 8 相机块信息1 9 r g b 颜色块1 9 2 4 位颜色块1 9 关键帧块信息2 0 o p e n g l 绘图环境中消息处理函数3 4 g l l i g h t 0 i 累i 数光源特性参数3 9 函数g l h i n t 0 参数及其意义4 0 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所 知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得盒目l 工些太堂 或其他教育t t l 构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说h i i 并表示谢意。 学位论文作者签字:讴f 匆平签字日期:一7 年占月,7 日 学位论文版权使用授权书 本学位论文作者完全了解盒胆些盍堂有关保留、使用学位论文的规定,有权保留并向 国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。本人授权盒a b 王些友 ! 色一可以将学位论文的全部或部分论文内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存、汇编学位论文 ( 保密的学位论文在解密后适用本授权书) n 学位论文者签名: 花团年 导师签名 签字日期:1 年月1 7b 签字日期 学位论文作者毕业后去向: 工作单位; 通讯地址: 电话: 邮编: 致谢 本文是在导师魏臻教授的严格要求和悉心指导下完成的。在三年的研究生学 习期间,魏老师对我的学习和生活均关心备至,倾注了大量的心血,使我在各方 面均有长足的进步。魏老师活跃的学术思想,渊博的知识,坚韧的毅力,忘我的 工作态度,超凡的管理才能,对事物敏锐的观察力都令我钦佩不已,给我留下了 深刻的印象。魏老师对我的鼓励和帮助,将使我终生受益。值此论文完成之际, 谨向导师致以衷心的感谢。 感谢我的同学汪憾铭,张华,他们在生活和学习上都给了我很大的帮助与鼓 励。同时还要感谢其他老师和同学在我攻读硕士学位期间给予我无私的帮助和友 情。还要特别感谢合肥工大高科的鲍红杰老师和程磊老师,他们在我学习和项目 研发上给予了莫大的帮助和指导。 同时,我要感谢父母和其他家人对我的支持和关爱,是他们在背后默默的支 持使我能顺利的完成三年的研究生学业。 最后,真诚地感谢有关专家和学者对本文的评阅和指导。 作者:范国华 2 0 0 7 年5 月2 8 日 第一章绪论 1 1 本文的研究背景及目的 在我国,多年以来铁路都是一种极为重要的交通模式,全国的6 0 的货物 运输和4 0 以上的旅客运输都依赖铁路完成。铁路是国民经济的大动脉,大幅 度提高运输能力是铁路发展的首要任务,目前我国铁路正向着重载、高速、高 密度的方向发展。这不仅对整个铁路交通系统的车务、机务、电务、工务等各 个组成部分提出了新的要求,而且必须采用新技术,新策略才能确保铁路系统 的可靠安全。 铁路的历史重演系统对于分析铁路运行安全状况以及事故发生原因有着重 要的作用。在大多数国家中,铁路系统分为国家正线铁路和企业自备铁路两个 部分,国家正线铁路面向跨地区的旅客、货物运输,常常是一个国家的重要经 济命脉;企业自备铁路作为正线铁路的延伸,由非铁路企业自身建设与管理, 主要任务是在企业内部承担原材料、产成品的进出以及半成品的内部运输,是 企业生产的重要基础设施。随着世界各国经济与技术的发展,交通运输已经成 为经济生活的重要方面,大多数铁路系统的火车运行的位置的历史重演是依靠 手工记录的文档或者调度监督系统的回馈数据来完成的,由于记录点自j 距离较 大,传感器本身的功能限制,所以目前的铁路系统的历史重演系统依旧是非常 不直观和不准确的,研究三维的历史重演系统是非常有意义的。 基于虚拟现实的历史重演系统就是对旧式的重演系统的改进,实现由计算 机根据铁路的信号电路等数据自动生成三维演示场景,以提高演示系统的直观 性和准确性。 1 2 国内外研究概况 目前,在铁路运输系统中的研究一般都集中于调度监督系统以及车站联锁 系统等几个方面 1 】,而历史重演系统一般做为调度监督系统下的一个子系统, 各种历史重演系统的编制虽然各有特色,但实现方法基本都是利用传感器收集 轨道电路,道岔以及各种信号机的信号,然后利用调度监督系统本身的监督功 能进行回放,一般回放有时间限制,历史重演的时间受历史数据在线存储时间 的影响。 目前,绝大多数铁路调度监督系统都具备一定的历史重演功能,但性能一 般都受历史数据在线存储时间的影响。例如北京和利时系统工程公司的 h o l l i a sd s s 铁路调度监督系统,历史数据在线存储时间3 天,因此可以进行 3 天左右的历史重演,合肥工大高科的h j 0 6 a 铁路运输调度监督系统,提供至 少1 5 天的历史数据信息,因此可以进行1 5 天天左右的历史重演。 基于虚拟现实的历史重演系统目前在国内还没有类似的研究。 1 3 研究难点和本文的解决思路 1 3 1 研究难点 基于虚拟现实的历史重演系统的研究与开发主要要解决2 个问题【4 】:用什 么建立虚拟现实的三维演示系统以及历史重演系统如何在信息不足的情况下判 断铁路上发生的情况。从上面的叙述可以看出,目前的历史重演系统一般邦是 调度监督系统的一个子功能,尚未有完整的三维重演系统,因此寻找一种合适 的建立虚拟现实的三维演示系统的方法是十分有意义的。 由于铁路上所使用的传感器功能的限制,监督系统所能收集到的信息是十 分有限的,因此历史重演系统如何在信息有限的条件下做出判断也是难点问题。 1 3 2 本文解决问题的思路 针对上述在基于虚拟现实的历史重演系统的研究与开发中存在的难点,本 文提出了如下的解决思路: 1 ) 在经过深入的分析后,选择利用o p e n g l 建立演示系统 2 ) 针对o p e n g l 建模过于复杂而渲染极其强大的特点,选择3 dm a x 对铁 路系统进行建模,而利用o p e n g l 进行渲染和建立三维演示系统。 3 ) 针对o p e n g l 中没有外部建模工具交互的相关函数,分析了3 dm a x 的 图形文件格式3 d s ,并提出了在o p e n g l 中调用3 d s 文件的方法。 4 ) 在传感器传递的信息有限的条件下,建立历史重演系统显示的数学模 型,归纳出其对应规则以及相应的二叉判定树。 1 4 本章小结 本章首先介绍了基于虚拟现实的历史重演系统的研究意义,然后分析了国 内外理论与应用的研究状况,并提出了基于虚拟现实的历史重演系统的研究与 开发中的难点,最后提出本文的解决思路。 2 第二章虚拟现实系统的开发 2 1 计算机图形学基本知识 计算机图形学( c o m p u t e r gr a p h i c s ) 是研究怎样用数字计算机生成,处理和显 示图形的一门学科。图形的具体应用范围很广,但是从基本的处理技术看只有 两类,一类是线条,如工程图、地图、曲线图表等;另一类是明暗图。与之相对 应,图形学的应用也主要体现在工程制图和真实感再现两大领域。 计算机图形学的研究起源于5 0 年代初,但只是在近十几年,随着计算机硬 件特别是图形显示设备的发展而迅猛地成熟起来。在计算机中,由于图形所包 含的信息大,直观方便,更符合人们观察了解事物运动规律的习惯,因而计算 机图形学目前在工业、商业、军事、教育和影视娱乐等各个领域得到了广泛应 用,已成为计算机科学中发展最快、影响最大的学科之一,并在应用中日益显 示出其重要性和不可替代性【2 】。 2 1 1 计算机图形标准 由于计算机图形学和软件技术的发展,对图形系统之间的数据交换和接口 提出了越来越高的要求,图形软件系统功能的标准化问题被提了出来。1 4 7 4 年, 美国国家标准化局( a n s i ) 在a c ms i g g r a p h 的一个”与机器无关的图形技 术”的工作会议l ,提出了制定有关标准的基本规则。此后a c m 专门成立了 一个图形标准化委员会,开始制定有关标准。该委员会于1 9 7 7 1 9 7 9 年先后制 定和修改了图形标准”核心图形系统( c o r eg r a p h i c ss y s t e m ) i s o 随后又发布 了计算机图形接f i 标准c o i ( c o m p u t e rg r a p h i c si n t e r f a c e ) 、计算机图形元文件标 准c g m ( c o m p u t e rg r a p h i c sm e t a f i l e ) 、计算机图形核心系统g k s ( g r a p h i e sk e r n e l s y s t e m ) ,面向程序员的层次交互图形标准p h i g s ( p r o g r a m m e r sh i e r a r c h i c a l i n t e r a c t i v eg r a p h i c ss t a n d a r d ) 等。1 9 8 3 年,美国国家标准局又发布了初始图形交 换规范i g e s ( i n i t i a lg r a p h i c se x c h a n g es p e c i f i c a t i o n ) 。这些标准的制定,使图形 应用系统与计算机硬件无关,提高了程序的可移植性,为计算机图形学的推广、 应用、资源信息共享,起到了极其重要的作用。 所有的图形标准都具有一条共同的原则:与计算机硬件无关,实现程序的可 移植性。它们基本上都具有如下功能: ( 1 ) 控制功能:执行打开、并闭等: ( 2 ) 输出功能:确定输出图形类型; ( 3 ) 输出属性:实现图素的各种属性以及各种图素的表现方式; ( 4 ) 变换功能:实现规格化变换和工作站变换; ( 5 ) 图段功能:对图形进行生成、删除、复制以及实现图段属性控制; ( 6 ) 输入功能:对各种输入设备初始化,设置工作方式、确定请求、采样和 3 事件输入嘲。 2 1 2 计算机三维图形标准 进入二十世纪九十年代,人们开始告别二维平面绘图时代,三维立体绘图 逐渐成为图学应用的主流。与此同时,三维图形标准也应运而生,经过时间的 磨练,在众多的三维绘图标准之中,只有o p e n g l 和d i r e c t x 脱颖而出,成为两 大三维图形应用程序接t ( a p i ) 标准。 1 o p e n g l o p e n g l 的前身是s g i 公司为其图形工作站开发的i r i s g l 。i r i s g l 是一个 工业标准的3 d 图形软件接口,英文全称是“o p e ng r a p h i c sl i b r a r y ”即“开放 的图形程序接口”。o p e n g l l 0 于1 9 9 2 年7 月由s g i 公司发布,从而使一些原 来必须在高档图形工作站上运行的大型3 d 图形处理软件,也可在微机上运行。 由于o p e n g l 一开始就被设计成独立于硬件和操作系统的3 da p i ,所以o p e n g l 不受制于操作系统的种类,可以运行在不同操作系统的各种计算机上,并能在 网络环境下以客户服务器模式工作。而且,o p e n g l 在三维图形变换方面有着 得天独厚的优势,这样,它自然而然地成了专业图形处理、科学计算等高端应 用领域的标准图形a p i ,现今广为流行的三维工程绘图软件大都以它为支持,如 a u t oc a d ,p r o e ,u g ,s o l i d e d g e 等。由于这些软件的成功,赋予了o p e n g l 更强 的生命力。不仅如此,在3 d 游戏和多媒体的开发上,它也有不俗的表现。它的 第一个版本主要是作为3 dm a x 的a p i 而开发,所以它与3 dm a x 软件有着良 好的融合性1 5 1 。 2 d i r e c t x d i r e c t x 又称d i r e c t 3 d ,出现的较晚,它是随着w i n d o w s 操作系统的推广 使用而产生的。起初,d i r e o x 的魅力一直没有得到表现,但因为它是微软的产 品,有雄厚的实力作支持,并且,它避开o p e n g l 优势,将目标锁定在3 d 游戏 和多媒体的开发上,经过短短几年的发展,到2 0 0 2 年底d i r e c t x9 0 问世时, d i r e c t x 在3 d 游戏和多媒体的开发上己是后来居上,超过了o p e n g l 。但在专业 图形处理特别是高端应用方面目前还没有出现以d i r e c t x 技术为基础的例子。 2 1 3 基于o p e n g l 的三维软件及常用的三维图形格式 1 c a d 软件: u g ,p r o e ,s o l i d w o r k s 、s o l i d e d g e 号称全球四大c a d 造型软件,这些优秀 的软件都采用了o p e n g l 接口技术,主要应用在航空航天、汽车、通用机械、 模具、家电等领域。这些软件的造型功能也都很强,大都支持这样一些流行的 文件格式,如 i g e s ( * i g s ) d w g ( + d w g ) ,c a t i a ( * m o d e l ) 等。 2 多媒体软件: 4 3 ds t u d i o 具有功能强大,操作简便的使用特点,得到了人们的普遍喜爱, 网络上随时都可以看到它的身影,m a x ( * m a x ) , 3 d s ( * 3 d s ) 等较为常用的文件更 是数不胜数,被广泛应用于多媒体和3 d 游戏开发中。 2 2 开发平台及编程语言的选择 本系统定在w i n d o w s x p 平台上进行开发。目前我国将近9 0 的电脑都采用 w i n d o w s 操作系统,而x p 则是目前最流行的w i n d o w s 操作系统,所以在 w i n d o w s 平台上开发,将使系统具有广阔的应用范围。 在开始进行软件平台设计时,对于选择何种计算机语言,也作了多方面的 考察。如今,w i n d o w s 己经成为微机的主流操作系统,因此必须编写相应的 w i n d o w s 应用程序,才能充分利用各种图形界面及网络资源。 在w i n d o w s 操作系统刚出现时,主要开发工具为c 语言,如微软公司的 m i c r o s o f tv i s u a lc + + 及b o r l a n dc + + 等开发工具,这些开发工具对编程人员的要 求很高,因此学起来非常困难,使程序开发效率大大降低。后来微软公司开发 出v i s u a lb a s i c ,为许多开发w i n d o w s 应用程序的人带来了福音。v i s u a lb a s i c 的可视化程度较高,经过短暂的学习就可上手使用。用v i s u a lb a s i c 开发出来的 应用程序让一个熟练的c + + 程序员得花长时间得功夫才能达到。这样使v i s u a l b a s i c 风靡一时。但不可否认,v i s u a lb a s i c 也有缺点,因为b a s i c 本身就是一种 解释性语言因此用v b 开发出来得应用程序运行效率低,执行速度慢,并且运 行时需带有v b 运行动态库。b o r l a n d 公司及时推出d e l p h i 开发工具,使应用程 序开发焕然一新,d e l p h i 使用面向对象的p a s c a l 语言,b o d a n d 公司为d e l p h i 开发出世界上最快的编译器,使编译速度和程序运行速度都有很大的提高。后 来又推出与d e l p h i 极为相似的基于c + + 语言的c + + b u i l d e r 。因此,现在开发 w i n d o w s 应用程序的工具很多,它们都各有特点,很难说孰优孰劣。 v i s u a l c + + 的优点在于它开发出来应用程序的运行效率很高,运行速度快, 并且可执行文件相对较小,特别适合高级程序员追求速度。它充分利用了面向 对象技术,程序具有很大的可重用性,非常便于他人的继承开发。另外,微机 环境下o p e n g l 图形库基本上是s g i 与微软公司共同制定的,微软公司在v i s u a l c + “0 以上版本集成了o p e n g l 库函数。而且目前能找到的关于o p e n g l 介绍 的书籍大部分以v i s u a l c + + 作为开发工具的。基于这些,本课题在开发中选择了 v i s u a lc + + 作为开发工具。 2 2 1 o p e n g l 简介 简要介绍了o p e n g l 的概念、发展及其组成。在论述了o p e n o l 的功能和 工作结构的基础上,阐明了o p e n g l 的绘制原理及其在w i n d o w s 中的实现方法 和步骤。 2 2 2 o p e n g l 概述 八十年代末九十年代初三维图形技术得到了迅猛地发展,各种三维图形工 具软件包相继推出,如g l ,r e n d e r m a n 等,这些三维软件包有些侧重于使用方 便,有些侧重于绘制效果或与应用软件的连接,但没有一种三维工具软件包在 交互式图形建模能力和编程方便程度上能够与o p e n g l ( 开放性图形库 o p e n g r a p h i c sl i b r a r y ) 相比拟。【2 l 】 o p e n g l 是由硅谷图形公司( s o i ) 的i r i sg l 发展而来的。最初i r i sg l 被设 计者用来作为s g i 工作站的图形引擎,后来根据用户希望将i r i sg l 移植到开 发系统的愿望,s g i 公司决定扩展工r j sg l 的功能,以便使其能够更加容易地 移植到不同的硬件和操纵系统。1 9 9 2 年s g i 推出了o p e n g l ,它是一套独立于 操纵系统和硬件环境的三维图形库,有着强大的图形功能和良好的跨平台移植 能力,是进行三维图形编程、实现科学数据可视化、实体仿真、国际互联网和 企业内部网的3 dw e b 可视化、三维动画乃至虚拟现实场景的重要工具,在c a d ,c a m ,tn t e m e t ,广告,艺术,商业等诸多领域有者广泛的应用。尤其是当 m i r o s o f l 把o p e n g l 集成到w i n d o w s9 x n t 中,给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 可以在网络上工作,即客户机服务器型,显示图形的计算机( 客 户机) 可以不是运行图形程序的计算机( 服务器) ,客户机与服务器可以是不同类 型的计算机,只要两者服从相同的协议。 ( 2 ) o p e n g l 是与硬件无关的软件接口,可以在多种硬件平台上运行,使得 o p e n g l 的应用程序有较好的移植性。 ( 3 ) 用户可以方便地利用o p e n g l 图形库,创建出接近光线跟踪的高质量静 止或动画的三维彩色图像,并且由于采用了双缓存技术,其速度要比光线跟踪 算法快一个数量级。 由于m i c r o s o f t 公司在w i n d o w $ b i t 和最新的w i n d o w $ 系统中提供了o p e n g l 图形标准,o p e n g l 己经在微机中广泛应用,尤其是o p e n g l 三维图形加速卡和 微机图形工作站的推出,人们可以在微机上实现c a d 设计,仿真模拟,三维游 戏等,从而为广大用户提供了在微机上使用以前只能在高性能图形工作站上运 行的各种软件的机会。 目前,包括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 为基础开发出自己的产品,其中比较著名的产品包括动画制作软件s o f t i m a g e 和3 ds t u d i om a x 、仿真软件o p e ni n v e n t o r , v r 软件w o r l dt o o lk i t , c a m 软件p r o e n g i n e e r , g i s 软件a r c i n f o 等等。因此,o p e n g l 目前己经成为了三 维图形制作方法中事实上的工业标准。 6 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 个。这些函数是比核心 函数具有更高级功能的函数,如绘制复杂曲面、多边形分割、坐标变换和错误 处理等。 ( 3 ) o p e n g l 辅助函数库( g l a u x ) :前缀为“a u x ”,包括有3 1 个辅助函数。它 们是一类特殊的o p e n g l 函数,其功能为窗口管理、事件处理和绘制复杂三维 物体等。 ( 4 ) g r m d o w s 专用函数库( w g l ) :包括6 个前缀为 w g l ”的函数,用来管理显 示列表,字体位图,绘图描述表等。 ( 5 ) w m 3 2a p 工函数:共有5 个没有专用前缀的w i n 3 2 a p l 函数,用于处理像 素格式及缓冲。 2 2 3 o p e n g l 的功能 o p e n g l 能够生成真彩的三维场景,从绘制任何简单的3 d 物体到交互的动 态场景,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 ) 坐标变换:顶点、法线和纹理坐标必须经过坐标变换才能生成图像。 o p e n g l 的变换包括取景变换,模型变换、投影变换和视区变换。 ( 3 ) 颜色模式设置:o p e n g l 用专门的函数和结构来指定颜色模式。即e n g l 有两种可选模式:r g b a 模式和颜色索引模式。对于两种颜色模式,o p e n g l 还 可以选择平面着色处理和平滑着色处理。 ( 4 ) 光照和材质设置:用o p e n g l 绘制的物体可以加上灯光,这使得绘制的物 体跟真实世界的物体极为相似。o p e n g l 可设置四种光,即辐射光、环境光、镜 面光和漫反射光。可以指定光的颜色、光源位置等相关参数。物体被光照成类 似现实物体还与物体本身的材质有关。o p e n g l 可以对物体的材质进行定义, 材质用模型表面的反射特性表示。 ( 5 ) 图像效果:o p e n g l 不仅提供了进行底层像素拷贝和读写操作的函数,还 提供了反走样、融合和雾化等增强图像效果。 ( 6 ) 管理位图和图像:o p e n g l 可以管理两种类型的位图图像,其一是单色的 位图,主要用于正确地生成字符等简单的图像;其二是真彩位图,它们可以按各 7 种方式在屏幕和内存间进行传递。 ( 7 ) 纹理映射:通过众多的彩色多边形创建的物体往往因为其表现细节不够而 显得不够真实。o p e n g l 的纹理映射( t e x t u r em a p p i n g ,以点映射来包裹一个物体) 功能可以十分逼真地再现物体表面的细节。 ( 8 ) 实时动画:利用o p e n g l 的双缓存( d o u b l eb u f f e r ) 技术可以获得平滑逼真 的动画效果。 ( 9 ) 交互技术:o p e n g l 提供了方便的三维图形交互接口,可以进行人机交互 操作。o p e n g l 提供三种工作模式:绘图模式、选择模式和反馈模式。 2 2 4 o p e n g l 的工作结构 o n e n g l 指令的解释模型是客户$ 1 务器模式,即,客户( 试图用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 6 1 o p e n g l 的库函数被封装在o p e n g l 3 2 d l l 动态链接库中。从客户应用程序发 布的对o p e n g l 函数的调用首先被o p e n 9 1 3 2 d l l 处理,在传给服务器后,被 w i n n s r v d l l 进一步进行处理,然后传递给d d l ( d e v i c ed r i v e ri n t e r f a c e ) 最后传递 给视频显示驱动程序。图2 1 显示了整个处理过程。 l 懒d 3 2 d d i l 视频驱动程序 图2 1o l m n g l 在w i n d o w s 环境中的工作 2 2 5 o p e n g l 的绘制原理 作为图形硬件的软件接口,o p e n g l 最主要的工作就是将二维及三维物体描 绘至帧缓存。这些物体由一系列的描绘物体儿何性质的顶点( v e r t e x ) 或描述图像 8 的像素( p i x e d 组成。o p e n g l 执行一系列的操作把这些数据最终转化成像素数据 并在帧缓存中形成最后的结果。以下是关于o p e n g l 绘图工作的一些概要性介 绍: ( 1 ) 图元操作与指令 o p e n g l 能够从多种可选择的模式画图元( p r i m i t i v e ) ,而且一种模式的设置 一般不会影响其他模式的设置。无论发生什么情况,指令总是被顺序处理的, 也就是说,一个图元必须完全画完之后,后继图元才能影响帧缓存。 图元由一组顶点定义。该组顶点既可以只包含一个顶点,也可以包含多个 顶点。顶点的说明由位置坐标、颜色值、法向量和纹理坐标组成。每个顶点可 以被顺序或以相同的方式独立地处理。每个顶点根据其为二维或三维顶点可以 分别使用2 个坐标、3 个坐标或4 个坐标( 齐次坐标) 。此外,当前法线、当前纹 理坐标以及当前颜色值可以在处理每个顶点的过程中被使用或改变。当前法线 是一个三维向量,被用于光照计算。纹理坐标决定如何把纹理图像映射到图元。 颜色与每个顶点有关,相关的颜色或者是当前颜色或者是由光照产生的颜色, 这取决于是否允许光照。类似地,纹理坐标也与每个顶点有关。 ( 2 ) 图形控制 o p e n g l 提供诸如变换矩阵、光照、反走样方法、像素操作等参数来控制二 维和三维图形的绘制。然而,它并不提供一个描述或建立复杂几何物体的手段。 o p e n g l 提供的是怎样画复杂物体的机制而非描述复杂物体本身的面面俱到的 工具【1 2 】。 ( 3 ) o p e n g l 指令解释模型 o p e n g l 的指令解释模型是客户,服务器模式。 ( 4 ) o p e n g l 的基本燥作 o p c n g l 可以在具有不同图形能力和性能的图形工作站平台及微机上运行。 图2 2 给出了o p e n g l 的绘制原理图。 图2 , 2o p e n g l 绘制原理 用户指令从左侧进入o p e n g l 。指令分为两部分。一部分画指定的几何物体, 另一部分则指示在不同的阶段怎样处理几何物体。许多指令很可能被排列在显 9 示列表( d i s p l a yl i s t ) 中,在后续时间里对其进行处理。通过评价器r ( e v a l u a t o r ) 计算 输入值的多项式函数来为近似曲线和曲面提供有效手段,然后由顶点描述的几 何图元进行操作。在此阶段,对顶点进行转换、光照,并把图元剪切到观察体 ( f r u s t u r a ) 中,为下一步光栅化( r a s t e r i z a t i o n ) 做准备。光栅化产生一系列图像的帧 缓存地址和图元的二维描述值,其生成结果称为基片( f r a g m e n t ) ,每个基片适合 于在最后改变帧缓存之前对单个的基片进行操作。这些操作包括根据先前储存 的深度值进行有条件地更新帧缓存,进行各种测试,融合即将处理的基片颜色 与已经储存的颜色,进行屏蔽,以及对基片进行逻辑操作和淡化( d i t h e r i n g ) 等。 图像像素数据的处理包括像素、位图、影像等,它们经过像素操作之后直 接进入光栅化阶段。o p e n g l 显示列表实际上是一组函数,它们被存储以使 o p e n g l 在后继时间内能够处理。o p e n g l 评价器也是许多特殊的函数。这些函 数允许采用一个或两个变量的多项式映射来产生顶点坐标、法线坐标、纹理坐 标以及颜色,生成结果传递给执行管道( p i p e l i n e ) 。评价器接口提供在o p e n g l 之上建立更一般的曲线和曲面包的基础。光栅化包括几何和物理映射两部分, 几何操作是将图元转化成二维图像,物理操作是计算图像每个点的颜色和深度 等信息。计算的结果将被传递到o p e n g l 的下一过程,并用此信息更新帧缓存 中的适当单元。 2 2 6 o p e n g l 在w i n d o w s 中的实现 o p e n g l 被设计为独立于硬件设备、窗口系统和操作系统的一个软件编程接 口。当调用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 的各种绘图命令与一个设备环 境相联系此外,还需要将o p e n g l 的绘图方法转换为设备环境所能理解的方式。 这正是微软公司在w i n d o w s 中移植o p e n g l 时所做的工作。在w i n d o w s 中建立 一个“翻译描述表”( r e n d e r i n gc o n t e x t ) ,用来处理o p e n g l 函数与设备环境之间 的关系,所有o p e n g l 命令都通过它而起作用。这样一来,对每个设备环境都 要建立一个以之相关的“翻译描述表”,w i n d o w s n t 还提供了五个函数来管理“翻 译描述表”。 此外,o p e n g l 输出像素的格式丰富多彩,与设备环境的固有像素格式并不 相同,这就要求我们在创建与设备环境相关的“翻译描述表”之前使两者的像素格 式取得统一。w i n d o w s 为此提供了一个称为“像素描述表”口i x f o r m a t d e s c r i p t o r ) 的数据结构,让我们事先对想使用的像素格式进行描述。然后通过 o p e n g l w i r d 2 扩展函数c h o o s e p i x e l f o r m a t o 在设备环境中找出一个与所描述的 像素格式匹配褥最好的像素格式,并通过s e t p i x e l f o r m a t o 将它设置为指定设备 环境中的当前格式。 1 0 总而言之,在w i n d o w s 中运用o p e n g l 进行主要的图形操作以及最终在计 算机屏幕上绘制出三维场景的基本步骤是【1 4 】: 第一,设置设备环境的像素格式,像素格式告诉o p e n g l 绘制风格,颜色 模式、颜色位数、深度位数等重要信息。 第二,建立“翻译描述表”,并选定设备环境的当前“翻译描述表”。 第三,建立模型。根据基本图元建立三维模型,并对模型进行数学描述。 第四,舞台布置。把景物放置在三维空间的适当位置,设置三维透视视觉 体以观察场景。 第五,效果处理。设置物体的材质( 颜色、光学性能及纹理映射方式等) ,加 入光照和光照条件。 第六,光栅化。把景物及其颜色信息转化为可在计算机屏幕上显示的像素 格式。 第七,屏幕显示。在屏幕上显示三维模型。 2 3 本章小结 本章首先介绍了计算机图形学的基本知识,然后对系统所使用的开发平台 及编程语言的选择进行了介绍,接着介绍建立系统所用的o p e n g l ,包括其功能, 工作结构,绘制原理以及在w i n d o w s 中的实现。 第三章3 d sm a x 的图形文件的调用 通过前面阐述,我们可以清晰地看到,o p c 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 c n g l 不提供对其他建模工具或3 d sm a x 软件生 成的数据文件的支持。这样一来,对于复杂的图形应用程序,尤其是可视化仿 真及演示系统等应用,程序员就不得不花费大量的时间逐条语句地完成建模工 作。 利用3 d sm a x 生成复杂物体的模型是非常方便的,这些文件可以按照3 d s 格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机关幼儿园岗位能力倾向测试试题集
- 2025年老年评估师考试题及答案
- 施工现场扬尘专项防治方案(管理制度、预案)
- 贺州银行面试题及答案
- 幼儿园消防安全工作总结汇报6篇
- 2025年财务会计中级职称考试指南与模拟题集
- 安徽省合肥市七中、合肥十中联考2026届高三上化学期中教学质量检测试题含解析
- 2025年环保领域从业者的必-备环保工程师招聘笔试全解
- 2025年《教育法律法规》知识竞赛试题库及答案(共50题)
- 2025年互联网科技公司面试预测试题库及答案详解
- DB3302T 1079-2018 管线探测技术规程
- 大唐集团公司工作票、操作票使用和管理标准(版)
- 医学皮肤部年度业务报告课件
- 湖南省长沙市四大名校小升初数学真题
- 21年一消防工程师继续教育题
- 中国政治思想史完整版课件
- 太阳能热水系统问题与解决方案
- (完整版)物理化学上教案
- D型便梁工法(二)
- 氟化物与牙健康
- 疑难路段处理能力及室项目分析
评论
0/150
提交评论