




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉科技大学本科毕业论文本科毕业论文题目:基于虚拟现实的起重机的运动姿态的仿真学 院:计算机科学与技术专 业:软件工程学 号:学生姓名:指导教师:日 期:二一一年六月 摘 要虚拟现实(virtual reality,简称vr,又译作灵境、幻真)是近年来出现的高新技术,也称灵境技术或人工环境。虚拟现实是利用电脑模拟产生一个三维空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身历其境一般,可以及时、没有限制地观察三度空间内的事物。随着internet技术的高速发展,网络虚拟现实技术成为计算机领域最重要的技术之一。 虚拟现实建模语言vrml环境的产生提供了一套完全的新标准、新过程以及新的web技术。vr是一项综合集成技术,涉及计算机图形学、人机交互技术、传感技术、人工智能等领域,它用计算机生成逼真的三维视、听、嗅觉等感觉,使人作为参与者通过适当装置,自然地对虚拟世界进行体验和交互作用。使该技术集成了计算机图形(cg)技术、计算机仿真技术、人工智能、传感技术、显示技术、网络并行处理等技术的最新发展成果,是一种由计算机技术辅助生成的高技术模拟系统。 本文以vrml技术、java技术及各种多媒体技术为依托,研究基于vrml的三维空间构建的实现方法和交互方法,系统漫游技术和优化技术,通过对场景建模技术的综合研究,提出了起重机系统的建模方法,综合利用solid works、3dsmax和vrml几种编辑器的各自特点,实现起重机虚拟场景的建立。用javascript解决了其中的一些关键技术问题,设计操作控制面板界面和相应的模块,通过这些模块实现了不同形式的交互操作以达到不同的效果。实现java与vrml的交互,通过awt控制面板,可进行部分零部件的参数化设计。 研究虚拟现实漫游,设计相应的模块,利用优化代码实现对象几何形状的建模方法,并提出并实现优化vrml文件和vrml文件的渲染韵方法。关键词: 虚拟现实; vrml; java; 起重机abstractvirtual reality (vr) is referred to as the recent high technology. virtual reality is using the computer simulation produced a three-dimensional virtual world, provides the user about visual, auditory and tactile sense, let users like the simulation illustrates the borders general, can prompt, no limit to observe three degrees of things in space. with the rapid development of internet technology, computer network virtual reality technology to become one of the most important technology field.virtual reality modeling language, from the users standpoint, essentially html plus third dimension. but from developers standpoint. vrml environment provides a set of complete produced the new standard, new processes and new web technology. vr is a comprehensive integration technology, involving computer graphics, human-machine interaction, sensing technology, artificial intelligence and other fields, it use computer to generate lifelike 3d sight and hearing and smell etc, make the person feels as participants through the appropriate devices, naturally on the virtual world experience and interaction. users moves, the computer can position immediately complex operation, precise 3d world images back to produce telepresence. this technology has integrated computer graphics (cg) technology, computer simulation technology, artificial intelligence, sensing technology, display technology, network parallel-treatment technology achievements in the latest development, is a kind of generating by computer technology of high technology simulation system.taking vrml technology, java technology and various multimedia technology, based on the research on the vrml the realization method of 3d space construction method, the system and interaction between technology and optimization technique, roam through the comprehensive research of scene modeling technology, and puts forward the modeling method of crane system, the comprehensive utilization of solid works, 3dsmax and vrml several editor features, realize the establishment of crane virtual scene. use javascript solved some of the key technical issues, design operation panel interface and the corresponding modules, through these module implements the various forms of interactive operation to achieve different effect. realizing the interaction with vrml java, through awt control panel, can undertake part of parametric design of parts.virtual reality roaming, design corresponding modules, using the optimized geometry object code realization, and puts forward the modeling method and realize optimization vrml files and vrml file rendering rhyme method.keywords: vr; vrml; java; crane目 录1 绪论11.1 概述11.2 课题研究的目的和意义11.3 主要工作21.4 系统开发梗概21.4.1 系统开发环境21.4.2 系统开发过程32 虚拟现实建模语言 vrml42.1 vrml的工作原理及其基本特征42.1.1 vrml的工作原理42.1.2 vrml的基本特征42.2 vrml的关键技术52.2.1 vrml的文件格式52.2.2 vrml浏览器52.2.3 vrml节点和场景图结构62.2.4 坐标系和坐标变换62.2.5 路由和事件体系72.2.6 原型72.2.7 脚本语言72.3 本章小结73 系统三维模型的建立83.1 功能要求83.2 建模软件的比较与选择83.2.1 solidworks简介及应用83.2.2 3dsmax的vrml应用93.2.3 vrml编辑器的研究与选用113.3 浏览器插件133.3.1 blaxxuncontact143.3.2 cosmo piayer143.3.3 bs contact vrmlx3d 6.2143.3.4 cortona143.4 建模的总体设计方法143.5 本章小结154系统交互性的研究与实现164.1 vrml自身交互功能的实现164.1.1 自身交互的理解164.1.2 自身交互实现的一般过程164.2 通过脚本编程实现交互174.2.1 vrml的script节点174.2.2 javascript实现的交互功能184.2.3 java在vrml中的应用194.3 通过eal实现交互204.3.1 eai简介204.3.2 eai与sai的比较214.3.3 eal的实现方式214.4 系统交互框架224.5 本章小结225 系统优化技术235.1 优化vrml文件235.1.1 对象的重用235.1.2 使用内联节点(inline)235.2优化场景实例235.2.1 塔吊阵列245.3 本章小结25结论26参考文献27致谢29311 绪论1.1 概述虚拟现实1(virtual reality,简称vr)是一门综合集成技术,涉及计算机图形学、人机交互技术、传感技术、人工智能等领域,借助它您可以把自己完全置身于由计算机创造的神奇的虚拟世界,可以和虚拟世界中的物体进行交互,也可以静静的观察这个虚幻的世界。 虚拟仿真是一种实验技术,它为一些复杂系统创造了一种计算机实验环境,使系统的未来性能测度和长期动态特性,能在相对极短的时间内在计算机上得到实现。从实施过程来看,它是通过对所研究系统的认识和了解,抽取其中的基本要素的关键参数,建立与现实系统相对应的仿真模型,经过模型的确认和仿真程序的验证,在仿真试验设计的基础上,对该模型进行仿真试验,以模拟系统的运行过程,观察系统状态变量随时间变化的动态规律性,并通过数据采集和统计分析,得到被仿真系统参数的统计特性,据此推断和估计系统的真实参数和性能测度,为决策提供辅助依据。 虚拟现实侧重在表现形式,它可以是和现实背道而驰的;而系统仿真则侧重于真是复杂世界的科学抽象,真正反映出现实世界的运动形式。利用虚拟现实技术可以更好的帮助系统仿真验证模型的有效性,并可更直观、有效地表现仿真效果。 虚拟现实首先是一种可视化界面技术,可以有效地建立虚拟环境,这主要集中在两个方面,一是虚拟环境能够精确表示物体的状态模型,二是环境的可视化及渲染。虚拟现实仅是计算机系统设置的一个近似客观存在的环境,为用户提供逼真的三维视感、听感、触感和嗅感的感受。它是硬件、软件和外围设备的有机组合。虚拟现实的关键是传感技术。虚拟现实离不开视觉和听觉的新型可感知动态数据库技术。可感知动态数据库技术与文字识别、图像理解、语音识别和匹配技术关系密切,并需结合高速的动态数据库检索技术。虚拟现实不仅是计算机图形学或计算机成像生成的一幅画面,更重要的是人们可以通过计算机和各种人机界面与机交互,并在精神感觉上进入环境。它需要结合人工智能,模糊逻辑和神经元技术。虚拟现实还具有多感知性(multi-sensory)、浸没感(immersion)、交互性(interactivity)、构想性(imagination)等特性。1.2 课题研究的目的和意义近年来,虚拟现实系统在我国学术界和各个领域正处于迅速发展的阶段,然而,虚拟现实仿真的研究和应用仍然停留在实验研究和初级开发的阶段,亟需加强研究和发展。特别是对虚拟现实仿真概念的认识,还需进一步的普及和推广,研究开发具有内置仿真器的虚拟现实仿真系统,仍然是一项极具挑战性的工作。本研究课题为“虚拟现实起重机仿真系统的研究及实现”。本论文对起重机训练系统中的三维场景建模技术进行研究,用vrml及其相关技术构建场景模型,通过对vrml各种交互方法的比较研究,在起重机中实现了各种操作,提供了一个逼真的起重机虚拟环境,使其能够达到更好的训练环境2。1.3 主要工作以vrml技术、java技术及各种多媒体技术为依托,研究基于vrml的三维空间构建的实现方法和交互方法,系统漫游技术和优化技术,主要要做几个方面的工作: 1) 通过对场景建模技术的综合研究,提出了起重机系统的建模方法,综合利用solidworks、3dsmax和vrml几种编辑器的各自特点,实现起重机虚拟场景的建立。 2) 通过sai设计了轴的运动,并用javascript解决了其中的一些关键技术问题。 3) 设计操作控制面板界面和相应的模块,通过这些模块实现了不同形式的交互操作以达到不同的效果。 4) 实现了java与vrml的交互,通过awt控制面板,可进行部分零部件的参数化设计。 5) 实现了通过eai来控制vrml场景中的物体。 6) 实现系统的几种视点漫游功能,通过跳跃型和非跳跃型视点的设定来控制观察者的位置、朝向,从而可以控制观察者在起熏机系统漫游中的视点。设计视点追踪模块,使其可以及时观察运动物体的轨迹。 7) 提出并实现优化vrml文件和vrml文件的渲染韵方法1.4 系统开发梗概1.4.1 系统开发环境系统开发基于windows xp。系统开发过程中以下几个软件为主要工具:1) flash mxmacromedia公司开发的flash的最新版本,功能强大的矢量动画制作工具。2) 3dmax 4.0autodesk公司discreet小组开发的三维建模和动画制作软件,功能强大,可以在pc机上制作出具有图形工作站水平的模型和动画。3) vrmlpad 1.2parallelgraphics公司开发的vrml语言编辑器。4) contact 3dblaxun公司开发的虚拟现实浏览器插件,安装方便,操作简单。5) iis 5.0iis(internet information server)网络信息服务是由microsoft用于internet/intranet的核心服务器,集成于windows 2000操作系统中,用于实现网站的发布1.4.2 系统开发过程根据软件工程学原理2系统的开发过程分为系统分析、系统设计、系统实现和系统调试等几个主要步骤。系统分析阶段是系统开发的第一个重要阶段,在系统分析阶段里不仅要对系统的开发环境、所要达到的功能等进行全面的分析,还要进行实地的考察和测绘,例如对校园的地理概貌、主要建筑的分布、道路的连接走向、湖泊桥梁、建筑物的建筑风格等进行实地考察,选择在适宜的天气、适宜的时间、拍摄建筑物、道路、代表性图像的照片,以备作为贴圈的素材。系统设计阶段需要对系统要求实现的功能进行全面的分析设计,并给出实现的方法和需要用到的软件。系统实现阶段分为电子地图实现和三维虚拟场景实现两个部分。电子地图以通过扫描仪获得的位图文件为模板,利用flash制作出与实际校园景观相一致的电子地图,并实现漫游和动画功能。三维虚拟场景需要在3dmax中进行建模,并输次成vrml语言的文件,在vrmlpad中可以对这些文件进行优化。系统调试是一个自始至终的过程,贯彻与整个开发过程。当一个开发过程结束后应该自觉的进行调试,将系统的出错率降到最小。2 虚拟现实建模语言 vrmlvrml即虚拟现实建模语言3,是一种用于建立真实世界的场景模型或人们虚构的三维世界的场景建模语言,本质上是一种面向web,面向对象的三维造型语言,而且它是一种解释性语言,vrml不仅支持数据和过程的三维表示,而且能提供带有音响效果的结点,用户能与虚拟对象交互。2.1 vrml的工作原理及其基本特征2.1.1 vrml的工作原理vrml用文本信息描述三维场景,在internet网上传输,在本地机上由vrml的浏览器解释生成三维场景。 vrml的访问方式是基于client/server结合模式4,其中服务器提供vrml文件,客户通过网络下载希望访问的文件,并通过本地平台的浏览器(viewer)对该文件描述的vr世界进行访问, vrml的工作方式如图2.1:图2.1 vrml的工作方式2.1.2 vrml的基本特征1)基于ascii码的低带宽可行性2)基于3d的着色引擎53)可扩充性2.2 vrml的关键技术2.2.1 vrml的文件格式vrml采用的是文本文件格式6,常用的文本编辑器notepad就可完成全部的编程任务,只需将文件保存为具有wrl扩展名的文件即可。vrml文件可以包括下列四个只要成分;vrml文件头、原型、造型和脚本、路由。并不是所有的文件都包含这些要素,唯一必须的是vrml文件头。vrml2.0标准的文件头为#vrml v2.0 utf8,是区分大小写的,并且必须放在文本文件的首行。vrml2.0文件格式兼容1.0文件格式,这个文件头有三个含义:第一,表明这个文件是一个vrml文件;第二,符合vrml2.0版本;第三,文件使用的是utf8字符集。2.2.2 vrml浏览器vrml是解释执行的,浏览器就是其解释器。由于vrml广阔的发展前景,因此对其解释支持的浏览器很多,可分为三大类7: 单独应用类(stand-alone application):这类浏览器可直接从internet上下载wrl文件并展现其图像,而不需要web浏览器的支持。 辅助应用类(helper application):这类浏览器是作为对某种网络浏览器的帮助,源文件不需进行编译。当网络浏览器遇到一个vrml连接时,就会启动帮助浏览器。 插件类(plug in):这类浏览器是作为一种插件安装在网络浏览器上。 浏览器的三个主要组成部分为:分析程序、场景图和听觉、视觉显示。vrml浏览器概念模型如图2.2所示: 图2.2 vrml浏览器概念模式2.2.3 vrml节点和场景图结构vrml定义了一组用以描述三维图形的对象,这些对象称为节点。vrml有许多对象类型,最简单的对象称为原始对象, vrml中节点被组织成一种分层的结构,称为场景。使用场景图数据结构来描述3d场景,场景图是一种代表所有3d世界静态特征的节点等级:几何关系、质材、纹理、几何转换、光线、视点以及嵌套结构。境界中的对象及其属性都用节点(node)描述,节点按照一定规则构成场景图,也就是说,场景图是境界的内部表示。 vrml的场景图结构是一种有向无环图,如图2.3所示: 图2.3 场景图结构最顶层节点是虚拟空间,它是场景图的基础,每一个场景图只能由一个虚拟空间,在虚拟空间下面,就是场所节点。每一个场景下面有一个或多个分支节点,一个分支节点对象是一个子场景图的根节点。在它下面建立一个基准坐标系变换节点,就可以相对这个坐标系拜访所需要的形体,拜访是需要给出形体的外观、几何信息等。2.2.4 坐标系和坐标变换 vrml的造型都是有坐标系6来定位的,而且是由坐标系上的vrml三维来设定其尺寸的,坐标系有x、y、z三个坐标方向构成,其方向可以由右手规则来确定,transform节点是形成vrml场景层次结构的基础性节点,在trandform节点中可以放入多个子节点,而这些子节点本身也可以是有许多个自己点的trandform节点,这样就形成一个层次图。组合在一起构成各种复杂的vrml场景,从而形成多姿多彩的三维世界,最后形成一个整体,这就是vrml构造虚拟世界的基本原理。2.2.5 路由和事件体系 vrml2.0与vrml1.0相比,最大的改进就是增加了交互性和动态能力,这节点通过事件入口(eventin)接收事件,通过事件出口(eventout)发出事件,一个节点的事件出口和另一个节点的事件入口之间用于传递的通路称为路由(route),通过路由联系起来的节点形成事件体系8。事件体系执行模型的一个概念性图,如图2.4所示:图2.4 事件体系的执行模型事件由事件和时间戳组成,时间戳有两个作用:首先,它是描述事件机制时序流程的一种概念装置;其次,时间戳也可共script节点使用,可以根据用户的动作顺序或事件质监的时间间隔来处理事件。2.2.6 原型 原型定义描述了一个新的节点类型,用户可以通过原型(prototype)扩充vrml的节点类型集,它与vrml提供的标准节点类型是相同的,对新节点类型、属性的修改是由域来完成的,通过修改节点的这些域便可创建不同的类型。2.2.7 脚本语言 vrml支持多种脚本描述的编程语言,包括java语言。常用的有vrml script、javascript。2.3 本章小结本章针对虚拟起重机系统中的关键技术支持做了详尽的论述,正是该技术的优势实现了系统的功能。也就是依靠这些技术使系统成了一个完整的不可分割的整体。3 系统三维模型的建立3.1 功能要求 采用小型的桌面虚拟系统,支持立体显示、碰撞检测等功能;根据需求修改虚拟环境的结构和外观;实现java与vrml的多种交互方式,建立动态的操作起重机等等。结合实际情况开发起重机系统需要采用如下技术: 1)面向对象的技术; 2)计算机图形技术; 3)虚拟现实技术; 因此,在开发起重机系统时提出了一下的建设目标;采用计算机图形技术,面向对象技术和虚拟现实技术进行起重机系统的开发,实现对三维模型的显示操作和管理的功能。3.2 建模软件的比较与选择起重机系统涉及的物体多,要求的交互也多,所以一般推荐本系统采用vrml作为开发首选技术,模型制作软件:3dsmax、maya、rhino、solidworks等常规建模软件,也可以使用canoma、imagemodeler等照片建模软件,其中3dsmax、maya支持多种建模方式, 3dsmax不仅建模功能强大,而且其生成的三维模型可以转化到虚拟环境中。3.2.1 solidworks简介及应用 三维cad软件在功能上,整个solidworks系统主要氛围机械设计(cad)、工程分析(cae)、数据加工(cam)、产品数据管理(pdm)、产品交互动画(ipa)等部分。机械设计主要由三大模块构成:零件设计模块用于设计单个零件的三维模型通过输出的*.dsn文件,图3.1为solidworks零件轴承套设计的运行界面:图3.1 solidworks零件设计运行界面装配设计模块用于设计含有多个零件的装配体。它是通过各个相对独立的零件装配成,工程图绘制模块采用了三维与二维关联技术,工程绘图系统drawing主要用于三维模型的工程图纸绘制与输出,可同时编辑多张图纸。如图3.2所示。图3.2 solidworks输出为vrml的界面设置3.2.2 3dsmax的vrml应用 在使用vrml构造虚拟场景的时候,主要通过以下2种途径使用3dstudiomax9进行产品建模的辅助设计:1)全健用3dstudiomax进行产品造型,赋予其各种属性,然后用3dstudiomax系统提供的导出(export)功能将场景文件(.max)直接转换成vrml格式(.wrl)的文件,如图3.3所示。图3.3 3dsmax输出为vrml97的界面下面介绍其中一些重要的选项: nomals(法线):为对象指定真实的法线。 coordinate interpolators(坐标插值):在输出的动画效果中修改编辑。 indentation(缩进):以缩进的方式编排vrml97文件的源代码。 primitives(几何参数对象):输出为vrml97几何参数对象。 flip-book(翻书):将场景输出多个文件。polygons type(多边形类型):下拉列表框:ngons(多边形):将面尽可能输出为多边形的面。quads(四边形):将面尽可能输出为四边形的面。triangles(三角形):将面尽可能输出为三角形的面。digits of precision(数字精度):通过设置小数点位数指定计算精度。2)利用3dstudiomax中内嵌的vrml2.0 helpers格式工具,但是生成后的wrl还需要手工进行少量的修正,如图3.4所示。图3.4 vrml2.0 helpers格式工具vrml2.0 helpers内有12种vrml特有造型。 当然,3dstudiomax不是万能的,在导出的过程中,还很有可能丢失数据,通常,丢失的数据有以下几种:(1)丢失整个几何体或是几何体的精确度以及物体背面的渲染数据。(2)丢失拓扑信息。在多数情况下,三维物体对象被导出为vrml对象物体的时候,很容易丢失它们之间的拓扑信息和场景结构。(3)丢失语义。语义主要包括对象物体的维度和单位、名称、约束和关系。(4)在用三维造型软件进行场景设计中,如果为对象物体安排了某种行为(例如运动),在这种导出的过程中几乎不可能保存下来。因此除此之外,利用文本编辑器编写vrml代码文件就是非常必要的,后面介绍的vrmlpad就是一款优秀的vrml文本编辑器,而当它们相结合时创建虚拟产品世界就变得轻松了。3.2.3 vrml编辑器的研究与选用 尽管so1idworks、3dsmax可以转换成vrml文件,但是它们转换出的文件并没有充分应用vrml的特性、文件体积也还是偏大,在制作一些简单的物体时,充分利用vrml的基本几何形体,用vrml编辑器就会显得更加的方便和快捷,编辑器的好坏直接影响到建模时的效率及使用的方便性,它往往可以达到事半功倍的效果,下面就一些常用的编辑器进行研究、比较和选用可视化编辑器有:3.2.3.1 vrmlbeans paksoft公司的vrmlbeans生成最终的vrml 3d场景。新版本的vrmlbeans在用户界面上更加贴近用户,并且提供了20余种3d物体供用户造型使用,充分体现了其易用的特性。尽管如此方便快捷,但vrmlbeans有其无法克服的缺陷:一是为了追求易用性,它只能创建静态场景vrml97规范的新特性几乎没能体现出来;二是仅能对软件事先提供的3d物体进行若干次组合,用户无权创建出自己构思的基本物体,而且没有权利对所提供的物体进行属性设置,用户创建自由度大大降低;三是它完全屏蔽了vrml的树形文件格式,不能够显示出其内部数据结构,3d物体之闻的层次关系也无法显示,对于初学者来说也许很方便,但是对于想构造较大规模场景的用户来说太困难。3.2.3.2 white-dune white-dune现已成为vrml97的一个可视化开发工具,它能够读取vrml97的文件,并能够随时改变场景图,它的图形用户界面(gui)主要由两部分组成:2dgui和3dgui。2dgui主要进行二维的操作,如调整窗口,显示国标、菜单、按扭等等。图3.5显示的是主窗口的二级窗口(红色字体)。图3.5 white-dune的主窗口其中二级窗口可分为下面几个部分:(1)工具栏它包括一行标准工具栏和三行结点工具栏:几何体工具栏、插补器工具栏、纹理材质色彩工具栏等。(2)路由图它在视图中显示各个事件入口(eventin)和各个事件出口(eventout),可以直接用鼠标连接路由,避免了文本编辑器中容易编写的错误。(3)场景树图它可以使你详细的了解整个图形的结构,方便进行详细的设计。(4)场景图全方位的显示三维场景。(5)域图设置各个相应的参数值。(6)路径图可以进行快速的动画设置white-dune是可应用于unix/linux和wind0ws操作系统下的低级vrml97工具。它可以显示和允许用户改变图象/代码。与其他高级工具不同,它是以简便模式基于vrml97标准之上的软件。它以简单实用的特点可以快速的生成三维场景,尤其是对于一些规则几何体非常高效,并可生成和读取vrml文本文件,方便与其它编辑器配合使用。3.2.3.3 cosmoworldvrml可视化编辑工具cosmoworld,为sgi公司的产品,非常不错的vrml可视化编辑软件,界面类似3dmax,可以可视化的制作vrml场景,和添加大部分的交互,它的界面如下图3.6所示。图3.6 cosmoworld的界面3.2.3.4 vrmlpad vrmlpad是pamllelgraphics公司的一个专业的vrml编辑软件,它能动态的错误描述整和debugger、vrml场景预览等,它可以进行本地和远程文本编辑。vrmlpadv2.1是最新版本,它具有以下的一些特性: 1)在编辑vrml文本时能够根据上下文关系及其在场景图中的位置给出一个包含合适的vrml标识文本的列表以供选择。 2)动态错误检测提示用户语法、值类型的错误或警告。提供域值是否在适当范围中。可以校验是否有重复的节点定义,是否有不匹配的域名或路由。如图3.7所示。图3.7 vrmlpad的动态检测错误 3)语法强调显示 支持可定制的vrml语法强调显示。 4)场景图树的显示 5)多文档同时编辑 在同一个vrmlpad中同时打开多个文件以便进行文件之间的复制、剪切、粘贴的操作,或方便的查找替换文本。 6)资源文件管理 使用resource view window(资源查看窗)来查看、编辑、浏览文档的资源。资源中某个文件重命名时,相关的文件链接也会同时自动更改。 7)自动化操作与自定义脚本操作 高级用户还可以通过建立来插件、vbscript、javascript宏命令来在vrmmlpad环境中执行自定义的任务。 8)整合脚本调试器9)节点缩略图3.3 浏览器插件 如果说vrml是一种语言,那么vrml浏览器就是它的解释器。vrml浏览器基本上实现了物体的变换效果,包括移动模式和观察模式,以及灯光、视角变换、模糊、裁剪、阴影,投影、碰撞的浏览。尽管plugin和java可以互相通信,但实际上它们并不是直接通信,liveconnect提供了他们之间进行通信的通道,如图3.8所示图3.8 vrml plug-in和java的通信示意图vrml插件多达30余项,下面介绍几种常用的插件:3.3.1 blaxxuncontact最新版本contact6,设计目的主要就是网络3d聊天,应用于多用户环境,3.3.2 cosmo piayercosmoplayer能应用在macintosh、sgi、windows95和windows nt、windows2000、windowsxp等平台。要在unix上看wrl文件,需下载sgi的cosmoplayer。3.3.3 bs contact vrmlx3d 6.2bitmanagement正式推出了bs contact浏览器,在场景版权保护、场景视觉效果、大场景浏览速度都取得了很大的发展。3.3.4 cortona cortona vrml client是parallel graphics公司的vrml插件,特点如下:1)完全支持vrml97,包括java语言和javascript语言、支持硬件加速渲染,以及软件渲染、兼容ie、netscape。2)目前cortona4.2版本支持mpeg等视频、流媒体文件,mp3等多种音频、f1ash动画文件、nurbs曲线。支持键盘输入、拖放控制,支持vr眼镜等硬件设备。 cortona的浏览方式控制分为移动模式和观察模式两种。而且处在不同的浏览方式下鼠标的显示方式也各不相同。 3.4 建模的总体设计方法 本系统vrml建模软件采用的是solidworks、3dsmax、white-dune、cosmoworld、vrmlpad相结合的方式,利用各自软件的优点,弥补其它软件的缺点,达到快速、方便的目的。1)用so1idworks2005的强大零部件建模功能建组,然后迸行分类、分批的导出为wrl文件。2)用3dsmax6制作了司机室、厂房、灯光环境、天空背景等。充分利用内嵌的vrml2.0 helpers格式工具,导出为wrl文件。3)用white-dune 0.28制作了大车运行的支架,主梁旁的底板、小支撑架等。4)将上边的wrl文件利用inline节点全部引入,用cosmoworld打开、并进行位置的调整,如位移、旋转、缩放、视点的移动等。5) white-dune的域值编辑和路由设置比csmoworld方便的多,此时用white_dune来编辑域值,连接路由。6)通过cosmoworld与white_dune的相互配合、引用进行调整, vrmlpad的文本处理功能,在这进行最后的调试和运行,观察其效果。本系统中整体建模的步骤、方法如图3.9所示:图3.9维建模步骤、方法3.5 本章小结通过各种vrml编辑器和浏览器插件,该系统所建立的三维模型的贴图是来自经过处理的数码照片,而这些照片要在photoshop中预先经过适当的处理,才使得导入到vrml中的浏览效果更加理想。另外,该系统还采用b/s模式在internet上运行,浏览器端使用的是通用的用户界面,具有更广泛的实际的使用意义。4 系统交互性的研究与实现 交互性的定义就是可以在希望的时候控制各个三维场景对象改变运动的方向和结果,使人真正地参与到整个控制过程中。4.1 vrml自身交互功能的实现vrml是一种虚拟现实三维立体网络程序设计语言,它和html最大的区别除了造型是三维立体之外,用户还可以通过很多种手段实现和造型的交互,而对于虚拟现实的高级应用层次来说,实现与场景和造型的交互,才是vrml应用的核心内容。事件是交互性的基础。4.1.1 自身交互的理解vrml绑定包括:绑定在一起的节点和在节点之阃绑定的路由。绑定两个节点之后,第一个节点通过这样的路径传送给第二个节点的信息叫作事件。事件包含一个值,当一个节点接收到一个事件时,它将根据节点的特征开始动画或者其它事情。节点的输入插座称为eventin,输出插座称为eventout。当链接一个路由时,eventin接受输入,eventout将事件输出。4.1.2 自身交互实现的一般过程vrml中的动画的产生一般是由于任何一个坐标系的位置、方向和形体比例发生了变化,从而使物体按你所想的方式飞行、平移、旋转或按比例缩放。利用imterpolator内插器节点和timesensor时间传感器节点,再加上roure语句,人们可以编写出vrml动画程序。vrml提供了一组描述事件触发器的节点。1)touchsensor是一种用来检测观察者的接触和将事件输出的传感器。2)visibilitysensor用于判断某个包围盒区域的可见性等等。3)plancsensor传感器节点用于指点设备在平行于z=0平面上的动作,4)spheresensor节点将二维的拖动解释为三维空间中绕局部原点的旋转。5)cylindersensor节点把二维的拖曳输入转变为三维空间中沿y轴的旋转。vrml提供了多个控制动画的插补器以及控制时间的时间传感器可以实现动画效果,而通过一系列的触动检测器,可以实现用户与vrml虚拟世界中的三维对象的直接交互。这些节点包括;1)colorinterpolator用以产生颜色的动态变化。2)coordinateinterpolator使形体产生动态变形。可用来动态改变形体的坐标,主要用在下面节点上:indexedfaceset、indexedlineset、pointset、extrusion。3)利用orientationinterpolator动态改变观察方向,或这改变形体的方向。4)利用positionlnterpolator动态改变观察位置,或这改变形体的位置。5)利用scalarlnterpolator动态改变透明程度、雾的影响范围。编写步骤:对于发出事件的传感器节点和接收事件的节点,编写具体的内容,并用def命名;对于接收事件的其它节点也用def命名,并根据具体需要,将收到的事件传给具体参数,从而产生动画效果。4.2 通过脚本编程实现交互vrml这种不通过程序语言控制,完全依靠定义的新节点和场景中运动的执行模式相结合来产生事件的动态行为,在功能上具有一定的局限性。它仅仅只能完成一些即定的简单的交互,而当需要进行一些更为复杂的交互时,使用它本身的传感器就显得无能为力了。这就需要利用script节点进行功能上的扩展。4.2.1 vrml的script节点script节点在有些方面和其它节点是相似的,但在别的方面却很特殊。相同点在与它和别的vrml97节点一样可以把它放在场景等级中的任何地方;可以用def命名它可以从它那里移走事件,也可把事件传给它。不同点在于:一个script节点的字段是由用户延伸的,到达这些字段的事件会自动地移到和script节点相关程序中。其它节点的fleld、eventin,、eventout及erposedfield在标准中己规定好,不能变动,而script节点的:field、eventin,eventout可根据需要自由增加。实际上这种嵌入式脚本程序其目的是允许用户自己定义带有输入输出事件的节点。script节点有以下四个作用:1)可感应环境的变化及用户的操作。2)从其它节点接收事件并进行一些处理。3)内部的程序块可完成一些计算工作4)通过发送事件使外界产生相应的变化目前vrml脚本编程接口主要有以下二种方式:1)内嵌在script节点中的描述性语言如javascript。2)在script节点中引用外部java类,用来实现一些特殊的、javascript语言所不能实现的功能。4.2.2 javascript实现的交互功能4.2.2.1 java与javascriptjava是c+的衍生语言。javascript一种脚本语言。它可与html超文本标记语言、java脚本语言结合一起实现与web客户的交互,它可以直接放入html文档之中,无需编译就可在支持javascript的浏览器中运行10。4.2.2.2 javascript的函数、对象和方法函数由javascript代码组成,用于完成某项任务。可以将经常执行的一些过程定义为函数,以后直接调用它而无需反复书写代码。定义函数时,在函数名前要加上function,在调用时常常接收参数,参数写在文件名后的括号中,如果没有参数,括号里将没有任何内容。在javascript中,对象(object)是包含一组变量的变量。对象可以包含在另一个对象中。可以说,一个对象就是一个函数,为了使用一个对象,必须先定义该对象的函数,用于提供对象的结构。一个对象的属性不仅可以是变量,还可以是一个函数,这个函数不能被赋值,只能调用,并将返回值赋给某个变量。4.2.2.3 在vrml中使用javascriptjavascript程序可以直接放在vrml程序里,也可以利用url调用vrml程序外的javascript程序,每个函数只有两个参数有用。如果函数有第一个参数,这个参数的类型必须和函数名的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化创意产业园区场地无偿租赁协议
- 成都企业股权变更尽职调查与代办合同
- 财务部内部控制与审计合同范本
- 常规量具使用培训
- 气化炉检修培训主要内容
- 中班组常规情况汇报
- 2025年教育事业统计培训
- 专科护士培训计划
- 2025新高二(复习课)必修下册诗歌知识梳理(教师版)
- 肿瘤患者春节节前健康宣教
- 临床肘关节损伤影像诊断
- 2025年预应力混凝土用钢棒产品质量监督抽查实施细则
- 不同产地西红花的质量评价研究
- 高级保育师试题(含答案)
- 2025石狮市国企招聘考试题目及答案
- GB/T 16262.2-2025信息技术抽象语法记法一(ASN.1)第2部分:信息客体规范
- 项目管理中期答辩
- 《热力公司各岗位工作流程及工作职责》
- 中药饮片处方书写规范
- 运维保障方案
- 【浙江大学(姚畅)】2025年AI大模型如何破局传统医疗报告
评论
0/150
提交评论