




已阅读5页,还剩60页未读, 继续免费阅读
(计算机应用技术专业论文)基于java+3d的激光器虚拟实验的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 三维虚拟现实技术是多学科的交叉研究领域,是当前最热门的研究方向之 一,正以其直观性、交互性等优良特性被广泛应用于建模与仿真、教育与训练、 医学等诸多方面,在科技发展和国民经济建设中发挥着不可替代的作用。 量子点光子晶体光纤激光器实验是光学领域中研究新技术光纤的重要实验 之,因为实验设备和新型光纤的价格十分昂贵,所以在理论教学和理论研究 过程中,关于此类实验都是通过文字或平面符号图形进行表现和说明的,这就 使观察者在实验的理解和把握上具有一定的局限性。针对这个问题,本文提出 了利用s u n 公司推出的j a v a3 d 技术动态模拟量子点光子晶体光纤激光器实验 的演示。 论文首先论述了j a v a3 d 的基本理论、场景图的数据结构、类的基本结构、 j a v a3 d 基本形体的生成和视模型等内容。而后,针对具体实验场景的建立,提 出了如何利用j a v a3 d 通过场景结构的搭建和坐标变换,来实现三维形体的生 成和对场景的动态控制的方法。本文着重论述了如何实现量子点光子晶体光纤 激光器实验场景中各个形体的动态变化,如何利用鼠标和键盘与虚拟环境进行 实时交互,进而达到控制实验的目的。最后,文章在分析了传统l o d 算法的基 础上,结合本设计提出了优化l o d 算法的思路,即通过建立共享模型来解决多 级l o d 模型中存在大量冗余数据的问题。改进后的l o d 算法比传统算法在数据 量上有相当程度的缩减,更加适用于网络应用中传输数据的带宽需求。 论文通过对j a v a3 d 技术的研究,提出了应用该技术对量子点光子晶体光 纤激光器实验场景的模拟演示和动态控制的实现方法,并且通过设计制作实现 了这一设想,这就为虚拟现实技术在光学实验模拟演示领域的应用开辟了一种 全新的实验方法和途径。 关键词:虚拟现实j a v a3 d交互控制l o d a b s t r a c t a b s t r a c t t h r e e d i m e n s i o nv i r t u a l r e a l i t yt e c h n o l o g yi s ar e s e a r c h i n gf i e l d c o v e r i n g s e v e r a ls u b j e c t s a so n eo ft h em o s tf a m o u sr e s e a r c hs p o t s ,i ti sw i d e l ya p p l i e dt o m a n yf i e l d ss u c ha sm o d e l i n ga n de m u l a t i n g ,e d u c a t i n ga n dt r a i n i n g ,m e d i c a ls c i e n c e a n ds oo n i t sf u n c t i o ni si r r e p l a c e a b l ea f f e c t i n gs c i e n c ea n dt e c h n o l o g yd e v e l o p m e n t a n dn a t i o n a le c o n o m yc o n s t r u c t i o n t h ee x p e r i m e n to fq u a n t u md o t sp h o t o n i cc r y s t a lf i b e rl a c e ri so n eo ft h em o s t i m p o r t a n to n e sa b o u tt h er e s e a r c ho fn e wt e c h n i q u eo p t i c a lf i b e ri nt h ef i e l do fo p t i c s s u c he x p e r i m e n t ss h o wa n de x p l a i ns o m e t h i n gt h r o u g hw o r d st o g e t h e rw i t hp l a n e s y m b o li nt h et e a c h i n ga n ds t u d yf o rt h er e a s o nt h a tt h ee q u i p m e n t sa n dn e wt y p e o p t i c a lf i b e ra r eh i g h l yp r i c e d t h u st h eo b s e r v e r su n d e r s t a n da n dm a n a g et h e e x p e r i m e n tw i t hu n a v o i d a b l el i m i t a t i o n s t os o l v et h ep r o b l e m ,t h ew r i t e rs u g g e s t s d y n a m i cs i m u l a t i o na n dd e m o n s t r a t ee x p e r i m e n to fq u a n t u md o t sp h o t o n i cc r y s t a l f i b e rl a c e rw i t ht h et e c h n o l o g yo fj a v a3 d s u p p l i e db ys u n f i r s to fa l l ,t h i st h e s i se x p o u n d e ds o m e t h i n gl i k ef u n d a m e n t a lt h e o r yo fj a v a3 d , d a t as t r u c t u r eo fs c e n eg r a p h ,b a s i cs t r u c t u r eo fc l a s s ,t h eg e o m e t r i cm o d e l i n ga n d v i e wm o d e lb a s e do nj a v a3 d t h e n ,i nc o n n e c t i o nw i t ht h ee s t a b l i s h m e n to fs p e c i f i c s c e n eo f e x p e r i m e n t ,t h et h e s i sp r o p o s e dh o w t oa c h i e v et h ef o r mo f3 d p h y s i q u ea n d d y n a m i cc o n t r o lo fs c e n et h r o u g he s t a b l i s h i n gs c e n es t r u c t u r ea n dc o o r d i n a t e t r a n s f o r m a t i o nw i t hj a v a3 d i na d d i t i o n ,t h et h e s i ss t r e s s e dh o wt oa c h i e v ed y n a m i c c h a n g e so fe v e r yp h y s i q u ei nt h ee x p e r i m e n to fq u a n t u md o t sp h o t o n i cc r y s t a lf i b e r l a c e ra sw e l la st h ew a y so fr e a l - t i m ei n t e r a c t i o n 、 ,i t hv i r t u a lr e a l i t yb ym o u s ea n d k e y b o a r df o rt h ea i mo fc o n t r o l l i n gt h ew h o l ee x p e r i m e n t f i n a l l y , b a s e do nt h e a n a l y s i so fc o n v e n t i o n a ll o da l g o r i t h m ,t h i sd e s i g ng a v eu sa no p t i m i z a t i o nl o d a l g o r i t h m t h a ti st op r o c e s sr e d u n d a n td a t ae x i s t i n gi nm u l t il e v e ll o dm o d e l t h r o u g hs h a r e dm o d e l t h ei m p r o v e dl o da l g o r i t h mw h i c hh a sm u c hl e s sd a t at h a n b e f o r ei sm o r ea p p l i c a b l et ob a n d w i d t hd e m a n do ft r a n s p o r td a t ai nt h ea p p l i c a t i o no f n e t w o r k i i a b s t r a c t t h r o u g ht h er e s e a r c ho fj a v a3 d ,t h et h e s i sp r o p o s e dt h es i m u l a t i o na n d d e m o n s t r a t i o no fe x p e r i m e n ts c e n ea sw e l la st h em e t h o do fa c h i e v i n gd y n a m i c c o n t r o lf o rq u a n t u md o t sp h o t o n i ec r y s t a lf i b e rl a c e nf u r t h e r m o r e ,t h ei d e ah a sb e e n m a t e r i a l i z e dt h r o u g hd e s i g na n do p e r a t i o n a n di t p u t sf o r w a r dn e wm e t h o d so f e x p e r i m e n tt ou s et h ev i r t u a lr e a l i t yt e c h n o l o g yi n t h ef i e l do fs i m u l a t i o na n d d e m o n s t r a t i o ni no p t i c se x p e r i m e n t s k e yw o r d s :v i r t u a lr e a l i t y j a v a3 d d y n a m i cc o n t r o l l o d i i i 南开大学学位论文版权使用授权书 本人完全了解南开大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名 蛾辱s 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 解密时间:年月 日 各密级的最长保密年限及书写格式规定如下: 十一i 。 j j 。j j 。w 一。”。一。? 。 内部5 年( 最长5 年,可少于5 年) l 秘密l o 年( 最长1 0 年,可少于1 0 年) ;机密2 0 年( 最长2 0 年,可少于2 0 年) | ,?。? 。一j 。,;,? 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行研究工作 所取得的成果。除文中已经注明引用的内容外,本学位论文的研究成果不包含 任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉 及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学 位论文原创性声明的法律责任由本人承担。 学位论文作者躲妊 埘年j 月e t 第1 章绪论 1 1 研究背景 第1 章绪论 随着社会的发展和科学技术水平的提高,二维空间平面效果的单一性,已 无法满足某些行业的实际应用需求。二维空间的表达方式存在着自身难以克服 的局限性,不能给观察者以立体的本原感受。科学技术的发展,带动了三维空 间的广泛应用。虚拟现实( v i r t u a lr e a l i t y ,缩写为“v r ) ,就是一种可以创 建和体验三维虚拟世界的计算机系统。它是人工智能、计算机图形学、人机接 口技术、多媒体技术、网络技术、并行计算技术等多种技术的集成【1 】,用以生成 一个人为虚拟的环境。这种虚拟的环境是通过计算机图形构成的三度空间,或 是把其他现实环境编制到计算机中去产生逼真的“虚拟环境”,用户通过使用 多种交互设备,如:鼠标、键盘、数据手套等,同虚拟环境中的实体相互作用, 使之产生身临其境感觉的交互式视景仿真和信息交流【z j 。 虚拟现实技术的出现,始于军事和航空航天领域的需求,但近年来,虚拟 现实技术凭借自身的巨大优势,已日益深入建模与仿真、科学计算可视化、设 计与规划、教育与训练、遥作与遥现、医学、艺术与娱乐等多个领域。虚拟现 实技术在许多不同领域的应用,己为人类带来了巨大的经济效益,改变着我们 的生活【3 】。 在光学领域中,光纤激光器以其效率高、线宽窄、阈值低、可调谐、紧凑 小巧和性价比高等诸多优点受到普遍关注,特别是稀土掺杂光纤技术的发展, 促进了有源光纤器件及技术的崛起和腾飞。自开发出掺稀土离子单模光纤制造 技术以来,光纤激光器的研究取得了巨大的进展。光纤激光器以其温度稳定性 和耐热性能好、高增益、高转换效率、结构简单紧凑、重量轻、容易实现、性 能价格比高、易于小型化、易于维护等优势而备受关注。特别是双包层光纤的 研制成功,使得高功率、高能光纤激光器的研制成为可能,极大地扩展了光纤激 光器在军事、医疗、工业加工、光通信等诸多领域的应用。基于传统光纤拉制 工艺的稀土掺杂光纤有一定的局限性,于是现在又提出了基于量子点组装光子 晶体光纤的新型光纤激光器的研究构想。该构想是一个全新的光纤激光器实现 第1 章绪论 方案,是将目前全球研究热点光子晶体光纤与单颗粒量子点纳米材料有机 结合起来,通过合适的方法将量子点组装到光子晶体光纤中,设计成优质的光 纤增益介质,并结合光纤激光器、光子晶体光纤和光纤光栅等方面的研究优势 而开展研究。 但是,由于量子点是准零维纳米半导体材料,它由少量原子或原子团构成, 通常三维尺度在1 - 1 0r i m ,目前显微分析技术还不能达到1 0n m 以下的范围, 因而在普通环境下难以对其结构进行观察和认知。并且实验研究的光纤造价非 常高,一根光纤价格过万,这对于普通学习和研究者来说是接受不了的。所以, 这就需要将研究中重要的实验通过三维虚拟技术的形式表现出来,利用虚拟现 实场景模拟具体的实验过程。 1 2 相关研究现状 目前,开发虚拟现实三维场景的工具主要有d i r e c t 3 d 、o p e n g l 、v r m l 等。 d i r e c t 3 d 是m i c r o s o f t 公司推出的三维图形编程a p i ,它主要应用于三维游 戏的编程,众多优秀的三维游戏都是由这个接1 2 1 实现的1 4 1 。d i r e e t 3 d 的实现主要 使用c + + 语言,需要编程人员具有较高的c + + 等高级语言的编程功底,因而难 以普及。 o p e n g l 是s g i 公司推出的三维图形编程的a p i ,是业界支持最广泛的一个 底层3 d 技术,几乎所有的显卡厂商都在底层实现了对o p e n g l 的支持和优化1 5 】。 o p e n g l 的另一特点是它的网络功能,在网络环境下,只要遵循同样的通信协议, o p e n g l 在不运行图形程序的计算机上也可以正常工作,它在服务器上产生图 像,再幅幅地传给客户端显示,这就对网络的传输能力提出了很高的要求, 而普通的网络传输能力,是不可能满足网络可视化的要求。o p e n g l 定义了一系 列接口用于编程实现三维应用程序,可以使用c 语言或c + + 来实现。当我们需 要处理复杂问题的时候,我们不得不自己完成大量非常繁琐的工作,这就限制 了它的普及和应用。但是,对于编程专业人士来说,o p e n g l 是他们发挥才能的 非常好的工具一 v r m l ,是一种虚拟现实建模语言,在虚拟现实领域中取得了很大的成功。 v r m l 2 0 ( v 蹦l 9 7 ) 自1 9 9 7 年1 2 月正式成为国际标准之后,在网络上得到 2 第1 章绪论 了广泛的应用,这是一种比b a s i c 、j a v a s c r i p t 等还要简单的语言1 6 - s j 。脚本 化的语句可以编写三维动画片、三维游戏等。它最大的优势在于可以嵌在网页 中显示,但这种简单的语言功能较弱,它只有有限的编程能力。 这些问题在s u n 公司推出j a v a3 d 开发包之后就有了一定的改观。j a v a3 d 是s u n 公司开发的适用于i n t e r n e t 环境的跨平台三维图形开发工具包,它对底 层的图形库o p e n g l 和d i r e c t 3 d 进行了封装,其意义非同寻常 9 1 。它的低层图 形构造函数不仅综合了低层a p i ( o p e n g l 、d i r e c t 3 d ) 最好的绘图思想,而且 它的高层图形绘制还综合了基于场景图的思想。j a v a3 d 的本质是一个交互式三 维图形应用编程接口,是j a v a2s d k 的标准扩展,它可以和普通的j a v a2 d 、 s w i n g 、a w t 等很好地结合【l o l 。它用于实现三维图形显示和基于w 曲的3 d 小 应用程序( a p p l e t ) 的j a v a 编程接口,具备了从网络设备编程到三维几何图形 编程等各个方面的功能【l l 】。在效率方面,j a v a3 d 也是出色的:它能并行着色, 自动进行着色过程的优化,拥有高效的流水线方式,自动利用硬件的加速功能, 还能对场景进行预编译以提高效率1 1 2 】。j a v a3 d 继承了j a v a 语言的优良特性,为 虚拟现实技术的发展开辟了新的路径。它可应用在三维动画、三维游戏、机械 设计、地理信息、医学三维重建、计算机三维辅助教学等多个领域。它的跨平 台性、面向对象性与当前网络技术相结合,更对虚拟现实技术的发展起到了巨 大的推动作用。 j a v a3 d 主要有以下几方面的特点: ( 1 ) 分层次的架构。分成上层程序设计者使用的j a v a 3 da p i 和下层由软件 厂商设计的j a v a3 di m p l e m e n t a t i o n ,它基于o p e n g l 或d i r e c t 3 d 等低层a p i , 支持不同的软件或者软件平台。 ( 2 ) 高效能。由于分层次的架构,使得底层的j a v a3 di m p l e m e n t a t i o n 可以 尽量最优化,充分发挥硬件的效能,而上层程序设计者也能够完全针对整个3 d 环境而设计,不需考虑和底层硬件有关的问题。 ( 3 ) 能够快速建立j a v a3 da p p l i c a t i o n 或者a p p l e t 。因为j a v a3 d 的程序设 计方式为一种高级、组件导向的架构,可以快速建立a p p l i c a t i o n 或者a p p l e t 。 ( 4 ) 传输高效。j a v a3 d 生成的a p p l e t 可以方便地从服务器传给客户端, 然后在客户端本地运行,传输的不是图像本身,而是控制三维图像生成的程序 和数据,因而大大节省网络传输的数据量,提高效率。 ( 5 ) 支持各种不同的3 d 文档格式。如:w r l 、o b j 、3 d s 等格式。 3 第1 章绪论 相比前几种虚拟现实主流开发工具而言,j a v a3 d 比d i r e c t 3 d 和o p e n g l 更 易于为大众所接受,在网络开发上更具优势,比v r m l 功能强大,并且能在当 前大多数平台上流畅地运行【l 引。利用j a v a3 d 进行场景的管理,可以随意在场景 中漫游,它和真实世界极其相似,也使我们有条件设计出一些复杂的应用程序 u 4 1 。学习、研究j a v a3 d ,并结合当前实际需求,将其应用于虚拟现实的设计与 开发中,将会更大地推动虚拟现实技术的前进和市场化。 1 3 研究意义 1 3 1 应用意义 新型量子点光子晶体光纤激光器是当今世界前沿的光学科技研究项目,使 用j a v a3 d 技术去模拟它的实验过程,解决了实验设备、实验场地、实验经费等 问题,避免了真实实验或操作所带来的各种危险,彻底打破了空间、时间的限 制,使普通的学习者和研究者也能近距离学习和观察前沿科技的实验过程,实 现全方位立体了解。 从j a v a3 d 技术的角度来说,本次设计为j a v a3 d 在高端光学实验领域开拓 出新的应用空间。同时,由于j a v a 语言的跨平台性,由j a v a3 d 编写的程序可 以在多平台上得到应用,从而加强了其应用范围。 1 3 2 技术意义 本次研究是对量子点光子晶体光纤激光器实验三维化实体模拟的探索,并 要求场景中具有实时的动态响应变化,这些都要通过j a v a3 d 来构建和实现。j a v a 3 d 技术在国内的发展相当缓慢,在大多应用领域几乎还是空白。相关的j a v a3 d 作品多数单一、零散,且从网络速度考虑,以静态的场景为主,其他关于j a v a3 d 的文章多是介绍基本概念和语言结构。因此,我希望能够通过本次研究,在一 定程度上发展和推广我国的j a v a3 d 技术。 4 第1 章绪论 1 4 论文的主要工作与组织结构 1 4 1 论文的主要工作 论文的主要工作是研究基于j a v a3 d 的虚拟现实实现技术,通过构建量子点 光子晶体光纤激光器的实验场景,实现了研究虚拟仪器的模拟和交互控制。研 究工作主要涉及到以下几方面内容: ( 1 ) 通过分析实验场景的动态交互控制操作需求,设计了j a v a3 d 场景组 成结构图。 ( 2 ) 使用j a v a3 d 技术实现虚拟现实仪器形体结构的创建,并通过渲染技 术提升了场景的真实感显示效果。 ( 3 ) 设计并实现了虚拟实验中激光、风扇等形体运动和变化的实时动画, 通过对j a v a3 d 交互控制原理的研究,创建了鼠标的功能交互,自定义设计了键 盘的响应交互,从而实现对实时动画的合理化控制。 ( 4 ) 通过对l o d 算法的分析和研究,提出了能够解决原l o d 算法数据冗 余问题的优化方法,并将该方法用于激光器实验场景的设计过程中,实现鼠标 控制操作下物体的运动变化。 ( 5 ) 实现了j a v a3 d 虚拟场景在w e b 上的应用,通过分析和研究解决了在 j a v a3 d 中设置相对路径进行图片调用时,i e 浏览器无法正常读取文件的问题。 1 4 2 论文的组织结构 第一章为绪论,介绍了本论文的选题背景、现状、研究意义和研究内容。 第二章介绍了j a v a3 d 的对象技术,从场景数据结构、类的结构到基本形体 的生成进行重点和关键的描述,为实验场景的搭建作了铺垫和准备。 第三章是用j a v a3 d 模拟量子点光子晶体光纤激光器的实验场景的具体过 程。其中重点介绍了空间的设计、场景的渲染、三维实体模型的建立,并通过 纹理样本的获取和表面粘贴使得三维场景更为逼真等内容。 第四章为对实验的动态控制设计,主要研究利用鼠标和键盘实现对激光器 等实体的动态控制,达到快速、准确的实时响应。描述了l o d 算法的思想和存 在的不足,结合实际场景设计,提出对l o d 算法数据冗余问题的合理优化,并 5 第1 章绪论 将其应用在场景的制作过程中。 第五章是对全文进行的总结,并对设计的进一步完善做出展望。 6 第2 章j a v a 3 d 对象技术 第2 章j a v a3 d 对象技术 2 1j a v a3 d 场景图数据结构 j a v a3 d 是j a v a 语言在三维图形领域的扩展,与j a v a 一样,它拥有纯粹的 面向对象的结构。j a v a3 d 通过场景图( s c e n eg r a p h ) 来管理场景中的各种图形 元素。j a v a3 d 的场景图是d a g 图( d i r e c t e d - - a c y c l i cg r a p h ) ,具有方向的不对 称特性,是一个树形结构,该树形结构的各级节点表示场景中的各种图形元素。 j a v a3 d 的场景图由j a v a3 d 运行环境直接转变成具有三维显示效果的显示 内存数据,从而在计算机上显示出三维效果。显示内存中的数据不断接收j a v a3 d 运行产生的最新结果,直接显示出来,从而产生三维动画效果。 我们在一个j a v a3 d 应用程序上看到的立体三维场景,从程序的角度来看, 实际上是由j a v a3 d 定义的一系列对象组成,这些对象并不是杂乱无序的,它们 之间存在着一定的关系。如果想让三维图像正常显示,必须严格遵循j a v a3 d 场 景图的规定。j a v a3 d 虚拟场景空间的一般结构如图2 1 所示。 在图中出现的这些对象,从逻辑上将它们分为三类: ( 1 ) 根节点( r o o t ) :v i r t u a lu n i v e r s e ; ( 2 ) o b j e c t 节点( n o d e ) :l o c a l e 、b r a n c hg r o u p 、s h a p e 3 d 等; ( 3 ) 叶子节点( l e a f ) :a p p e a r a n c e 、g e o m e t r y 等。 场景图中,线和线的交汇点称为节点( n o d e ) ,这些节点都是j a v a3 d 类的 实例( i n s t a n c eo f c l a s s ) ,节点之间的线表示各个实例之间的关系。 在j a v a3 d 中,虚拟宇宙( v i r t u a lu n i v e r s e ) 被定义为结合一系列对象的三 维空间。虚拟宇宙被用作最大的聚集体表现单位,同时也可被看作一个数据库。 不管是物理空间还是逻辑内容,虚拟宇宙都可以很大。实际在大多数情况下, 一个虚拟宇宙就可以满足一个应用程序所有的需求。虚拟宇宙是各自独立的个 体,原因是在任何时候一个结点对象都不能在超过一个的虚拟宇宙中存在。同 样的,在一个虚拟宇宙中的结点对象也不能在其他的虚拟宇宙中可见或者与其 他的对象结合。对于一个j a v a3 d 应用程序,必须定义一个虚拟宇宙才可以在这 个“宇宙”中显示三维图像。 7 第2 章j a v a 3 d 对象技术 图2 1j a v a3 d 虚拟场景空间的一般结构图 v i r t u a lu n i v e r s e 是根节点,每一个场景图的v i r t u a lu n i v e r s e 是唯一的。为 了支持大型虚拟宇宙,j a v a3 d 提出了“l o c a l e ”的概念【l5 1 。l o c a l e 把高分辨率 坐标作为起源,把高分辨率坐标看作精确的定位,它在高分辨率坐标的影响范 围之内使用精度较低的浮点坐标指定对象的位置。 在v i a u a lu n i v e r s e 下面就是l o c a l e 节点,一个l o c a l e 和与它结合的高分辨 率坐标一起组成了在虚拟宇宙之下的一个表现层,所有虚拟宇宙包含一个或多 个高分辨率l o c a l e 。虽然每个程序可以有一个或多个l o c a l e ,但同时只能有一个 8 一一一一一 第2 章j a v a 3 d 对象技术 l o c a l e 处于显示状态,就好像一台计算机可以同时运行多个程序,但当前只能有 一个程序是处在前台运行的。 j a v a3 d 允许从一个l o c a l e 跳到另一个l o c a l e ,不过绝大多数程序只有一个 l o c a l e 。每一个l o c a l e 可以拥有多个b r a n c h g r o u p 节点。在一个l o c a l e 节点只 含有一个b r a n c h g r o u p 节点的情况下,必须定义一个s h a p e 3 d 对象,在该对象 中定义几何体的颜色、材质、透明度等外观显示特性,该s h a p e 3 d 对象一般加 入在一个t r a n s f o r m g r o u p 类的节点中。所有三维形体的位置信息 ( t r a n s f o r m g r o u p ) 都建立在b r a n c h g r o u p 节点之上。 t r a n s f o r m g r o u p 用来设定s h a p e 3 d 在v i r t u a lu n i v e r s e 中的位置,每个 t r a n s f o r m g r o u p 节点表示一种既包含有几何元素定义,又包含有坐标变换的节 点。每个t r a n s f o r m g r o u p 可包含一种或多种几何体的定义,也可不包含几何体 的定义信息,但一个t r a n s f o r m g r o u p 节点必须包含一个或多个t r a n s f o r m 3 d 对 象,表示对t r a n s f o r m g r o u p 节点中定义的几何体所进行的坐标变换。一个 t r a n s f o r m 3 d 对象表示对几何体进行平移、旋转、变比等坐标变换中的一种,多 个t r a n s f o r m 3 d 对象的组合形成一个总的坐标变换矩阵,这个总的坐标变换矩阵 就属于包含这些t r a n s f o r m 3 d 的t r a n s f o r m g r o u p 节点。如果该t r a n s f o r m g r o u p 节点中没有定义几何体,则这种坐标变换是针对于第一次定义的几何体。如果 一个t r a r t s f o r r n g r o u p 节点中没有定义任何的坐标变换,则该t r a n s f o r m g r o u p 节 点拥有默认的坐标变换矩阵,该矩阵为单位矩阵,表示对几何体不进行任何变 换。 s h a p e 3 d 是三维图形节点,这个节点的实体反映在最后的显示画面中,就是 三维世界中的每个形体,包括立方体、球体、圆锥体以及任何形状和外观的三 维形体。位于场景图最下层的是两个叶子节点:三维形体的外观( a p p e a r a n c e ) 和几何信息( g e o m e t r y ) ,这两个节点定义了一个三维形体的显示效果。 v i e w 位于图2 1 的另一个分支上,与前面所有描述三维形体的性质的概念 不同,v i e w 是用来定义观察者的信息,它的功能主要是实现在虚拟场景中设置 视点与观察方向。c a n v a s 3 d 主要用来定义一种能够显示三维物体投影的画布。 s c r e e n 3 d 是将画布上三维物体的投影显示在显示器上【1 6 1 。 如果假设一个虚拟宇宙与传统的计算机图像的概念相近,那么给定的虚拟 宇宙就可能会变得很大。所以在通常情况下最好把一个场景图看作是一个高分 辨率坐标场景的子结点。要想构造一个三维场景,程序员需要运行一个j a v a3 d 9 第2 章j a v a 3 d 对象技术 程序。这个j a v a3 d 应用程序必须首先创建一个虚拟宇宙对象,并且至少加入一 个l o c a l e 对象,然后再构建出需要的场景图像,它由一个分支组结点开始并且 包括至少一个观察平台对象。当一个包含场景图的观察对象被附加在一个虚拟 宇宙上,j a v a3 d 的渲染循环就开始工作。这样,场景就会和它的观察对象一起 被绘制在画布上。j a v a3 d 程序只要正确地定义了三维图形的具体观察位置及观 察参数,建立了一个带有三维形体及其属性的场景图,就可以在计算机屏幕上 显示程序的运行结果。 2 2j a v a3 d ( a pi ) 中类的结构 j a v a3 d 是s u n 公司开发的一个应用程序接口,是j a v a 语言在三维领域的 扩展,它包含了实现三维交互真实感图形的基本类和接口。编程时,只需要根 据各个类、接口及方法的编程要求,按照面向对象编程的设计思想,就可以编 写出复杂的三维多媒体应用程序。 j a v a3 d 中提供的类,按照作用可以分为两种类型:n o d e 和n o d e c o m p o n e n t 。 n o d e 是三维场景图中的内容,它又包含了l e a f 和g r o u p 类型的类。其中,l e a f 类中不能包含其他的子节点,属于l e a f 类型的类有s h a p e 3 d 、l i g h t 、s o u n d 、 a p p e a r a n c e 、t e x t u r e 和b e h a v i o r 等,它是j a v a3 d 场景图的重要组成部分。g r o u p 类中可以包含其他的子节点,t r a n s f o r i l l 、s w i t c h 等都属于g r o u p 类型。 n o d e c o m p o n e n t 类型用于表示n o d e 的属性,例如形体的几何信息等l l7 。图2 2 为类的层次结构图。 图2 2 类的层次结构图 1 0 第2 章j a v a 3 d 对象技术 j a v a3 d 的核心包是j a v a x m e d i a j 3 d ,它提供了1 0 0 多个类及接口,是j a v a3 d 的核心部分。 除了j a v a3 d 核心包之外,j a v a3 d 程序设计也会用到其他的包,比如 e o m s u n j 3 d m i l s ( u t i l i t y ) ,这个包通常被称作j a v a3 d 工具类,核心类中仅仅包 含了在j a v a3 d 编程中必要的最底层的类,而工具类是对核心类便捷而强大的补 充。工具类主要分为四类:内容加载器、场景图构建辅助类、图形类和方便的 一些工具类。t o m s u n j 3 d m i l s 包有助于快速编程,u t i l i t y 不是j a v a3 d 编译环境 的核心组成部分,可以不用它,但使用它会大大提高程序的编写效率。一些基 本的形体,如球体、圆柱体等,可以由u t i l i t y 方便地生成,对复杂形体的生成, 则需对基本形体进行一系列的几何坐标变换来实现。 工具类的使用,大大地减少了j a v a3 d 程序中的代码行数。除j a v a3 d 核心 类包和工具类包之外,每一个j a v a3 d 程序还引用了j a v a a w t 包和j a v a x v e c m a t h 包中的类。j a v a a w t 包就是a b s t r a c tw i n d o w i n gt o o l k i t ( a w t ) ,a w t 类用于创 建显示和渲染场景和窗口。而j a v a x v e c m a t h 包则定义了对点、矢量、矩阵以及 其他数学对象进行数学运算的类。 3 虚拟空间坐标系 在默认情况下,j a v a3 d 所采用的坐标系是右旋的,如图2 3 所示。 jl , d z 显示器屏幕 图2 3j a v a3 d 所采用的坐标系 d 表示坐标原点,在显示器的正中间。z 轴指向屏幕之外,也就是观察者。 x 轴的正向沿水平方向向右,y 轴的正向沿垂直方向向上。默认的单位是米。 第2 章j a v a 3 d 对象技术 那么能否用单精度浮点来表示三维坐标呢? 实际上,使用单精度浮点甚至 是定点都足够来表示和显示丰富的3 d 场景。但问题是,虚拟场景并不是真实世 界,更不必说整个虚拟宇宙了。如果使用单精度坐标,有可能出现这样的情况: 离原点仅有一百公里的距离,被描绘得相当量子化,所能达到的最好效果就是 三分之一英寸,在实际应用中这样的精度比要求的要更显粗糙得多。 如果要缩 小到一个很小的尺寸( 例如表现集成电路的大小) ,如在离原点很近的地方,甚 至会出现同坐标的问题。 为了支持一个大型的邻接虚拟宇宙,j a v a3 d 选择了有2 5 6 位的高分辨率坐 标。j a v a3 d 高分辨率坐标由三个2 5 6 位的定点数组成,分别表示x 、y 、z 轴。 定点被固定在第1 2 8 位,并且值1 o 被定义为真实的1 米。这个坐标系统足够用 来描述一个超过几百万光年距离的宇宙,也可以定义小于一质子大小( 小于一 普朗克长度) 的对象。在j a v a3 d 中,高分辨率坐标仅仅用于将更加传统的浮 点坐标系统嵌入更高分辨率的底层系统。用这种方法,可以创造出一个具有任 意大小和规模的,在视觉上无缝的虚拟宇宙,而且可以不必担心数字上的精度。 一个2 5 6 位的定点数还具有能够直接表示几乎任何的合理适当的单精度浮点值。 j a v a3 d 用有符号的、两位补码的2 5 6 位定点数字来表示高分标率坐标。 如果是“小 的虚拟宇宙( 比如几百米) ,在虚拟宇宙对象下的( 0 0 ,0 0 , o 0 ) 点建立一个带有高分辨率坐标的l o c a l e 作为根节点就足够使用了。装入程 序在装入过程中能自动构建结点,而在高分辨率坐标下的点不需要任何外部文 件的直接描述。大一些的虚拟宇宙期待被构建为有如同计算机文件那样的层次, 这意味着一个根宇宙要包含由外部文件引用的嵌入虚拟宇宙。就这样,文件引 用的对象( 用户指定的j a v a3 d 组或高分辨率结点) 定义了被读入现存虚拟宇宙 的数据的位置。 2 4 基本形体的生成 2 4 1 点、线、面的生成 在3 d 计算机图形中,从最简单的三角面到复杂的三维场景模型都是由基于 顶点的数据来建模的【1 8 l 。三维图形从某种角度上看,就是点、线、面组合生成 的各种基本形体,再由基本形体组合成各种复杂形体。 1 2 第2 章j a v a 3 d 对象技术 编写j a v a3 d 的点、线、面时,需要给出顶点坐标数组、顶点坐标对应的颜 色数组等内容,输入这些内容需要用到g e o m e t r y a r r a y 提供的多个方法,所有的 点、线、面类都是g e o m e t r y a r r a y 的子类或孙类,因而都继承了它所有的方法。 j a v a3 d 中,点的生成有两种方式:p o n i t a r r a y 和i n d e x e d p o n i t a r r a y 。前者 用于生成指定数目的点,后者可以在多个顶点中选择部分( 或全部) 顶点,并 以给定的属性显示出来。点在生成时可以通过p o i n t a t t r i b u t e s 类的对象来定义它 的各种属性,如:s i z e 和a n t i a l i a s i n g 。s i z e 是定义点的大小,以像素大小为单 位。a n t i a l i a s i n g 的英文含义是反走样,默认情况下反走样未被设置,则当一个 点的大小大于一个像素单位时,通过由多个像素围成的正方形来显示该点;当 设置反走样参数时,则该点显示为圆形。 j a v a3 d 中,线的生成有四种方式;l i n e a r r a y 、l i n e s t r i p a r r a y 、 i n d e x e d l i n e a r r a y 和i n d e x e d l i n e s t r i p a r r a y 。第一种方法按给定顶点顺序两两为 一组连接成线;第二种按照顶点数组中的顺序按顺序首尾连成折线段;第三种 方法在给定的一组点中,挑选若干点两两为一组生成线段;最后一种方法在给 定点中选取点生成折线段。线在生成时可以通过l i n e a t t r i b u t e s 类的对象来定义 它的各种属性,如:线形、线宽和反走样设置。 关于面的生成有很多方法,常用的有以下几种:t r i a n g l e a r r a y 、 t r i a n g l e s t r i p a r r a y 、t r i a n g l e f a n a r r a y ,i n d e x e d t r i a n g l e a r r a y ,q u a d a r r a y , i n d e x e d q u a d a r r a y 。第一种是在给定的顶点数组中,按顺序三个顶点为组生成 三角面;第二种是将给定的顶点生成并连接为一组子三角形s t r i p 带;第三种是 以第一个顶点为公用顶点,依次与其余顶点分别连接形成三角形;第四种是从 顶点数组中选取若干点形成一个或多个三角面;第五种是依次以四个顶点形成 四边形面;第六种是从给定的顶点中选取若干点依次以四个顶点形成四边形面。 2 4 2 基本几何形体 生成点、线、面的各种对象均是g e o m e t r y a r r a y 的子孙类,它们只是几何对 象,不能单独放置在三维场景图里面。真正的三维形体对象应当具有几何特征,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成都市双流区西航港小学2025年公开招聘教师备考练习题库及答案解析
- 2025云南三七科技有限公司招聘9人备考练习题库及答案解析
- 2025四川都江堰宏惠医院招聘19人考试参考试题及答案解析
- 2025年河北唐山滦州市榛子镇中心卫生院招聘见习人员3人备考练习试题及答案解析
- 人教版(2024)七年级上学期生物学能力提高综合强化练习2(含解析)
- 2025年营销推广策划考试题及答案
- 北师大版(2024)二年级上册 5.3分糖果 课后作业(含解析)
- 城中村改造防火与安全管理方案
- 2025年信阳息县一中选调教师70名考试参考试题及答案解析
- 2025湖南郴州市宜航人力资源有限责任公司招聘项目现场管理人员、现场技术人员2人考试参考试题及答案解析
- 工业园区污水处理厂节能设备安装方案
- 2025《公共基础知识》试题库(附答案)
- 2025-2026学年北师大版数学小学三年级上册(全册)教案设计及教学计划
- 绿色钻井技术-洞察及研究
- 2025年“学宪法讲宪法”主题活动知识竞赛题库附答案
- 印章U盾管理办法
- 2025年重庆市永川区社区工作者招聘考试笔试试题(含答案)
- 家畜繁殖员上岗证考试题库及答案
- DG-TJ08-2097-2025 地下管线探测技术标准
- 数学鲁教版九年级上学期分层计划
- 新解读《建筑工程消防施工质量验收规范 DBJ-T 15-248-2022》
评论
0/150
提交评论